No.21479 ロジスティック回帰・比率の差の検定  【tani】 2014/12/14(Sun) 17:30

抽象的な質問で恐れ入ります。
説明変数にカテゴリ変数一つのロジスティック回帰モデルと,二群の比率の差の検定の関係を教えていただけないでしょうか?

直観的に,ロジスティック回帰モデルの係数の検定(β=0)と,比率の差の検定は同質のもと思っております。

1,この直観は正しいでしょうか?
2,正しいとすれば,それを数理的に証明できるでしょうか?
3,同じく,それをRで証明できるでしょうか?
(Rで上記2つの検定を実行すると,以下のようにp値に差異がございます。)

> X
n y x
1 32 5 A
2 33 8 B
3 30 8 A
4 28 8 B
5 23 8 A
6 24 8 B
7 22 8 A
8 22 9 B
9 20 9 A
10 21 8 B
11 19 8 A
12 20 9 B
13 17 9 A
14 17 5 B
15 16 7 A
16 15 5 B
17 13 8 A
18 14 9 B
19 13 5 A
20 13 7 B
21 11 1 A
22 12 2 B
23 10 1 A
24 9 6 B
25 9 2 A
26 9 6 B
27 8 1 A
28 8 1 B
29 7 1 A
30 8 7 B
>
> #-----------------------------------------------------------------
>
> #ロジスティック回帰
>
> m<-glm(cbind(y,n-y)~x,family=binomial,data=X)
> summary(m)

Call:
glm(formula = cbind(y, n - y) ~ x, family = binomial, data = X)

Deviance Residuals:
Min 1Q Median 3Q Max
-2.16263 -1.12041 0.07419 1.06258 2.86871

Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -0.7354 0.1351 -5.442 5.26e-08 ***
xB 0.2770 0.1869 1.482 0.138
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for binomial family taken to be 1)

Null deviance: 58.347 on 29 degrees of freedom
Residual deviance: 56.143 on 28 degrees of freedom
AIC: 148.33

Number of Fisher Scoring iterations: 4

>
> #------------------------------------------------------------------
>
> #比率の差の検定
>
> X1<-subset(X, x=="A")
> X2<-subset(X, x=="B")
>
> prop.test(c(sum(X1$y),sum(X2$y)),c(sum(X1$n),sum(X2$n)))

2-sample test for equality of proportions with continuity correction

data: c(sum(X1$y), sum(X2$y)) out of c(sum(X1$n), sum(X2$n))
X-squared = 1.9339, df = 1, p-value = 0.1643
alternative hypothesis: two.sided
95 percent confidence interval:
-0.15080692 0.02410337
sample estimates:
prop 1 prop 2
0.3240000 0.3873518

>

よろしくお願い致します

No.21480 Re: ロジスティック回帰・比率の差の検定  【青木繁伸】 2014/12/15(Mon) 21:18

基本的には,検定の対象,仮定する分布などがそれぞれ違うので,同じ P 値が得られるとは,思わない方が無難でしょう。

例えば,ロジスティック回帰では,定数項と回帰係数でモデルを記述するので,単に割合の違いを比較するχ二乗検定とは比較出来ないことは,明らかでしょう。また,R の glm では,検定統計量として z を使っていますが,これを t とするかどうかの判断の差もあります。

判断基準としては,p 値が違えば別の検定ということで...

というか,そういう違いにこだわるのは,意味がないと思いますね。


> X1$n
[1] 32 30 23 22 20 19 17 16 13 13 11 10 9 8 7
> rbind(X1$y, X1$n)
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13] [,14] [,15]
[1,] 5 8 8 8 9 8 9 7 8 5 1 1 2 1 1
[2,] 32 30 23 22 20 19 17 16 13 13 11 10 9 8 7
> rbind(X2$y, X2$n)
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13] [,14] [,15]
[1,] 8 8 8 9 8 9 5 5 9 7 2 6 6 1 7
[2,] 33 28 24 22 21 20 17 15 14 13 12 9 9 8 8

というデータを,

> rowSums(rbind(X1$y, X1$n))
[1] 81 250
> rowSums(rbind(X2$y, X2$n))
[1] 98 253

というように再集計して

> > chisq.test(matrix(c(81, 169, 98, 155), 2))

Pearson's Chi-squared test with Yates' continuity correction

data: matrix(c(81, 169, 98, 155), 2)
X-squared = 1.9339, df = 1, p-value = 0.1643

になっているだけでしょう??

「再集計して」というか,「プールしたデータで比率の差の検定をする」時点で,データの扱いが異なっているので,結果が違って当たり前でしょう。

この例では,prop.test と chisq.test が同じ結果になるのはどのような場合であるかということを示していますね。

● 「統計学関連なんでもあり」の過去ログ--- 047 の目次へジャンプ
● 「統計学関連なんでもあり」の目次へジャンプ
● 直前のページへ戻る