/*

 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  (4) 2014.08.21
상관관계 분석 R programming  (0) 2014.08.21
데이터 검정 R programming  (2) 2014.08.21
파일 입출력, R 프로그래밍  (0) 2014.08.21
Posted by sosal sosal

댓글을 달아 주세요

  1. 2015.04.02 17:28

    Fisher's exact Test 랑 Macnemar Test에서 실시한 예시들의 귀무가설과 대립가설이 뭐에요??
    차와 우유에 관한 결과 귀무가설을 채택하고,
    광고전과 후에서는 귀무가설을 기각하여 대립가설을 채택하게 되는 건 알겠는데...
    정확히 귀무가설이랑 대립가설이 무엇을 의미하는지 모르겠어요...

    • 2015.04.03 15:23 신고

      강의 들으면서 정리한거라 글이 허접한점 사과드립니다.

      Fisher's exact test 관련해서 사용된 데이터는 '차를 먼저 따르고 우유를 넣었는지, 우유를 먼저 넣고 차를 넣었는지를 맞출 수 있다' 가 가설입니다.
      따라서 대립가설: 구분할 수 있다.
      귀무가설: 구분할 수 없다.

      이 데이터가 샘플이 굉장히 적기 때문에 Chi-Square의 정확도가 떨어지기에, Fisher's exact test를 사용하는 것입니다.

      Fisher's exact test 결과 p-value가 0.4857 로, 0.05보다 크기 때문에 '구분할 수 없다'인 귀무가설이 참이된다는 이야기입니다.

    • 2015.04.03 15:23 신고

      Macnemar test는 연관된 두 이상 변수의 일치도 조사에 사용하는거로, '광고 전 후의 상품의 선호도에 차이가 있느냐' 등의 예가 있습니다.

      귀무가설은 '광고 전 후, 상품의 선호도 차이가 없다' 입니다.
      p-value가 0.04417이 나왔기에 '선호도에 차이가 있다'가 결론이 되겠습니다.

  2. 2015.04.03 10:44

    Fisher's exact test 결과 p-value가 0.4857 로,
    0.05보다 '크기 때문에' 귀무가설을 채택하게 되죠.