R에서 샘플링 분포를 계산하는 방법
표본분포는 단일 모집단의 많은 무작위 표본을 기반으로 특정 통계 의 확률 분포입니다.
이 튜토리얼에서는 R에서 샘플링 분포를 사용하여 다음을 수행하는 방법을 설명합니다.
- 표본분포를 생성합니다.
- 샘플링 분포를 시각화합니다.
- 표본분포의 평균과 표준편차를 계산합니다.
- 표본분포에 관한 확률을 계산합니다.
R에서 샘플링 분포 생성
다음 코드는 R에서 샘플링 분포를 생성하는 방법을 보여줍니다.
#make this example reproducible
set.seed(0)
#define number of samples
n = 10000
#create empty vector of length n
sample_means = rep (NA, n)
#fill empty vector with means
for (i in 1:n){
sample_means[i] = mean ( rnorm (20, mean=5.3, sd=9))
}
#view first six sample means
head(sample_means)
[1] 5.283992 6.304845 4.259583 3.915274 7.756386 4.532656
이 예에서는 rnorm() 함수를 사용하여 각 표본 크기가 20이고 평균이 5.3이고 표준 편차가 9인 정규 분포에서 생성된 10,000개 표본의 평균을 계산했습니다.
첫 번째 표본의 평균은 5.283992이고 두 번째 표본의 평균은 6.304845라는 것을 알 수 있습니다.
샘플링 분포 시각화
다음 코드는 샘플링 분포를 시각화하기 위해 간단한 히스토그램을 만드는 방법을 보여줍니다.
#create histogram to visualize the sampling distribution
hist(sample_means, main = "", xlab = " Sample Means ", col = " steelblue ")
표본분포는 종 모양을 이루고 있으며 값 5 근처에서 정점을 이루고 있음을 알 수 있다.
그러나 분포의 꼬리를 보면 일부 표본의 평균이 10보다 크고 다른 표본의 평균이 0보다 작은 것을 알 수 있습니다.
평균과 표준편차 구하기
다음 코드는 샘플링 분포의 평균 및 표준 편차를 계산하는 방법을 보여줍니다.
#mean of sampling distribution
mean(sample_means)
[1] 5.287195
#standard deviation of sampling distribution
sd(sample_means)
[1] 2.00224
이론적으로 표본분포의 평균은 5.3이 되어야 합니다. 이 예에서 실제 표본 평균은 5.287195 로 5.3에 가깝다는 것을 알 수 있습니다.
그리고 이론적으로 표본분포의 표준편차는 s/√n과 같아야 하며 이는 9 / √20 = 2.012가 됩니다. 표본분포의 실제 표준편차는 2.00224 로, 2.012에 가깝다는 것을 알 수 있습니다.
확률을 계산하세요
다음 코드는 모집단 평균, 모집단 표준 편차 및 표본 크기가 주어졌을 때 표본 평균에 대해 특정 값을 얻을 확률을 계산하는 방법을 보여줍니다.
#calculate probability that sample mean is less than or equal to 6
sum(sample_means <= 6) / length(sample_means)
이 특정 예에서는 모집단 평균이 5.3이고 모집단 표준 편차가 9이며 표본 20의 크기가 0.6417 인 경우 표본 평균이 6보다 작거나 같을 확률을 찾습니다.
이는 샘플링 분포 계산기 로 계산한 확률과 매우 유사합니다.
완전한 코드
이 예제에 사용된 전체 R 코드는 다음과 같습니다.
#make this example reproducible
set.seed(0)
#define number of samples
n = 10000
#create empty vector of length n
sample_means = rep (NA, n)
#fill empty vector with means
for (i in 1:n){
sample_means[i] = mean ( rnorm (20, mean=5.3, sd=9))
}
#view first six sample means
head(sample_means)
#create histogram to visualize the sampling distribution
hist(sample_means, main = "", xlab = " Sample Means ", col = " steelblue ")
#mean of sampling distribution
mean(sample_means)
#standard deviation of sampling distribution
sd(sample_means)
#calculate probability that sample mean is less than or equal to 6
sum(sample_means <= 6) / length(sample_means)