私はロジスティック回帰の理解に何か不足していることを知っており、どんな助けも本当に感謝しています。
私が理解している限り、ロジスティック回帰は、入力が与えられた場合の「1」の結果の確率は、逆ロジスティック関数を通過した入力の線形結合であると仮定しています。これは、次のRコードに例示されています。
#create data:
x1 = rnorm(1000) # some continuous variables
x2 = rnorm(1000)
z = 1 + 2*x1 + 3*x2 # linear combination with a bias
pr = 1/(1+exp(-z)) # pass through an inv-logit function
y = pr > 0.5 # take as '1' if probability > 0.5
#now feed it to glm:
df = data.frame(y=y,x1=x1,x2=x2)
glm =glm( y~x1+x2,data=df,family="binomial")
次のエラーメッセージが表示されます。
警告メッセージ:1:glm.fit:アルゴリズムは収束しません2:glm.fit:数値的に0または1の近似確率が発生しました
私はしばらくの間Rで働いてきました。おそらく私が非難していることを知るのに十分です。ここで何が起こっているのでしょうか?
2
データをシミュレートする方法は奇妙に見えます。あなたがしたい場合は、代わりのより標準的な方法のために、あなたはここで見ることができます。stats.stackexchange.com/questions/12857/...
—
ocram
@ocram:そのとおりです。これは重複した質問です!
—
user603
@StéphaneLaurentが説明したように、間違ったシミュレーションを実行しました。しかし、問題はロジスティック回帰の完全な分離であり、私がよく知らなかった問題であり、学ぶのにかなり驚きました。
—
zorbar
@zorbar:それはあなたの質問に対する私の応答にありました(現在削除されています)。
—
user603
@ user603:おそらくあなたの応答を逃しました。とにかく感謝
—
zorbar