Rのロジスティック回帰モデルに適合しない場合のピアソンの検定統計量を計算するにはどうすればよいですか?


10

尤度比(別名逸脱)統計と適合度(または適合度)検定は、Rのロジスティック回帰モデル(関数を使用して適合)を取得するのはかなり簡単です。ただし、いくつかのセル数が十分に少なくなり、テストの信頼性が低下します。適合度不足の尤度比検定の信頼性を検証する1つの方法は、その検定統計量とP値をピアソンのカイ二乗(または\ chi ^ 2)適合度検定のそれらと比較することです。G2glm(..., family = binomial)χ2

glmオブジェクトもそのsummary()メソッドも、ピアソンのカイ二乗検定の適合性の検定統計量を報告しません。私の検索では、思いついたのはchisq.test()statsパッケージ内の)関数だけです。そのドキュメントには、「chisq.testカイ2乗分割表テストと適合度テストを実行する」と記載されています。ただし、そのようなテストを実行する方法についてのドキュメントはまばらです。

場合はx一つの行または列を持つ行列である場合、またはxベクターであり、yその後、与えられていない適合度(テストが行われるx一次元分割表として扱われます)。のエントリは、x負でない整数でなければなりません。この場合、テストされる仮説は、母集団の確率がの確率と等しいか、与えられないp場合pはすべて等しいかどうかです。

の引数にオブジェクトのyコンポーネントを使用できると思います。ただし、エラーが発生するため、の引数にオブジェクトのコンポーネントを使用できません: " "glmxchisq.testfitted.valuesglmpchisq.testprobabilities must sum to 1.

(Rで)手動でステップを実行することなく、少なくともピアソンの検定の統計を計算して適合性の欠如を調べるにはどうすればよいですか?χ2

回答:


13

ピアソン残差の2乗の合計は、適合度の欠如に関するピアソンの検定統計とまったく同じです。したがって、フィットしたモデル(つまり、オブジェクト)が呼び出された場合、次のコードは検定統計量を返します。χ2glmlogistic.fit

sum(residuals(logistic.fit, type = "pearson")^2)

residuals.glm利用可能な他の残差などの詳細については、のドキュメントを参照してください。たとえば、コード

sum(residuals(logistic.fit, type = "deviance")^2)

提供されるのと同じように、テスト統計を取得します。G2deviance(logistic.fit)


マクロに同意します。グループからの回答が必要な場合は、他の人が最初に言う必要があることを聞くのを待つべきでした。あなたが今得られるかもしれないものは、あなたの答えを見ることによってバイアスされています。また、答えを知っている場合、これを行うことによって何を証明しようとしていますか?
Michael R.

@Macro-Firefeatherはこのサイト(このサイトを含む)に4つの質問を投稿し、そのうちの3つ(このサイトを含む)に自分自身で回答し、自分の回答の1つを一度受け入れました。このようなものがいくつかあり、私はパターンを見始めるかもしれません!
jbowman

@jbowman、他の誰かが答えを投稿する前に自分で考え出したが、firefeatherが質問を投稿してから5分以内に文字通り答えを投稿した場合、自分の質問に答えることは想像できますが、彼/彼女は助けを必要としていなかったようです、それがなぜ私に質問をさせたのか...私は動機を本当に理解していません...
マクロ

3
@マクロ、この公式リンクを参照してください:blog.stackoverflow.com/2011/07/…(下部のチェックボックスラベルの[質問する]ページにリンクされています:「自分の質問に答えてください–知識を共有してください、Q&Aスタイル")。宿題をしているときにこの質問がありましたが(Minitabはクラスでデモされていますが、Minitabの代わりにRを使用することを選択しました)、質問を入力して応答を待つ十分な時間がありませんでした。私はこの回避策を見つけ、コミュニティと共有することにしました。
Firefeather 2012年

2
@マクロ、大歓迎です!答えがわからない場合は、さらに質問をしたり、自分が尋ねなかった質問に答えたりしたいのですが。しかし、jbowmanのパターンについての権利:コミュニティへの私の貢献は、私自身に話しかける傾向があります。:)(少なくとも私はどういうわけかコミュニティに貢献していますよね?)
Firefeather

