User Tools

Site Tools


sampling_distribution_in_r

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
sampling_distribution_in_r [2024/03/19 12:18] – [Sampling distribution in R e.g. 1] hkimscilsampling_distribution_in_r [2024/03/20 14:15] (current) – [Sampling distribution in R e.g. 1] hkimscil
Line 1: Line 1:
 ====== Sampling distribution in R e.g. 1 ====== ====== Sampling distribution in R e.g. 1 ======
-<code> 
-n.ca <- 100000 
-mean.ca <- 70 
-sd.ca <- 15 
-set.seed(2020) 
-ca <- rnorm(n.ca, mean=mean.ca, sd=sd.ca) 
-ca <- round(ca, 0) 
-hist(ca, xlab="ca", main="ca index", freq=F) 
-curve(dnorm(x, mean=mean(ca), sd=sd(ca)), add=TRUE, col="blue") 
-abline(v=mean.ca,lwd=3,lty=2, col="red") 
-summary(ca) 
-mu <- round(mean(ca)) 
-sigma <- round(sd(ca)) 
-mu 
-sigma 
-</code> 
- 
-<code> 
-rnorm2 <- function(n,mean,sd) { mean+sd*scale(rnorm(n)) } 
-n.ca <- 100000 
-mean.ca <- 70 
-sd.ca <- 15 
-set.seed(101) 
-ca <- rnorm2(n.ca, mean=mean.ca, sd=sd.ca) 
-ca <- round(ca, 0) 
-hist(ca, xlab="ca", main="ca index", freq=F) 
-curve(dnorm(x, mean=mean(ca), sd=sd(ca)), add=TRUE, col="blue") 
-abline(v=mean.ca,lwd=3,lty=2, col="red") 
-summary(ca) 
-mu <- round(mean(ca)) 
-sigma <- round(sd(ca)) 
-mu 
-sigma 
-</code> 
- 
-<code> 
-> summary(ca) 
-   Min. 1st Qu.  Median    Mean 3rd Qu.    Max.  
-   7.00   60.00   70.00   69.96   80.00  132.00  
- 
-</code> 
- 
-최소값 70 
-최대값 132 
- 
-대강의 아이디어.  
- 
-  * 위의 점수가 전국 고등학교 2년생의 (모집단) 수학점수라고 가정을 하자. 그리고, 이 모집단의 수학점수 평균은 70, 표준편차는 15임을 알고 있으며 최소값과 최대값 또한 알고 있다 (각각 70, 132) 
-  * 그런데 내가 수학을 학생들에게 (25명) 가르치는데 그 방법이 남달라서 효과가 좋다는 것을 확신한고 있다고 하자.  
-  * 이를 증명하는데 가장 확실하게 느낄수 있는 (?) 방법은 내 학생의 점수가 위의 모집단 점수의 최대값인 132점을 넘는 것이다. 
-  * 132점을 넘는 학생은 모집단에 속한 학생이 아니라 다른 모집단에 (나의 교육방법을 교수받은 모집단) 속한 학생이라고 생각할 수 있는 것이다.  
-  * 내가 가르친 학생들의 평균점수가 132점을 모두 넘는다면 한 학생이 아니라 나의 집단이 (샘플이) 모집단에 속하지 않는 특별한 집단이라고 생각할 수 있다.  
- 
-  * 그러나 현실적으로 이렇게 판단하기에는 넘어야 할 점수가 너무 크다.  
- 
- 
-{{:pasted:20200412-121855.png}} 
- 
 <code> <code>
 n.ajstu <- 100000 n.ajstu <- 100000
-mean.ajstu <- 70+mean.ajstu <- 100
 sd.ajstu <- 10 sd.ajstu <- 10
 +
 set.seed(1024) set.seed(1024)
 ajstu <- rnorm2(n.ajstu, mean=mean.ajstu, sd=sd.ajstu) ajstu <- rnorm2(n.ajstu, mean=mean.ajstu, sd=sd.ajstu)
Line 67: Line 10:
 mean(ajstu) mean(ajstu)
 sd(ajstu) sd(ajstu)
-iter <- 10000+var(ajstu)
  
