이전 포스팅에서 자료수집과정에 따른 두 모집단 비교 방법에 대해 알아보았다.
이번에는 그 중 두 모집단이 독립일 경우에 모평균 차이를 추론하는 방법에 대해 알아보겠다.
두 개의 독립 표본에서 모평균 차이 추론하는 방법
우선 두 모집단으로부터 추출된 표본과 그로부터 계산되는 통계량은 다음과 같다.
\(X_{1}, \cdots, X_{n_{1}}\) : 평균이 \(\mu_{1}\)이고 표준편차가 \(\sigma_{1}\)인 모집단으로부터 추출된 표본
\(\bar{X} = \frac{1}{n_{1}} \sum_{i=1}^{n_{1}} X_{i}\), \(s^2_{1} = \frac{1}{n_{1}-1} \sum_{i=1}^{n_{1}} (X_{i}-\bar{X})^2\)
\(Y_{1}, \cdots, Y_{n_{2}}\) : 평균이 \(\mu_{2}\)이고 표준편차가 \(\sigma_{2}\)인 모집단으로부터 추출된 표본
\(\bar{Y} = \frac{1}{n_{2}} \sum_{i=1}^{n_{2}} Y_{i}\), \(s^2_{2} = \frac{1}{n_{2}-1} \sum_{i=1}^{n_{2}} (Y_{i}-\bar{Y})^2\)
여기서 우리의 관심사는 두 모집단의 평균 반응값의 차이이다. 즉, 모수 \(\mu_{1} - \mu_{2}\)에 대한 추론이다.
모평균의 차(\(\mu_{1} - \mu_{2}\))에 대한 추론은 표본의 크기가 충분히 클 때와 작을 때로 나뉜다.
1. 표본의 크기가 클 때
두 모평균의 차 (\(\mu_{1} - \mu_{2}\))에 대한 추론을 위해서는 두 표본평균의 차 (\(\bar{X} - \bar{Y}\))를 이용한다. 두 표본의 크기 \(\mu_{1}, \mu_{2}\)가 모두 큰 경우(30 이상)에는 중심극한정리에 의해 \(\bar{X}\)와 \(\bar{Y}\)는 근사적으로 정규분포를 따른다.
$$ \bar{X} \sim N(\mu_{1}, \frac{\sigma_{1}^2}{n_{1}}),\ \bar{Y} \sim N(\mu_{2}, \frac{\sigma_{2}^2}{n_{2}}) $$
여기서 중요한 정규분포의 특징은 다음과 같다.
두 개의 확률변수 X, Y가 서로 독립이고 다음과 같이 정규분포를 따를 때
$$ X\sim N(\mu_{1}, \sigma_{1}^2),\ Y\sim N(\mu_{2}, \sigma_{2}^2) $$
두 변수의 합과 차는 각각 정규분포를 따르고, 평균은 \(\mu_{1} \pm \mu_{2}\), 분산은 \(\sigma_{1} + \sigma_{2}\)이 된다. 이를 기호로 나타내면 다음과 같다.
$$ (X \pm Y) \sim N(\mu_{1} \pm \mu_{2}, \sigma_{1} + \sigma_{2}) $$
위의 특징으로 두 표본은 서로 독립이기때문에 두 표본평균의 차인 \(\bar{X}-\bar{Y}\)도 다음과 같은 정규분포를 따른다.
$$ (\bar{X} - \bar{Y}) \sim N(\mu_{1} - \mu_{2}, \frac{\sigma_{1}^2}{n_{1}}+\frac{\sigma_{2}^2}{n_{2}}) $$
모분산을 모를 때에는 이를 표본분산으로 대체해도 다음과 같이 근사적으로 표준정규분포를 따른다.
$$ Z=\frac{(\bar{X}-\bar{Y}) - (\mu_{1} - \mu_{2})}{\sqrt{s^2_{1}/n_{1} + s^2_{2}/n_{2}}} \sim N(0, 1)$$
이를 바탕으로 (\(\mu_{1} - \mu_{2}\))에 대한 신뢰구간은 다음과 같다.
* 모평균의 차 (\(\mu_{1} - \mu_{2}\))에 대한 신뢰구간(표본의 크기가 클 때)
표본의 크기 \(n_{1}, n_{2}\)가 모두 30 이상일 때 (\(\mu_{1} - \mu_{2}\))에 대한 \(100(1-\alpha)%\) 신뢰구간은
$$ ((\bar{X} - \bar{Y}) - z_{\alpha/2} \times \sqrt{\frac{s^2_{1}}{n_{1}}+\frac{s^2_{2}}{n_{2}}},\ (\bar{X} - \bar{Y}) + z_{\alpha/2} \times \sqrt{\frac{s^2_{1}}{n_{1}}+\frac{s^2_{2}}{n_{2}}}) $$
혹은
$$ (\bar{X} - \bar{Y}) \pm z_{\alpha/2} \times \sqrt{\frac{s^2_{1}}{n_{1}}+\frac{s^2_{2}}{n_{2}}} $$
이다.
표본의 크기가 클 때 두 모평균의 차에 대한 검정은 다음과 같이 한다.
* \(H_{0}\ :\ \mu_{1}-\mu_{2}=\delta_{0} \)에 대한 검정
표본의 크기 \(n_{1}, n_{2}\)가 모두 30이상 일 때 가설 \(H_{0}\ :\ \mu_{1}-\mu_{2}=\delta_{0} \)에 대한 검정통계량을 다음과 같다.
$$ Z = \frac{(\bar{X}-\bar{Y})-\delta_{0}}{\sqrt{s^2_{1}/n_{1}+s^2_{2}/n_{2}}} $$
검정통계량의 분포는 \(H_{0}\)이 맞을 때 N(0, 1)을 따른다. 각 대립가설에 대해 유의수준 \(\alpha\)를 갖는 기각역은 다음과 같다.
$$ H_{1}\ :\ \mu_{1}-\mu_{2}<\delta_{0} 일 때 \quad R\ :\ Z \le -z_{\alpha} $$
$$ H_{1}\ :\ \mu_{1}-\mu_{2}>\delta_{0} 일 때 \quad R\ :\ Z \ge z_{\alpha} $$
$$ H_{1}\ :\ \mu_{1}-\mu_{2} \ne \delta_{0} 일 때 \quad R\ :\ \left| Z \right| \ge z_{\alpha/2} $$
위 정규분포의 특징을 R에서 확인해보면 다음과 같다.
예를 들어, 평균이 5이고 표준편차가 1인 정규분포를 따르는 모집단 X와, 평균이 3이고 표준편차가 2인 정규분포를 따르는 모집단 Y에서 각각 30개의 표본을 뽑아 평균을 구했다.
$$ X \sim N(5, 1^2),\ Y \sim N(3, 2^2) $$
이론상, \(\bar{X}\)와 \(\bar{Y}\)의 분포는 다음과 같을 것이다.
$$ \bar{X} \sim N(5, 1^2/30),\ \bar{Y} \sim N(3, 2^2/30) $$
이를 R에서 확인해보면 다음과 같다.
1 2 3 4 5 6 7 8 9 10 11 | x_mu <- 5; x_sigma <- 1 y_mu <- 3; y_sigma <- 2 x_bar <- c() y_bar <- c() n <- 30 for (i in 1:1000) { x_bar <- c(x_bar,mean(rnorm(n, x_mu, x_sigma))) y_bar <- c(y_bar,mean(rnorm(n, y_mu, y_sigma))) } | cs |
> mean(x_bar)
[1] 5.002784 # x_mu=5
> mean(y_bar)
[1] 3.006945 # y_mu=3
> var(x_bar)
[1] 0.03487879
> x_sigma^2/30
[1] 0.03333333
> var(y_bar)
[1] 0.1326863
> y_sigma^2/30
[1] 0.1333333
이론상의 \(\bar{X}\)와 \(\bar{Y}\)의 분포가 실제로도 잘 맞는 것을 확인할 수 있다.
이를 그래프로 그려보면 다음과 같다.
(ㅡ) X의 분포
(ㅡ) 계산된 \(\bar{X}\)의 분포
(--) 이론상\(\bar{X}\)의 분포
1 2 3 4 5 6 7 | plot(seq(-5,10,length.out = 200), dnorm(seq(-5,10,length.out = 200),x_mu,x_sigma), type="l", ylim = c(0, max(density(x_bar)$y)), lwd=2) lines(density(x_bar), type="l", col = "red", lwd=2) lines(seq(-5,10,length.out = 200), dnorm(seq(-5,10,length.out = 200),x_mu,sqrt(x_sigma^2/n)), type="l", ylim = c(0, max(density(x_bar)$y)), col = "blue", lwd = 2, lty=2) | cs |
예시의 \(\bar{X}\)의 분포와 이론상 \(\bar{X}\)의 분포가 거의 일치하는 것을 볼 수 있으며, X의 분포와 \(\bar{X}\)의 분포는 같은 평균을 갖지만, \(\bar{X}\)의 분산이 훨씬 작은 것을 볼 수 있다.
(ㅡ) Y의 분포
(ㅡ) 계산된 \(\bar{Y}\)의 분포
(--) 이론상\(\bar{Y}\)의 분포
1 2 3 4 5 6 7 | plot(seq(-3,10,length.out = 200), dnorm(seq(-3,10,length.out = 200),y_mu,y_sigma), type="l", ylim = c(0, max(density(y_bar)$y)), lwd=2) lines(density(y_bar), type="l", col = "red", lwd=2) lines(seq(-3,10,length.out = 200), dnorm(seq(-3,10,length.out = 200),y_mu,sqrt(y_sigma^2/n)), type="l", ylim = c(0, max(density(y_bar)$y)), col = "blue", lwd = 2, lty=2) | cs |
(\(\bar{X} - \bar{Y}\))의 분포 역시 이론상 평균은 2(=5-3), 분산은 \(1^2/30 + 2^2/30\)인 정규분포를 따른다.
> mean(x_bar - y_bar)
[1] 1.995839
> var(x_bar - y_bar) # 실제 값
[1] 0.1610267
> (x_sigma^2/n) + (y_sigma^2/n) # 이론상 계산값
[1] 0.1666667
(ㅡ) 이론상 (\(\bar{X} - \bar{Y}\))의 분포
(--) 계산된 (\(\bar{X} - \bar{Y}\))의 분포
1 2 3 4 | plot(seq(-3,10,length.out = 200), dnorm(seq(-3,10,length.out = 200),(x_mu-y_mu),sqrt((x_sigma^2/n) + (y_sigma^2/n))), type="l", lwd = 2) lines(density(x_bar - y_bar), type="l", col = "red", lwd = 2, lty=2) | cs |
\(Z=\frac{(\bar{X}-\bar{Y}) - (\mu_{1} - \mu_{2})}{\sqrt{\sigma^2_{1}/n_{1} + \sigma^2_{2}/n_{2}}}\) 역시 이론상 N(0, 1)을 따라야 한다.
* 모분산(\(\sigma^2_{1}, \sigma^2_{2}\))를 알고 있기 때문에 표본분산이 아닌 모분산 그대로 계산
> z <- ((x_bar - y_bar) - (x_mu - y_mu))/sqrt(x_sigma^2/n + y_sigma^2/n)
> mean(z)
[1] -0.0101931 # 0
> var(z)
[1] 0.9661604 # 1
(ㅡ) 이론상 Z의 분포 :: N(0, 1)
(--) 계산된 Z의 분포
1 2 3 4 | plot(seq(-5,5,length.out = 200), dnorm(seq(-5,5,length.out = 200),0,1), type="l", lwd = 2, ylim = c(0, max(density(z)$y))) lines(density(z), type = "l", col = "red", lwd = 2, lty=2) | cs |
신뢰구간의 의미 in R
위의 예시를 그대로 95% 신뢰구간을 구하면 다음과 같다.
1 2 | l <- (x_bar - y_bar) - 1.96*sqrt((x_sigma^2/n) + (y_sigma^2/n)) u <- (x_bar - y_bar) + 1.96*sqrt((x_sigma^2/n) + (y_sigma^2/n)) | cs |
이론상 95% 신뢰구간이란 100개의 표본에 대한 각각의 신뢰구간 중 95개의 신뢰구간에 모평균의 차이값이 포함되어야 한다.
위의 예시에서 이론상 1000개의 표본에 대해 각각 1000개의 신뢰구간이 있을 때 알고자 하는 모평균의 차이값이 포함되는 신뢰구간은 950개가 될 것이다.
> sum(l <= (x_mu - y_mu) & u >= (x_mu - y_mu))
[1] 945
모평균 비교검정 in R
실제 통계프로그램에서는 위의 식들을 일일이 계산하지 않고 이미 구현된 함수로 검정한다. R에서는 t.test()를 사용한다.
t.test(x, y = NULL,
alternative = c("two.sided", "less", "greater"),
mu = 0, paired = FALSE, var.equal = FALSE,
conf.level = 0.95, ...)
alternative : "two.sided"(양측검정)/ "less", "greater"(단측검정)
mu : 검정하고자 하는 값
paired : 짝비교시 TURE
var.equal : 모표준편차가 같을 시 TURE
conf.level : \(\alpha\)
예를 들어)
$$ X \sim N(453, 80^2) 과 Y \sim N(401, 60^2) $$
인 두 모집단에 대해
$$ H_{0} : \mu_{1} - \mu_{2} = 52 $$
에 대해 검정한다고 하자.
1 2 3 4 5 6 7 | x_mu <- 453; x_sigma <- 80; x_n <- 50 y_mu <- 401; y_sigma <- 60; y_n <- 100 x <- rnorm(x_n, x_mu, x_sigma) y <- rnorm(y_n, y_mu, y_sigma) t.test(x = x, y=y, mu=52) | cs |
Welch Two Sample t-test
data: x and y
t = -0.2832, df = 72.218, p-value = 0.7778
alternative hypothesis: true difference in means is not equal to 52
95 percent confidence interval:
22.11602 74.44900
sample estimates:
mean of x mean of y
447.7554 399.4729
p-value = 0.7778 > 0.05로 귀무가설을 기각하지 못한다.
위 표본에 대한 95% 신뢰구간을 직접 구해보면 다음과 같다.
> l <- (mean(x)-mean(y)) - 1.96*sqrt(var(x)/x_n + var(y)/y_n)
> u <- (mean(x)-mean(y)) + 1.96*sqrt(var(x)/x_n + var(y)/y_n)
> l
[1] 22.55394
> u
[1] 74.01107
표본이 작을 때 두 모집단 평균의 차이를 추론하는 방법은 다음 포스팅에서 다루도록 하겠다.
'AI > 기초통계' 카테고리의 다른 글
[기초통계] 모평균 비교 :: 독립인 모집단에서 표본의 크기가 작을 때 (2) :: t.test() in R (0) | 2019.11.27 |
---|---|
[기초통계] 모평균 비교 :: 독립인 모집단에서 표본의 크기가 작을 때 (1) :: t.test() in R (0) | 2019.11.26 |
[기초통계] 모평균 비교 :: 두 모집단이 독립일때와 독립이 아닐 때 (0) | 2019.11.24 |
[기초통계] t-distribution :: 표본의 크기가 작을 때 :: n에 따른 t분포 in R (4) | 2019.11.23 |
[기초통계] 유의확률이란? P-value란? (0) | 2019.11.22 |