ロジスティック回帰予測の出力


14

次のコードを使用してロジスティック回帰を作成しました。

full.model.f = lm(Ft_45 ~ ., LOG_D)
base.model.f = lm(Ft_45 ~ IP_util_E2pl_m02_flg)
step(base.model.f, scope=list(upper=full.model.f, lower=~1),
     direction="forward", trace=FALSE)

次に、出力を使用して最終モデルを作成しました。

final.model.f = lm(Ft_45 ~ IP_util_E2pl_m02_flg + IP_util_E2_m02_flg + 
                           AE_NumVisit1_flg + OP_NumVisit1_m01_flg + IP_TotLoS_m02 + 
                           Ft1_45 + IP_util_E1_m05_flg + IP_TotPrNonElecLoS_m02 + 
                           IP_util_E2pl_m03_flg + LTC_coding + OP_NumVisit0105_m03_flg +
                           OP_NumVisit11pl_m03_flg + AE_ArrAmb_m02_flg)

次に、予測関数を使用して、異なるデータセットの結果を予測しました。

log.pred.f.v <- predict(final.model.f, newdata=LOG_V)

心地よいROC曲線の確立を使用して、感度と特異性を確立するためのテーブルを作成することができました。

しかし、私がやろうとしているのは、Ft_45が1になる確率をデータの各行ごとに確立することです。log.pred.fvの出力を見ると、たとえば、

1 -0.171739593    
2 -0.049905948    
3 0.141146419    
4 0.11615669    
5 0.07342591    
6 0.093054334    
7 0.957164383    
8 0.098415639    
.
.
.
104 0.196368229    
105 1.045208447    
106 1.05499112

私は自分がやっていることを暫定的にしか把握していないため、確率が0から1の間になると予想される1以上の負の値を解釈する方法を理解するのに苦労しています。

したがって、私の質問は、出力を変換する必要があるか、または完全に間違っているステップが不足していることです。あなたが提供できる助けを事前にありがとうございます。

回答:


23

まず、ロジスティック回帰モデルではなく、通常の線形回帰モデルを作成したようです。ロジスティック回帰モデルを作成するにはglm() family="binomial" ではなくで使用する必要がありますlm()

独立変数を使用して次のロジスティック回帰モデルを構築するとします。バツ1バツ2バツ3y

logit <- glm(y~x1+x2+x3,family="binomial")

β0β1β2β3

その場合predict(logit)、Rは計算して戻りb0 + b1*x1 + b2*x2 + b3*x3ます。

ロジスティック回帰式は y=logp1p=β0+β1バツ1+β2バツ2+β3バツ3

p

Rでは、次のようなことができます。

pred <- predict(logit,newdata=data) #gives you b0 + b1x1 + b2x2 + b3x3
probs <- exp(pred)/(1+exp(pred)) #gives you probability that y=1 for each observation

最初に私のコードを修正し、次にRの確率を取得する方法を説明してくれてありがとう。私はそれを試してみたが、完璧に機能した。数週間前に聞いていたらよかった!!
SeBee

1
probs <- exp(predict(logit, type = "response" , newdata=data)または、少なくとも `probs <-1 /(1 + exp(-pred))
snoram

11

のドキュメントを見ると、呼び出しでpredict.glm追加のパラメーターを使用するのと同じくらい簡単だと思われpredictます。

 type = "response"

ドキュメントを参照してください:

タイプ -必要な予測のタイプ。デフォルトは線形予測子のスケールです。代替の「応答」は、応答変数のスケールです。したがって、デフォルトの二項モデルの場合、デフォルトの予測は対数オッズ(ロジットスケールの確率)であり、type = "response"は予測確率を提供します。「terms」オプションは、線形予測スケールのモデル式の各項の適合値を与える行列を返します。この引数の値は短縮できます

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