Data Statistics

기초통계 R 실습

뉴욕킴 2023. 5. 2. 23:16
표본추출과 표본분포 (week 6)
데이터분석을 위한 통계

랜덤 표본 (random sample) 추출

:알려진 확률 분포로부터 임의로 데이터를 생성

예를 들어, 지난 몇년간 통계학 입문 강좌를 수강하는 학생들의 기말시험성적이 평균 50점, 표준편차 20점의 정규분포를 따른다는 사실을 알고 있다고 하자. 이 분포를 따르는 성적자료 100개를 임의로 생성해보자.

 

n=100, mean=50, sd=20, rnorm() : 정규분포 

rnorm(n, mean=0, sd=1)

sample.data<-rnorm(n=100, mean=50, sd=20)
sample.data

평균 추출

mean(sample.data)

표준편차 추출

sd(sample.data)

히스토그램 그리기

hist(sample.data)

 

이항분포에서 랜덤표본 추출

시행 횟수가 size이고, 성공률이 p인 베르누이 시행을 했을 때의 성공 횟수를 n번 추출하려면:

x<- rbinom (n=100, size=1, p=0.8)
x

 

 

카이제곱 분포
  • 확률 밀도함수
x<-seq(0,10,by=0.01)
for ( i in c(1,2,3,4,6,10)){
        chi.x<-dchisq(x,df=i)
        if (i==1){plot(chi.x~x,type="l",ylim=c(0,0.5), 
                       col=i,ylab="density")}
        else{lines(chi.x~x,type="l",col=i)}
}
legend("topright",legend=c("1","2","3","4","6","10"),
       col=c(1,2,3,4,6,10),lty=c(1,1,1,1,1,1))

  • 랜덤표본 추출
y<-rchisq(n=100, df=5)
hist(y)

mean(y)
var(y)

t분포의 pdf 그리기
x<-seq(-5,5,by=0.01)

for ( i in c(2,3,5,10)){
        t.x<-dt(x=x, df=i)
        if (i==2){ plot(t.x~x,type="l",ylim=c(0,0.5), 
                       col=i,ylab="density")}
        else{lines(t.x~x,type="l",col=i)}
}
legend("topright",legend=c("2","3","5","10"),
       col=c(2,3,5,10), lty=c(1,1,1,1))

x<-seq(-10,10,by=0.01)
Z<-rnorm(10000)
n<-10
V<-rchisq(10000,df=n)
tval<-Z/sqrt(V/n)
hist(tval, freq=FALSE, ylim=c(0,0.5))
t.d<-dt(x,df=n)
lines(t.d~x,type="l")

 

mean(tval); var(tval); n/(n-2)

모평균에 대한 신뢰구간

사과의 평균 무게(mu)에 대한 95% 신뢰구간은? 주어진 자료는 아래와 같음. n=30, xbar = 340, s=50, alpha = 0.05

# 𝑛이 충분히 크면 표본의 표준편차 s가 모집단의 표준편차 sigma에 가까울 것이므로 sigma를 s로 대체하여 구함

n <- 30
xbar <- 340
s <- 50
z.cut <- abs(qnorm(0.025))
lb <- xbar - z.cut*(s/sqrt(n))
ub <- xbar + z.cut*(s/sqrt(n))

print(c(xbar, lb,ub))
# 모분산을 모를때, t 분포 사용
t.cut <- qt(0.025, df=n-1, lower.tail = F)
lb <- xbar - t.cut*(s/sqrt(n))
ub <- xbar + t.cut*(s/sqrt(n))

print(c(xbar, lb,ub))
모비율 신뢰구간 구하기
### 총 100명의 학생 중 흡연자는 29명(smoke=1), 비흡연자는 71명(smoke=0)이었다. 
### 흡연을 하는 학생의 비율의 95% 신뢰구간은?

x<-29; n<-100
phat<-x/n
se<-sqrt(phat*(1-phat)/n)
c(phat - 1.96*se, phat + 1.96*se) ## Confidence interval (Wald)
prop.test(x=29, n=100, correct=FALSE) # Score-test base CI

모평균 검정

예) 콜레스테롤 수치를 낮추는데 있어서 운동을 하는 것이 효과적인가를 판단하는 방법은?

## H0 : mu = 200 vs H1 : mu<200 
## Data: xbar = 190, sd = 24, n=40 

mu0 = 200 
xbar = 190; sigma=24; n=40

## significance level 

alpha<-0.05 

## test statistics 

Z<- (xbar - mu0)/(sigma/sqrt(n))
Z
## [1] -2.635231
## critical value approach 
cut<-qnorm(alpha)
cut
## [1] -1.644854
Z < cut
## [1] TRUE
## p-value approach
pval <- pnorm(Z) # p-value
pval
## [1] 0.004203997
pval< alpha
## [1] TRUE

