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
Last revisionBoth sides next revision
sampling_distribution_in_r [2024/03/19 12:05] – [Sampling distribution in R e.g. 1] hkimscilsampling_distribution_in_r [2024/03/20 13:57] – [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> <code>
-n.ca <- 100000 +n.ajstu <- 100000 
-mean.ca <- 70 +mean.ajstu <- 100 
-sd.ca <- 15 +sd.ajstu <- 10
-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> 
-n.ajstu <- 100000 
-mean.ajstu <- 24 
-sd.ajstu <- 2 
 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 118: Line 63:
 h1600 <- hist(means1600) h1600 <- hist(means1600)
 h2500 <- hist(means2500) h2500 <- hist(means2500)
 +
  
 plot(h4, ylim=c(0,3000), col="red") plot(h4, ylim=c(0,3000), col="red")
Line 123: Line 69:
 plot(h100, add = T, col="green") plot(h100, add = T, col="green")
 plot(h400, add = T, col="grey") plot(h400, add = T, col="grey")
-plot(h900, add = T, col="black")+plot(h900, add = T, col="yellow") 
 + 
 + 
 +sss <- c(4,25,100,400,900,1600,2500) # sss sample sizes 
 +ses <- rep (NA, length(sss)) # std errors 
 +for(i in 1:length(sss)){ 
 +  ses[i] = sqrt(var(ajstu)/sss[i]) 
 +
 + 
 +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>
-{{:pasted:20240319-120534.png}}+ 
 +<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라고 부른다 
 +# 따라서 
 +pnorm(100.15, mean(ajstu), sqrt(var(ajstu)/n.1600)) 
 +</code> 
 + 
 +{{:pasted:20240319-120709.png}}
 ===== Sampling distribution in proportion in R ===== ===== Sampling distribution in proportion in R =====
  
sampling_distribution_in_r.txt · Last modified: 2024/03/20 14:15 by hkimscil

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki