본문 바로가기
R 주제/R 기초 및 통계 강의

[R 강의] 54. 1표본 Z 검정 함수 만들기

by 만다린망고 2020. 3. 26.
반응형


도구 R로 푸는 통계

54. 1표본 Z 검정 함수 만들기



Z검정이 무엇인지 알고 있다고 가정하고 진행하겠습니다. Z검정이 궁금하신 분들은 아래 링크로 가셔서 보고오시면 됩니다. (1표본 Z검정의 원리 : http://hsm-edu.tistory.com/132)


1. 함수 만들기


코드를 추가해가며 순차적으로 진행하겠습니다. 한단계씩 따라하시면 됩니다. 


1) R을 실행하고 새스크립트를 하나 열어줍니다.


방법을 모르시는 분은 아래 링크에서 보시면 됩니다. 

(함수를 파일로 저장하는 방법 : http://hsm-edu.tistory.com/478)


2) 함수 이름과 변수를 정해줍니다. 입력 변수는 표본평균, 표본 수, 모집단의 평균, 모집단의 표준편차입니다.


my.z.test=function(sample_mean,n,population_mean,population_sd)

{

}


3) 표본평균의 분산을 계산합니다. 


my.z.test=function(sample_mean,n,population_mean,population_sd)

{

sample_mean_sd=population_sd/sqrt(n)

}


5) pnorm함수를 이용하여 p-value를 계산합니다.


모평균보다 표본평균이 작은 경우에는 왼쪽꼬리부분이 p값이 되고, 큰 경우에는 오른쪽 꼬리부분이 p값이 되도록 코드를 짜주었습니다. 모평균과 표본평균이 같은 경우는 항상 0.5이기 때문에 아무데나 포함시켜도 됩니다. 


my.z.test=function(sample_mean,n,population_mean,population_sd)

{

sample_mean_sd=population_sd/sqrt(n)


if(sample_mean <= population_mean)

{

p_value=pnorm(sample_mean,mean=population_mean,sd=sample_mean_sd)

}

else

{

p_value=1-pnorm(sample_mean,mean=population_mean,sd=sample_mean_sd)

}

}


6) p-value를 출력해줍니다. 


cat함수를 이용해서 출력코드를 짰습니다. (출력함수 설명 : http://hsm-edu.tistory.com/350)


my.z.test=function(sample_mean,n,population_mean,population_sd)

{


sample_mean_sd=population_sd/sqrt(n)


if(sample_mean <= population_mean)

{

p_value=pnorm(sample_mean,mean=population_mean,sd=sample_mean_sd)

}

else

{

p_value=1-pnorm(sample_mean,mean=population_mean,sd=sample_mean_sd)

}


cat("\n","p value is",p_value,"\n","\n")

}


7) 함수를 저장합니다.


my.z.test.R 이라는 이름으로 저장하겠습니다. 



2. 함수 사용하기


setwd()를 이용하여 함수가 저장된 폴더를 작업폴더로 설정해줍니다.

(작업폴더 설정하기 : http://hsm-edu.tistory.com/477)


아래와 같이 입력하여 함수를 실행해줍니다. 


> source("my.z.test.R")


아래 링크에서 표준정규분포표로 계산했던 예제와 비교해봅시다. p-value가 0.0013이 나왔었습니다.

(1표본 Z검정 예제 : http://hsm-edu.tistory.com/217)


모평균 : 70

모표준편차 : 5

표본평균 : 68.5

표본의 크기: 100


>  my.z.test(68.5,100,70,5)


 p value is 0.001349898 

 


결과가 동일한 것을 확인할 수 있습니다. 



 

 

영상이 더 편하신 분


반응형

댓글