[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