10

R で後方消去法を使用して最終モデルを取得しようとしていますが、コードを実行すると次のエラー メッセージが表示されます。誰でもこれを手伝ってもらえますか?

base<-lm(Eeff~NDF,data=phuong)
fullmodel<-lm(Eeff~NDF+ADF+CP+NEL+DMI+FCM,data=phuong)
 step(full, direction = "backward", trace=FALSE )

> Error in step(full, direction = "backward", trace = FALSE) : 
number of rows in use has changed: remove missing values?
4

1 に答える 1

14

異なるサブモデルを比較する場合、同じデータ セットに適合させる必要があります。そうしないと、結果が意味を成しません。A(2 つの予測変数とBがあり、それぞれが観測値の半分だけで測定されるという極端な状況を考えてみましょう。この場合、モデルy~A+Bはすべてのデータに適合しますが、モデルy~Aとはデータの重複しないサブセットにy~B適合します。 .) したがって、 (値を含むケースが自動的に削除されるため) 元のデータ セットの異なるサブセットを使用しているサブモデルを比較することはできません。stepNA

na.omit元のデータ セットを使用すると、問題が解決するはずです。

fullmodel <- lm(Eeff ~ NDF + ADF + CP + NEL + DMI + FCM, data = na.omit(phuong))
step(fullmodel, direction = "backward", trace=FALSE ) 

ただし、NAさまざまな予測子に多数の値がある場合、多くのデータ セットが失われる可能性があります。極端な場合、データ セット全体が失われる可能性があります。これが発生した場合は、モデリング戦略を再考する必要があります...

于 2012-08-01T21:12:59.027 に答える