2 つのモデル間の尤度比テストを実行しようとしています。
glm.model1 <- glm(result ~ height + weight )
glm.model2 <- glm(result ~ hight + weight + speed + speed : height + speed : weight )
require(lmtest)
a <- lrtest(glm.model1, glm.model2)
そして、次のエラーが発生しました。
Error in lrtest.default(glm.model1, glm.model2) :
models were not all fitted to the same size of dataset
「速度」データの一部が欠落していることはわかっていますが、身長と体重のデータは欠落していません。そのため、モデル 2 には可変の「速度」が含まれていますが、モデル 1 には含まれていないため、モデル 2 には欠落のために glm によって削除されたデータポイントがあります。 . そのため、モデル 2 とモデル 1 の間で尤度比検定を行うと、データの次元が等しくなく、上記のようなエラー メッセージが表示されます。モデル 2 で削除されたデータポイントを調べる方法はありますか?そのため、削減されたモデルに、データの次元を同じに保つために同じデータポイントを削除するスクリプトを含めることができますか?
これが私が試したことです:
1) na.action = na.pass を追加して、モデル 2 のすべての欠落データを保持しますが、機能しません。
2)試した:
glm.model1 <- glm(result ~ height + weight + speed - speed )
## This does work and it gets rid of the sample with "speed" missing, but this is like cheating.
各モデルの概要は次のとおりです。
概要 (glm.model1)
......
Null deviance: 453061 on 1893 degrees of freedom
Residual deviance: 439062 on 1891 degrees of freedom
AIC: 15698
Number of Fisher Scoring iterations: 2
フィッシャースコアリングの反復回数: 2
概要 (glm.model2)
......
Null deviance: 451363 on 1887 degrees of freedom
Residual deviance: 437137 on 1882 degrees of freedom
(6 observations deleted due to missingness) ## This is what I want to look at:
AIC: 15652
Number of Fisher Scoring iterations: 2
削除された観測を調べてスクリプトに書き込んで、他のモデルの同じ観測を削除するにはどうすればよいですか? ありがとう!