10

ピアソンの統計は縮退した分布であるため、ロジスティックモデルの適合度には一般的に推奨されません。私は構造化されたテスト(線形性、加法性)を好みます。オムニバステストが必要な場合は、R rmsパッケージresiduals.lrm関数に実装されている単一自由度le Cessie-van Houwelingen-Copas-Hosmer unweighted squares of squares testを参照してください。


2
-1:洞察をありがとう!しかし、これは私の質問には答えません。これは、私の質問の背景で行った発言に関する適切な解説/ディスカッションであるため、おそらくあなたの回答は回答ではなくコメントに属しています。
Firefeather 2014年

2
私の回答に投票した4人はあなたに反対していると思います。そして、あなたは退化した分布に対処していません。
フランクハレル2014年

@FrankHarrell:このGOFの測定値は、Hosmer-Lemeshow(HL)GOFテストとは異なりますか?その名前からそう仮定し、2つを比較しました。ResourceSelectionパッケージで検出された実施済みHL GOFテスト。その結果はresid(lrm_object, 'gof')、ロジスティック回帰モデルをとしてフィッティングした後の実行結果とは異なりlrm_object <- lrm(...)ます。それらが実際に異なる場合、HLテストがここで言及するテストとどのように比較されるかについてコメントできますか?ありがとうございました!
メグ

1
2つは大きく異なります。HL統計(廃止)はdfを修正し、通常はリスクの十分位数に基づいています。したがって、HL統計はように縮退しません。一方、dfが拡大し続ける統計には注意してください。χ2Nχ2N
フランクハレル2015年

この退化を示すシミュレーションを見たいです。
wdkrnls 2018

0

おかげで、それが次のように単純であることに気づきませんでした。sum(residuals(f1、type = "pearson")^ 2)ただし、ピアソンの残差は、共変量グループによって計算されるか、個人によって計算されるかによって異なります。簡単な例:

m1は行列です(これはより大きな行列の先頭です):

m1 [1:4,1:8]

    x1 x2 x3 obs    pi   lev  yhat y
obs  1  1 44   5 0.359 0.131 1.795 2
obs  0  1 43  27 0.176 0.053 4.752 4
obs  0  1 53  15 0.219 0.062 3.285 1
obs  0  1 33  22 0.140 0.069 3.080 3

x1-3が予測変数である場合、obsはありません。各グループの観測値、piはグループメンバーシップの確率(回帰方程式から予測)、levはてこ比、ハットマトリックスの対角線、予測されたnoです。(y = 1の)グループ内で、yは実際の番号。

これにより、グループごとにピアソンズが表示されます。y == 0の場合の違いに注意してください: ' 'fun1 <- function(j){        if (m1[j,"y"] ==0){ # y=0 for this covariate pattern     Pr1 <- sqrt( m1[i,"pi"] / (1-m1[i,"pi"]))     Pr2 <- -sqrt (m1[i,"obs"]) res <- round( Pr1 * Pr2, 3) return(res) } else {  Pr1 <- m1[j,"y"] - m1[j,"yhat"] Pr2 <- sqrt(   m1[j,"yhat"] * ( 1-(m1[j,"pi"]) )   ) res <- round( Pr1/Pr2, 3) return(res) }    }

したがって

nr <-nrow(m1)
nr1 <- seq(1,nr)
Pr <- sapply(1:nrow[m1], FUN=fun1)
PrSj <- sum(Pr^2)

y = 0の共変量パターンを持つ被験者が多数いる場合、ピアロン残差は、「個別」メソッドではなく「グループ」を使用して計算すると、はるかに大きくなります。

たとえば、Hosmer&Lemeshowの「Applied Logistic Regression」、Wiley、200を参照してください。


0

これを使用c_hat(mod)して、と同じ出力を取得することもできsum(residuals(mod, type = "pearson")^2)ます。


1
どのパッケージにありc_hatますか?
Firefeather 2014
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.