-n <- 4+iter <- 10000 # # of sampling  
 + 
 +n.4 <- 4
 means4 <- rep (NA, iter) means4 <- rep (NA, iter)
 for(i in 1:iter){ for(i in 1:iter){
-  means4[i] = mean(sample(ajstu, n))+  means4[i] = mean(sample(ajstu, n.4))
 } }
  
-n <- 25+n.25 <- 25
 means25 <- rep (NA, iter) means25 <- rep (NA, iter)
 for(i in 1:iter){ for(i in 1:iter){
-  means25[i] = mean(sample(ajstu, n))+  means25[i] = mean(sample(ajstu, n.25))
 } }
  
-n <- 100+n.100 <- 100
 means100 <- rep (NA, iter) means100 <- rep (NA, iter)
 for(i in 1:iter){ for(i in 1:iter){
-  means100[i] = mean(sample(ajstu, n))+  means100[i] = mean(sample(ajstu, n.100))
 } }
  
-n <- 400+n.400 <- 400
 means400 <- rep (NA, iter) means400 <- rep (NA, iter)
 for(i in 1:iter){ for(i in 1:iter){
-  means400[i] = mean(sample(ajstu, n))+  means400[i] = mean(sample(ajstu, n.400))
 } }
  
-n <- 900+n.900 <- 900
 means900 <- rep (NA, iter) means900 <- rep (NA, iter)
 for(i in 1:iter){ for(i in 1:iter){
-  means900[i] = mean(sample(ajstu, n))+  means900[i] = mean(sample(ajstu, n.900))
 } }
  
-n <- 1600+n.1600 <- 1600
 means1600 <- rep (NA, iter) means1600 <- rep (NA, iter)
 for(i in 1:iter){ for(i in 1:iter){
-  means1600[i] = mean(sample(ajstu, n))+  means1600[i] = mean(sample(ajstu, n.1600))
 } }
  
-n <- 2500+n.2500 <- 2500
 means2500 <- rep (NA, iter) means2500 <- rep (NA, iter)
 for(i in 1:iter){ for(i in 1:iter){
-  means2500[i] = mean(sample(ajstu, n))+  means2500[i] = mean(sample(ajstu, n.2500))
 } }
  
Line 126: Line 71:
 plot(h900, add = T, col="yellow") plot(h900, add = T, col="yellow")
  
-se4 <- sqrt(var(ajstu)/4) 
-se25 <- sqrt(var(ajstu)/25) 
-se100 <- sqrt(var(ajstu)/100) 
-se400 <- sqrt(var(ajstu)/400) 
-se900 <- sqrt(var(ajstu)/900) 
-se1600 <- sqrt(var(ajstu)/1600) 
-se2500 <- sqrt(var(ajstu)/2500) 
  
-sss <- c(4,25,100,400,900,1600,2500) +sss <- c(4,25,100,400,900,1600,2500) # sss sample sizes 
-ses <- rep (NA, length(sss))+ses <- rep (NA, length(sss)) # std errors
 for(i in 1:length(sss)){ for(i in 1:length(sss)){
   ses[i] = sqrt(var(ajstu)/sss[i])   ses[i] = sqrt(var(ajstu)/sss[i])
 } }
 +
 ses ses
 +se.1 <- ses
 +se.2 <- 2 * ses 
  
 +lower.s2 <- mean(ajstu)-se.2
 +upper.s2 <- mean(ajstu)+se.2
 +data.frame(cbind(sss, ses, lower.s2, upper.s2))
  
 +</code>
  
 +<code>
 +# n =1600 일 경우에 
 +# sample의 평균이 100.15보다 작을 
 +# 확률은 어떻게 구해야 할까?
  
 +# n = 1600 일 경우에  
 +# sampling distribution은  
 +# Xbar ~ N(100, var(ajstu)/n.1600) 
 +# 그리고, 위에서 standard error값은  
 +# sqrt(var(ajstu)/n.1600) 
 +# 이것을 standard error라고 부른다 
 +# 따라서 
 +se.1600 <- sqrt(var(ajstu)/n.1600) 
 +pnorm(100.15, mean(ajstu), se.1600)
 </code> </code>
 +
 {{:pasted:20240319-120709.png}} {{:pasted:20240319-120709.png}}
 ===== Sampling distribution in proportion in R ===== ===== Sampling distribution in proportion in R =====
sampling_distribution_in_r.1710818336.txt.gz · Last modified: 2024/03/19 12:18 by hkimscil

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki