Bug 8265 - Yates' correction for continuity in chisq.test
Summary: Yates' correction for continuity in chisq.test
Status: NEW
Alias: None
Product: R
Classification: Unclassified
Component: Analyses (show other bugs)
Version: old
Hardware: All Mac OS X v10.4
: P5 normal
Assignee: Jitterbug compatibility account
URL:
Depends on:
Blocks:
 
Reported: 2005-10-30 20:07 UTC by Jitterbug compatibility account
Modified: 2005-10-31 22:11 UTC (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jitterbug compatibility account 2005-10-30 20:07:19 UTC
From: dih69530@syd.odn.ne.jp
Full_Name: foo ba baz
Version: R2.2.0
OS: Mac OS X (10.4)
Submission from: (NULL) (219.66.32.183)


chisq.test(matrix(c(9,10,9,11),2,2))

Chi-square value must be 0, and, P value must be 0
R does over correction

when | a d - b c | < n / 2 &#65292;chi-sq must be 0 

Comment 1 Jitterbug compatibility account 2005-10-30 20:49:00 UTC
From: P Ehlers <ehlers@math.ucalgary.ca>

dih69530@syd.odn.ne.jp wrote:
> Full_Name: foo ba baz
> Version: R2.2.0
> OS: Mac OS X (10.4)
> Submission from: (NULL) (219.66.32.183)
> 
> 
> chisq.test(matrix(c(9,10,9,11),2,2))
> 
> Chi-square value must be 0, and, P value must be 0
> R does over correction
> 
> when | a d - b c | < n / 2 &#65292;chi-sq must be 0
> 

(Presumably, you mean P-value = 1.)
If you don't want the correction, set correct=FALSE. (The
results won't differ much.)

A better example is

  chisq.test(matrix(c(9,10,9,10),2,2))

for which R probably should return X-squared = 0.

Peter Ehlers


Comment 2 Jitterbug compatibility account 2005-10-31 19:02:10 UTC
From: Prof Brian Ripley <ripley@stats.ox.ac.uk>
On Sun, 30 Oct 2005, P Ehlers wrote:

> dih69530@syd.odn.ne.jp wrote:
>> Full_Name: foo ba baz
>> Version: R2.2.0
>> OS: Mac OS X (10.4)
>> Submission from: (NULL) (219.66.32.183)
>>
>>
>> chisq.test(matrix(c(9,10,9,11),2,2))
>>
>> Chi-square value must be 0, and, P value must be 0
>> R does over correction
>>
>> when | a d - b c | < n / 2 &#65292;chi-sq must be 0
>
> (Presumably, you mean P-value = 1.)
> If you don't want the correction, set correct=FALSE. (The
> results won't differ much.)
>
> A better example is
>
>  chisq.test(matrix(c(9,10,9,10),2,2))
>
> for which R probably should return X-squared = 0.

R is using the correction that almost all the sources I looked at suggest. 
You can't go around adjusting X^2 for just some values of the data: the 
claim is that the adjusted statistic has a more accurate chisq 
distribution under the null.

I think at this remove it does not matter what Yates' suggested (although 
if I were writing a textbook I would find out), especially as the R 
documentation does not mention Yates.

-- 
Brian D. Ripley,                  ripley@stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595

Comment 3 Jitterbug compatibility account 2005-10-31 22:11:57 UTC
From: P Ehlers <ehlers@math.ucalgary.ca>


Prof Brian Ripley wrote:

> On Sun, 30 Oct 2005, P Ehlers wrote:
> 
>> dih69530@syd.odn.ne.jp wrote:
>>
>>> Full_Name: foo ba baz
>>> Version: R2.2.0
>>> OS: Mac OS X (10.4)
>>> Submission from: (NULL) (219.66.32.183)
>>>
>>>
>>> chisq.test(matrix(c(9,10,9,11),2,2))
>>>
>>> Chi-square value must be 0, and, P value must be 0
>>> R does over correction
>>>
>>> when | a d - b c | < n / 2 &#65292;chi-sq must be 0
>>
>>
>> (Presumably, you mean P-value = 1.)
>> If you don't want the correction, set correct=FALSE. (The
>> results won't differ much.)
>>
>> A better example is
>>
>>  chisq.test(matrix(c(9,10,9,10),2,2))
>>
>> for which R probably should return X-squared = 0.
> 
> 
> R is using the correction that almost all the sources I looked at 
> suggest. You can't go around adjusting X^2 for just some values of the 
> data: the claim is that the adjusted statistic has a more accurate chisq 
> distribution under the null.
> 
> I think at this remove it does not matter what Yates' suggested 
> (although if I were writing a textbook I would find out), especially as 
> the R documentation does not mention Yates.
> 

You're quite right that, for consistency, the correction should be
applied even in the silly example I gave. And, of course, one
should not be doing a chisquare test on silly examples.

Peter Ehlers

Comment 4 Jitterbug compatibility account 2005-11-04 01:22:00 UTC
NOTES:
 What R does is standard, if not necessarily optimal
Comment 5 Jitterbug compatibility account 2005-11-04 02:22:18 UTC
Audit (from Jitterbug):
Thu Nov  3 20:22:08 2005	thomas	changed notes
Thu Nov  3 20:22:18 2005	thomas	moved from incoming to Analyses