[R] McNemar test in R & SPSS

Bob Green bgreen at dyson.brisnet.org.au
Tue Dec 26 23:23:16 CET 2006


Peter,

Thanks for your reply. To perform the analysis in R, I used the table 
format suggested in the book by Everitt & Hothorn, whereas in SPSS the 
analysis was performed directly from the 2 variables, rather than using 
count data.

There is still something I don't understand  - I tried to replicate the 
syntax from your e-mail but my computer just kept waiting - what am I still 
doing wrong?


  mctest <- as.table(matrix(c(128,29,331,430), ncol =2, dimnames = 
list(group=c("preMHT","postMHT"), assault=c("yes","no"))))
 > d <- read.table(stdin())
0: mcnemar.test(as.matrix(d),correct=F)
1:

Thanks again

Bob


At 10:52 PM 26/12/2006 +0100, Peter Dalgaard wrote:
>Bob Green wrote:
>>Hello,
>>
>>I am hoping someone can clarify why I might obtain a quite different 
>>value in R & SPSS  for a McNemar test I ran.
>>
>>Firstly, here is the R syntax & output
>>
>>
>>R OUTPUT
>>
>>  > mctest <- as.table(matrix(c(128,29,331,430),
>>+ ncol =2, dimnames = list(group=c("preMHT","postMHT"),
>>+ assault=c("yes","no"))))
>>
>>  > mctest
>>                assault
>>group       yes  no
>>    preMHT  128 331
>>    postMHT  29 430
>>
>>  >  mcnemar.test(mctest,correct=F)
>>
>>          McNemar's Chi-squared test
>>
>>data:  mctest
>>McNemar's chi-squared = 253.3444, df = 1, p-value < 2.2e-16
>>
>>
>>SPSS OUTPUT
>>
>>The same data was inputted in SPSS. Regarding the first table SPSS 
>>generated - it lists the number of cases in each combination of 
>>categories. The diagonal contains the number of cases with the same 
>>response on both variables, while the off diagonal contains cases that 
>>have different responses on the 2 variables. The overall chisquare value 
>>is much lower than the value obtained using R, though still significant.
>>
>>
>>pre02 & post02
>>
>>pre02   post02
>>
>>          0       1
>>0       311     20
>>1       119     9
>>
>>
>>Test Statistics(b)
>>
>>   pre02 & post02
>>
>>N               459
>>Chi-Square(a)   69.094
>>Asymp. Sig.     .000
>>
>>a  Continuity Corrected
>>b  McNemar Test
>>
>>
>>Any assistance is much appreciated,
>>
>Well, you can't expect R to give the correct result if you feed it the 
>wrong matrix, can you?
>
>>d <- read.table(stdin())
>
>0:          0       1
>
>1: 0       311     20
>
>2: 1       119     9
>
>3:
>>d
>
>   X0 X1
>
>0 311 20
>
>1 119  9
>
>>mcnemar.test(as.matrix(d),correct=F)
>
>        McNemar's Chi-squared test
>
>data:  as.matrix(d)
>McNemar's chi-squared = 70.5108, df = 1, p-value < 2.2e-16
>
>>mcnemar.test(as.matrix(d),correct=T)
>
>        McNemar's Chi-squared test with continuity correction
>
>data:  as.matrix(d)
>McNemar's chi-squared = 69.0935, df = 1, p-value < 2.2e-16
>
>
>
>>Bob Green
>>
>>______________________________________________
>>R-help at stat.math.ethz.ch mailing list
>>https://stat.ethz.ch/mailman/listinfo/r-help
>>PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
>>and provide commented, minimal, self-contained, reproducible code.
>>



More information about the R-help mailing list