2016-04-25 5 views
1

、この場合(ロジスティック回帰のための古典的なカニのデータを)取る=「二項」ファミリを使用して、「応答」のために同じ予測を提供します私が使用することができますdocspredict.glmnetによるとpredict.glmnetは()タイプ=「リンク」と

Xnewから新しい値を予測

タイプ

予測の種類が必要です。タイプ "link"は、 "binomial"、 "multinomial"、 "poisson"または "cox"モデルの線形予測子 を与えます。 "ガウスモデル"の場合は適合した値を与えます。

> predict.glmnet(object = fit.glmnet, type="response", newx = as.matrix(Xnew))[,1:5] 
     s0   s1   s2   s3   s4 
-0.8472979 -0.9269763 -1.0057390 -1.0836919 -1.1609386 
> predict.glmnet(object = fit.glmnet, type="link", newx = as.matrix(Xnew))[,1:5] 
     s0   s1   s2   s3   s4 
-0.8472979 -0.9269763 -1.0057390 -1.0836919 -1.1609386 

同じ値を両方linkresponseなどのために:タイプ「レスポンス」は「二項」または「多項」の フィット確率を与え、[...]

は、これは私が何をすべきかです私が期待するものではない予測。 predict使用して私に正しい値を与えているようだ:

> predict(object = fit.glmnet, type="response", newx = as.matrix(Xnew))[,1:5] 
     s0  s1  s2  s3  s4 
0.3000000 0.2835386 0.2678146 0.2528080 0.2384968 
> predict(object = fit.glmnet, type="link", newx = as.matrix(Xnew))[,1:5] 
     s0   s1   s2   s3   s4 
-0.8472979 -0.9269763 -1.0057390 -1.0836919 -1.1609386 

が、これはバグですか、私は間違った方法でpredict.glmnetを使用していますか?パケットglmnet

+0

適合モデルのクラスを確認し、 'predict.lognet'のコードを読んでください。 – Scortchi

答えて

1

は、あなたのオブジェクトは、クラスlognetのです:なぜあなたは内部type="response"をサポートしていない、predict.glmnetで正しい結果を取得されていませんですが、あなたならば、あなたはそれを取得します

> class(object) 
[1] "lognet" "glmnet" 

predict.lognetを使用します。

> predict.lognet(object = fit.glmnet, newx = as.matrix(Xnew), type="response")[,1:5] 
     s0  s1  s2  s3  s4 
0.3000000 0.2835386 0.2678146 0.2528080 0.2384968 
> predict.lognet(object = fit.glmnet, newx = as.matrix(Xnew), type="link")[,1:5] 
     s0   s1   s2   s3   s4 
-0.8472979 -0.9269763 -1.0057390 -1.0836919 -1.1609386 

とにかく、私はあなたがpredictを使用することをお勧めします、そしてRは、インター解決させます使用する機能があります。

希望します。