卡方检验的自由度

机器算法验证 分布 统计学意义 卡方检验 定义 关联度量
2022-03-04 08:46:33

我面临以下困境。我知道如何处理单边卡方分布,但我成为如何处理自由度的牺牲品。让我用一个例子来澄清我的意思。

我有以下观察值和预期值:

[Observed Data]

#Periods      CountryI   CountryII     CountryIII
#(1900-1950)     100      150            20
#(1951-2000)     59       160            50

[Expected DATA]

#Periods   country I     Country II       CountryIII        
#(1900-1950)  118.4         52                40
#(1951-2000)   80.5         90                25

我的问题是:由于这是一个单边卡方检验,自由度是否由公式计算:(columns-1)(rows-1),在这种情况下我将有 ?(61)(21)=5

或者这真的很country1 country2 country3重要,所以 df 将是 3-1=2?

因为 df 通常定义为卡方 = 6 的项,我们通常从中减去 1。

请帮我解决这个问题。

4个回答

您的交叉分类中存在多少变量将决定您的 -测试的自由度。在您的情况下,您实际上是在 2×3 表中对两个变量(期间和国家/地区)进行交叉分类。χ2

因此自由度为(参见例如Pearson 的卡方检验以证明其计算的合理性)。我看不到您在第一个公式中得到的位置,并且您的预期频率不正确,除非我误解了您的数据集。(21)×(31)=26

R中的快速检查给了我:

> my.tab <- matrix(c(100, 59, 150, 160, 20, 50), nc=3)
> my.tab
     [,1] [,2] [,3]
[1,]  100  150   20
[2,]   59  160   50
> chisq.test(my.tab)

    Pearson's Chi-squared test

data:  my.tab 
X-squared = 23.7503, df = 2, p-value = 6.961e-06

> chisq.test(my.tab)$expected
        [,1]     [,2]     [,3]
[1,] 79.6475 155.2876 35.06494
[2,] 79.3525 154.7124 34.93506

自由度为 (r-1)(c-1)。

你有

2 行:1900-1950 和 1950-1999

3列:CountryI CountryII CountryIII

因此 (2-1)(3-1) = 2

rxc 的实际乘积应该 = n(观察总数),即 6。但是,这不会用于计算 df。

编辑:如果您正在执行“拟合优度”,那么是的,它将是 n-1,但您有一个列联表 (rxc),其中 r 或 c 不等于 1,因此您必须使用 (r-1)( c-1)

编辑#2为dimbo(我无法评论):预期值应通过(行总数)(列总数)/(观察总数)计算:因此r1,c1位置的预期值为(270)(159) / (539) 它给出了 chi 给你的值。

编辑#:SAS 代码确认 Chi

data question;
 do a=1 to 2;
   do b=1 to 3;
     input var @@;
     output;
   end;
  end;
datalines;
100 150 20
59  160 50
;
run;

proc freq data = question;
weight var;
tables a*b /
 chisq expected norow nocol;
run;

输出

      Frequency|
      Expected |
      Percent  |       1|       2|       3|  Total
       --------+--------+--------+--------+
             1 |    100 |    150 |     20 |    270
               | 79.647 | 155.29 | 35.065 |
               |  18.55 |  27.83 |   3.71 |  50.09
      ---------+--------+--------+--------+
             2 |     59 |    160 |     50 |    269
               | 79.353 | 154.71 | 34.935 |
               |  10.95 |  29.68 |   9.28 |  49.91
      ---------+--------+--------+--------+
      Total         159      310       70      539
                  29.50    57.51    12.99   100.00


  Statistics for Table of a by b

  Statistic                     DF       Value      Prob
  ------------------------------------------------------
  Chi-Square                     2     23.7503    <.0001
  Likelihood Ratio Chi-Square    2     24.2964    <.0001
  Mantel-Haenszel Chi-Square     1     23.3700    <.0001
  Chi Coefficient                       0.2099
  Contingency Coefficient               0.2054
  Cramer's V                            0.2099

                                                  Sample Size = 539

等一下,我认为 Sandra 的意思是 5 而不是 6。

也许 chl 可以在这方面纠正我……但我认为这应该是仪式。如果我们采用的定义如下,χ2

χ2=i=1#Rows(observediexpectedi)2/expectedi

并将数据排列如下:

Observed[O]| Expected[E] | (O-E)^2/E
100          118.4         
150           52
 20           40
 59           80.5
160           90
 50           25

的项总数为 6(因为我们将最后一列项相加,共有 6 行。根据定义,我们有 df= 行数或预期频率 - 1。因此我们获得5。χ2

列联表中卡方检验的自由度由独立估计的“预期观察值”的数量决定。在您的 2x3 表中,由于行和列总计已知,因此您只需使用公式(行总计)*(列总计)/N 估计两个预期观察值。剩余的预期观察值可以通过从行或列总数中减去来找到。例如,如果您估计第一行的前两个观测值,则可以找到第一行的第三个观测值,即从第一行总数中减去这两个估计的观测值,一旦知道第一行,您就可以轻松找到第二行的预期观测值因为列总数也是已知的。