Programing/R- programming

범주형 자료의 통계분석 R programming

sosal 2014. 8. 21. 15:26
반응형

/*

 http://sosal.kr/
 * made by so_Sal
 */



1. 적합성 검정 ( goodness of fit )

관찰된 비율값이 기대값과 같은지 조사하는 검정방법.


- Heart attack 발생 1년 후 생존률은 0.7이라고 가정하자.

따라서 환자 40명중 28명이 생존할것으로 기대된다.


실제로 40명중 24명이 생존, 16명이 죽었다면 생존률이 0.7이라는 귀무가설을 기각할 수 있는가?


> # Goodness of Fit

> chisq.test( c(24, 16), p=c(0.7, 0.3) )


        Chi-squared test for given probabilities


data:  c(24, 16)

X-squared = 1.9048, df = 1, p-value = 0.1675

자유도가 1인 x-squared 값과 p-value를 통해 생존률이 0.7이라는 귀무가설을 기각할 수 없다.


> # Test for independence

> countTable <- matrix( c(10845, 189, 10933, 104), nrow=2, byrow=TRUE ) 

> rownames(countTable) <-c("Placebo", "Aspirin") 

> colnames(countTable) <-c("No Heart Attack", "Heart Attack") 

> countTable

        No Heart Attack Heart Attack

Placebo           10845          189

Aspirin           10933          104

> chisq.test(countTable)


        Pearson's Chi-squared test with Yates' continuity correction


data:  countTable

X-squared = 24.4291, df = 1, p-value = 7.71e-07



아스피린 복용 여부와 Heart Attack 간에는 상호 독립적이지 않다.





- birthwt 데이터

189명의 데이터와 10개의 변수로 이루어짐


low: indicator of birth weight less than 2.5 kg.

age: mother's age in years.

lwt: mother's weight in pounds at last menstrual period.

race: mother's race (1 = white, 2 = black, 3 = other).

smoke: smoking status during pregnancy.

ptl: number of previous premature labours.

ht: history of hypertension.

ui: presence of uterine irritability.

ftv: number of physician visits during the first trimester.

bwt: birth weight in grams.


library(MASS) 


#0=> Non Smoker, 1=> Smoker

birthwt$smoke <- factor( birthwt$smoke, label=c("Non Smoker", "Smoker") )


#0 => No, 1 => Yes 범주형 자료

birthwt$low <- factor( birthwt$low, label=c("No", "Yes") ) 


smoke_low_tb <- table( birthwt$smoke, birthwt$low ) 

> smoke_low_tb로 변환

             No Yes

  Non Smoker 86  29

  Smoker     44  30





# Fisher's exact test


추측  | Milk Tea (진실)

Milk  |  3      1

Tea  |  1      3


무엇을 먼저 넣었는가? 에 대한 테스트.




fisher.test() 함수를 이용하여 Fisher's exact test 수행.

p-value = 0.4857: 우유를 먼저 넣고 차를 넣었는지, 차를 먼저넣고 우유를 넣었는지 맞추는 능력이 있다고 보기 힘들다.


TeaTasting <- matrix( c(3, 1, 1, 3), nrow=2 )

TeaTasting

      [,1] [,2]

[1,]    3    1

[2,]    1    3


fisher.test( TeaTasting )


        Fisher's Exact Test for Count Data


data:  TeaTasting

p-value = 0.4857

alternative hypothesis: true odds ratio is not equal to 1

95 percent confidence interval:

   0.2117329 621.9337505

sample estimates:

odds ratio 

  6.408309  



# Macnemar Test


광고전|      광고후     |

         |  상품A 상품B

상품A |      5     5

상품B |      15    7


> mcnemar.test( matrix( c(5, 15, 5, 7), ncol=2) )


        McNemar's Chi-squared test with continuity correction


data:  matrix(c(5, 15, 5, 7), ncol = 2)

McNemar's chi-squared = 4.05, df = 1, p-value = 0.04417


-> 위 결과를 통해 광호 전후 상품의 선호도에 차이가 있다는것으로 결론내릴 수 있다.

'Programing > R- programming' 카테고리의 다른 글

R graphics, plot 저장하기  (0) 2014.08.22
two-way ANOVA  (0) 2014.08.21
상관관계 분석 R programming  (0) 2014.08.21
데이터 검정 R programming  (2) 2014.08.21
파일 입출력, R 프로그래밍  (0) 2014.08.21