負の無限大から正の無限大までの変数を作るためにロジット変換をしませんか?0と1のデータが問題になるかどうかはわかりません。エラーメッセージは表示されていますか?ちなみに、プロポーションのみがある場合、分析は常に間違った結果になります。ケースの数でweight=argument
to を使用する必要がありますglm
。
何もうまくいかない場合は、DVをいくつかのカテゴリに分割し、代わりに順序ロジスティック回帰を実行するのに適切と思われる、中央分割または四分位分割または任意のカットポイントを使用できます。うまくいくかもしれません。これらを試してください。
個人的には、0に0.001を追加し、0から0.001を取得するのはあまり悪い考えではないと思いますが、後で説明するいくつかの問題があります。考えてみてください。なぜ0.000000001(またはそれ以上の小数)を加算および減算しないのでしょうか。これは、0と1をより適切に表します!! それほど違いはないように思えるかもしれません。しかし、実際にはそうです。
以下を見てみましょう:
> #odds when 0 is replaced by 0.00000001
> 0.00000001/(1-0.00000001)
[1] 1e-08
> log(0.00000001/(1-0.00000001))
[1] -18.42068
> #odds when 1 is replaced by (1-0.00000001):
> (1-0.00000001)/(1-(1-0.00000001))
[1] 1e+08
> log((1-0.00000001)/(1-(1-0.00000001)))
[1] 18.42068
> #odds when 0 is replaced by 0.001
> 0.001/(1-0.001)
[1] 0.001001001
> log(0.001/(1-0.001))
[1] -6.906755
> #odds when 1 is replaced by (1-0.001):
> (1-0.001)/(1-(1-0.001))
[1] 999
> log((1-0.001)/(1-(1-0.001)))
[1] 6.906755
したがって、オッズを(0/1)および(1/0)に近づける必要があります。負の無限大から正の無限大までの範囲の対数オッズを期待します。したがって、加算または減算するには、対数オッズが無限大に近い(または非常に大きい)ように、非常に長い小数点以下の桁まで選択する必要があります。あなたが十分に大きいとみなす範囲は、あなた次第です。