우리가 살아가는 도시

R을 활용한 통계학 이론과 응용 - 7장 공식 및 코딩연습 본문

내가 알아가는 도시/Statistics

R을 활용한 통계학 이론과 응용 - 7장 공식 및 코딩연습

세화주 2017. 1. 10. 11:28

7장. 대표본에서의 추론

1) 공식

 

2) 개념

  - 통계적 추론: 표본자료를 분석함으로써 모수에 대한 결론을 도출하는 과정

 

  - 점추정량(추정량): 모수를 추정하기 위하여 사용되는 통계량

  - 표준오차: 추정량의 표준편차

 

  - 신뢰수준: 표본을 추출하고 이 표본을 이용하여 모수의 참값이 언제나 포함되는 구간을 구하는 것. 하지만, 이것은 표본간의 변동 때문에 불가능하며, 그 대신 계산된 구간이 모수의 참값을 포함할 확률을 명시하게 됨. 이를 신뢰수준이라하며, 통상 0.90, 0.95, 0.99 등을 택함

(80%의 신뢰구간이 90%의 신뢰구간보다 짧음을 알 수 있는데, 짧은 구간은 mu의 위치를 더욱 정밀하게 추정하는 것으로 볼 수도 있지만, 장기적인 관점에서 모수의 참값을 포함하게 되는 상대도수는 낮아지게 됨)

 

  - 유의확률(p-value) : 예를들어, 유의수준(alpha)이 0.025에서 가설을 검정할 때

 

  H0: mu는 270이다

  H1: mu는 270보다 작다

  * 표본평균 = 261, 표준편차 = 22

 

  관측값이 -2.52이고 이는 기각역 -1.96보다 작거나 같다에 속하였기 때문에 귀무가설을 기각할 수 있다.

  특히 상당히 작은 alpha값을 사용했기 때문에, 대립가설(H1)을 뒷받침하는 강력한 증거가 된다고 할 수 있다.

  우리는 여기서 당연히 다음과 같은 질문을 할 수 있다.

 

  "얼마나 작은 alpha를 사용해도 귀무가설(H0)을 기각할 수 있을까?"

 

  만약 z=-2.52를 기각치로 하고 확률을 계산할 경우 0.0059인데 이것을 관측값 z의 유의확률 또는 p-value라고 한다.

  즉, p-value는 귀무가설(H0)이 참일 때 검정통계량 Z가 실제 관측값 z와 같거나 더 극단적인값을 취할 확률로써, 대립가설(H1)을 뒷받침하는 정도

 

3) 코딩

# 예제 7.3
x = c(2.6, 1.9, 1.8, 1.6, 1.4, 2.2, 1.2, 1.6, 1.6, 1.5, 1.4, 1.6, 2.3, 1.5, 1.1,
      1.6, 2.0, 1.5, 1.7, 1.5, 1.6, 2.1, 2.8, 1.0, 1.2, 1.2, 1.8, 1.7, 0.8, 1.5,
      2.0, 2.2, 1.6, 2.2, 2.1, 3.1, 1.7, 1.7, 1.2)
mean(x)
sd(x)
n = length(x)
alpha = 0.05
qt(1-alpha/2, df=n-1) * sd(x) /sqrt(n)


# 예제 7.4
alpha = 0.1
sigma = 4
d = 0.8
(qnorm(1-alpha/2)*sigma/d)^2


# 예제 7.5
sigma = 8
n = 25
xbar = 42.7
alpha = 0.05
se = sigma / sqrt(n)
me = qnorm(1-alpha/2) * se
xbar + c(-me, me)


# 예제 7.6
s = 10000
n = 75
xbar = 150000
alpha_90 = 0.1
se = s/sqrt(n)
me_90 = qnorm(1-alpha_90/2)*se
xbar + c(-me_90, me_90)
alpha_80 = 0.2
me_80 = qnorm(1-alpha_80/2)*se
xbar + c(-me_80, me_80)


# 예제 7.7
n=38
xbar = 261
s = 22
alpha = 0.05
mu0 = 270
z = (xbar - mu0)/(s/sqrt(n))
z
z.cv = qnorm(1-alpha/2)
z.cv
pval = pnorm(z)
pval