ex1 자료가 모집단 (전국 학생들)의 임의 표본이라고 가정할 때, 중간고사 성적의 모평균이 75점이라고 할 수 있는가?

# one sample t-test (모분산을 모를때)
# H0: mu=75
# H1: not H0
ex1 <- read.csv("/Users/donghwan/Dropbox/Teaching/22-2/DS_stat/STAT_Basic/Note/Data/ex1.csv", header = T)

t.test(ex1$Midterm, mu = 75, alternative = "two.sided")
## 
##  One Sample t-test
## 
## data:  ex1$Midterm
## t = -0.50261, df = 59, p-value = 0.6171
## alternative hypothesis: true mean is not equal to 75
## 95 percent confidence interval:
##  71.51314 77.08686
## sample estimates:
## mean of x 
##      74.3
## p-value: 0.6171 > 0.05

유의수준 0.05 < p-value 값 0.6171 이므로, 이 모평균이 75점이라는 가설을 기각하지 못한다.

 

모비율 검정

예) 총 100명의 학생 중 흡연자는 29명(smoke=1), 비흡연자는 71명(smoke=0)이었다. 흡연을 하는 학생의 비율이 0.2보다 큰지 검정해보시오.

#One sample proportion test
#Normal approximation (정규근사)
#H0: p = 0.2
#H1: p > 0.2
prop.test(x=29, n=100, p=0.2, alternative = "greater")
# 정규분포로 근사하지 않고, 이항분포 사용
# Exact binomial test
binom.test(x=29, n=100, p=0.2, alternative = "greater")

두 집단의 평균 비교
### ex1 자료가 모집단 (전국 학생들)의 임의 표본이라고 가정할 때, 남학생과 여학생 집단의 기말고사 성적을 비교.



ex1 <- read.csv("/Users/donghwan/Dropbox/Teaching/22-2/DS_stat/STAT_Basic/Note/Data/ex1.csv", header = T)



Final_M <- ex1[ex1$Gender=="M",]$Final
Final_F <- ex1[ex1$Gender=="F",]$Final

boxplot(Final_M, Final_F)


1) 95% 신뢰구간 구하기

 

n=50; xbar=162; s=5 

lb<-xbar - qnorm(0.975)*s/sqrt(n)
ub<-xbar + qnorm(0.975)*s/sqrt(n)

c(lb,ub)
[1] 160.6141 163.3859

 

2) 최소 몇명의 표본 필요

ceiling((2 * qnorm(0.975)*s)^2)
 385

 

1) 점추정값 표준편차 계산

n<-500; X<-130

phat<- X/n 

se<-sqrt(phat*(1-phat)/n)

phat ## point estimate
## [1] 0.26
se ## standard deviation 
## [1] 0.01961632

2) 모시청률의 95% 신뢰구간 구하기

c(phat - qnorm(0.975)*se, phat + qnorm(0.975)*se)
## [1] 0.2215527 0.2984473

1)

n<-100; X<-25
phat<- X/n 
se<-sqrt(phat*(1-phat)/n)
c(phat - qnorm(0.995)*se, phat + qnorm(0.995)*se)
## [1] 0.1384633 0.3615367

2)

ceiling(phat* (1-phat)/(0.01^2))
## [1] 1875

n<-81; xbar <-230; s=32 

lb<-xbar - qnorm(0.975)*s/sqrt(n)
ub<-xbar + qnorm(0.975)*s/sqrt(n)
c(lb, ub)
## [1] 223.0312 236.9688

x<-c(26.7, 25.8, 24.0, 24.9, 26.4, 25.9, 24.4, 21.7, 24.1, 25.9, 
     27.3, 26.9, 27.3, 24.8, 23.6)

n<-length(x); xbar <-mean(x); s=sd(x) 

lb<-xbar - qnorm(0.975)*s/sqrt(n)
ub<-xbar + qnorm(0.975)*s/sqrt(n)
c(lb, ub)
## [1] 24.51436 26.11231

 

n<-200; xbar <-85.8; s=60.2 

lb<-xbar - qnorm(0.995)*s/sqrt(n)
ub<-xbar + qnorm(0.995)*s/sqrt(n)
c(lb, ub)
## [1] 74.83525 96.76475

 


PowerPoint 프레젠테이션 (kinxcdn.com)

 

'Data Statistics' 카테고리의 다른 글

차원 축소(Dimensionality Reduction)  (1) 2024.11.02
딥러닝_통계 분석 종류  (1) 2024.11.02
선형 회귀와 로지스틱 회귀  (0) 2024.09.22
[3] Simple Linear Regression  (0) 2023.05.27
기초통계 R 실습_오픈북 대비  (0) 2023.05.06