본문 바로가기
  • Let's go grab a data
Data/R

[R 기초] 사용자정의함수, 재귀함수, z-test

by pub-lican-ai 2016. 3. 6.
반응형

[R 기초] 사용자정의함수, 재귀함수, z-test #function #recursive #z-test #정규분포


함수 function() 사용자 정의 함수

예시)

> myfac <-function(x){

+ fact<-1

+ i<-x

+ while(i>1){

+ fact<-fact*i

+ i<-i-1

+ }

+ return (fact)

+ }

> myfac(3)

#팩토리얼을 구하는 함수

[1] 6


> mySum <-function(x,y=5){

+ return (x+y)

+ }

> mySum(1)

#기본 전달인자를 가질 수 있다

[1] 6


재귀함수 recursive function

> fact<-function(x){

+ if(x<2){

+ prod<-x

+ return(1)

+ }else{

+ prod<-x*fact(x-1)

+ return(prod)

+ }

+ }

> fact(4)

[1] 24


재귀함수 z-test , 모집단의 표준편차를 알 경우 표준정규분포로 부터 검정통계량 z를 계산

http://pubdata.tistory.com/39 

http://pubdata.tistory.com/40

예시)

> ztest <- function(x, sd.p=NULL, mu=0, alternative="two.sided"){

+   n<- length(x)

+   sd<- ifelse(is.null(sd.p),sd(x),sd.p)

+   se<- sd/sqrt(n)

+   test<-mean(x)-mu

+   t.stat <- test/se

+   bias <- x-mean(x)

+   p.value <- 2*(ifelse(t.stat<0, pnorm(t.stat),1-pnorm(t.stat)))

+   out<-list(stat=t.stat, p.value=p.value, bias=bias)

+   return (out)

+ }

# sd.p: 모표준편차 mu:모평균 sd: 표본표준편차 se:표준오차 z=(표본평균-모평균)/(표준편차/표본갯수제곱근)

#pnorm() z검정통계량에 의해 정규분포에서의 면적 즉, 확률을 구하는 함수

#유의수준에 따라 p-value와 비교를 통해 귀무가설 기각 여부를 결정한다

> x<-rnorm(30)

> ztest(x)

$stat

[1] -1.07


$p.value

[1] 0.285


$bias

 [1]  0.9858  1.1516  0.1218  0.9768  0.5025  0.2787  0.2133

 [8]  1.6952 -0.5348 -0.7113 -0.2341  1.7448 -2.0782  0.2058

[15] -0.1954 -0.0755 -1.1931  0.4192  1.9656 -1.6750 -0.7364

[22]  1.1904  0.0918  0.4103 -1.8026 -1.7824 -1.2120  0.3419

[29] -0.8854  0.8206


반응형