# 예제 7.8
n = 56
xbar = 10.7
s = 4.6
mu0 = 10
alpha = 0.05
z = (xbar - mu0)/(s/sqrt(n))
z
z.cv = qnorm(1-alpha)
z.cv
pval = pnorm(z, lower.tail=FALSE)
pval


# 예제 7.9
n = 40
xbar = 1.715
s = 0.475
mu0 = 1.9
alpha = 0.05
z = (xbar - mu0) / (s/sqrt(n))
z
z.cv = qnorm(1-alpha/2)
z.cv
pval = 2*pnorm(z)
pval
t.test(x, alternative="two.sided", mu=1.9, conf.level = 0.95)


# 예제 7.10
n = 250
x = 70
phat = x/n
phat
alpha = 0.046
se = sqrt(phat*(1-phat)/n)
se
me_95.4 = qnorm(1-alpha/2)*se
me_95.4


# 예제 7.11
n = 500
x = 41
phat = x/n
phat
alpha = 0.05
se = sqrt(phat*(1-phat)/n)
se
me_95 = qnorm(1-alpha/2)*se
me_95
phat + c(-me_95, me_95)


# 예제 7.12
alpha = 0.02
d = 0.05
z_1 = qnorm(1-alpha/2)
(z_1/d)^2/4
p = 0.3
z_2 = qnorm(1-alpha/2)
p*(1-p)*(z_2/d)^2


# 예제 7.13
n = 400
p0 = 0.2
phat = 70/400
z = (phat - p0)/sqrt(p0*(1-p0)/n)
z
pval = 2*pnorm(z)
pval
prop.test(70, 400, p=0.2, correct = FALSE)

 

 

### 신뢰구간

## 모의실험

par(mfrow=c(1,3))

m=10; n=20; p=.5    # B(20, 0.5)에서 10번 반복
phat = rbinom(m,n,p) / n
SE = sqrt(phat*(1-phat)/n)
alpha = 0.1; zstar = qnorm(1-alpha/2)
matplot(rbind(phat-zstar*SE, phat+zstar*SE), rbind(1:m,1:m), type = "l", lty=1,
        xlab="신뢰구간", ylab="반복")
abline(v=p, col="red",lty=2) # 참값
mean(abs(p-phat) < zstar*SE)  # 실제 참값을 포함한 신뢰구간의 상대도수


m=50; n=20; p=.5    # B(20, 0.5)에서 50번 반복
phat = rbinom(m,n,p) / n
SE = sqrt(phat*(1-phat)/n)
alpha = 0.1; zstar = qnorm(1-alpha/2)
matplot(rbind(phat-zstar*SE, phat+zstar*SE), rbind(1:m,1:m), type = "l", lty=1,
        xlab="신뢰구간", ylab="반복")
abline(v=p, col="red",lty=2) # 참값
mean(abs(p-phat) < zstar*SE)  # 실제 참값을 포함한 신뢰구간의 상대도수

 

m=200; n=20; p=.5    # B(20, 0.5)에서 200번 반복
phat = rbinom(m,n,p) / n
SE = sqrt(phat*(1-phat)/n)
alpha = 0.1; zstar = qnorm(1-alpha/2)
matplot(rbind(phat-zstar*SE, phat+zstar*SE), rbind(1:m,1:m), type = "l", lty=1,
        xlab="신뢰구간", ylab="반복")
abline(v=p, col="red",lty=2) # 참값

mean(abs(p-phat) < zstar*SE)  # 실제 참값을 포함한 신뢰구간의 상대도수

par(mfrow=c(1,1))


## 모평균: 정구모집단(모분산 알려진 경우)
x = c(175, 176, 173, 175, 174, 173, 173, 176, 173, 179)
alpha = 0.95; sigma = 1.5; n = length(x)
zstar = qnorm(1-alpha/2)
SE = sigma/sqrt(n)
mean(x) + c(-zstar*SE, zstar*SE)


## 모비율
prob.test(42, 100)  # 100번중 42번 95%
prob.test(42, 100, conf.level=.9)  # 100번중 42번 90%

 

### 가설검정

## 모비율
prop.test(42, 100, p=.5)
prop.test(420, 1000, p=.5)   # phat은 동일하지만 표본수가 큼

prop.test(42, 100, p=.5, correct=F) # 연속성 수정 안함

prop.test(42, 100, p=.5, alternative="less") # H1: p < 0.5