4

glm.fit() 関数を使用して R で glm モデルを構築しました。

m <- glm.fit(x = as.matrix(df[,x.id]), y = df[,y.id], family = gaussian())  

その後、以下を使用していくつかの予測を試みました (s を正しく選択したかどうかはわかりません)。

    predict.glm(m, x, s = 0.005)

エラーが発生しました:

    Error in terms.default(object) : no terms component nor attribute

ここでhttps://stat.ethz.ch/pipermail/r-help/2004-September/058242.html問題の解決策を見つけました:

predict.glm.fit<-function(glmfit, newmatrix){
       newmatrix<-cbind(1,newmatrix)
        coef <- rbind(1, as.matrix(glmfit$coef))
        eta <- as.matrix(newmatrix) %*% as.matrix(coef)
        exp(eta)/(1 + exp(eta))
   }

しかし、 glm.fit を使用して後で予測できないかどうかはわかりません。なぜそれが可能か不可能なのですか?また、s を正しく選択するにはどうすればよいでしょうか。

注: glm() 関数を使用すると、この問題を回避できます。しかし、 glm() 関数は数式を要求するため、場合によってはあまり便利ではありません。まだ誰かが後で glm.fit と予測を使用したい場合は、ここにいくつかの解決策があります: https://stat.ethz.ch/pipermail/r-help/2004-September/058242.html

4

1 に答える 1

7

glm.fit ではなく glm を使用する必要があります。glm.fit は glm の働き者ですが、glm は、predict.glm メソッドがあるクラス c("glm", "lm") のオブジェクトを返します。次に、 glm によって返されたオブジェクトに予測を適用するだけで (おそらく、指定された新しいデータと必要な予測のタイプを使用して)、一般的な予測関数が正しいメソッド関数を選択します。

于 2013-06-22T17:13:29.660 に答える