問題タブ [logistic-regression]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
r - R の multinom() 関数の奇妙な多数の変数
R で関数を実行するmultinom()
と、結果の変数の数が非常に多くなりますが、数式にはいくつかの予測変数しかありません。なぜこれが起こっているのか、どうすれば解決できるのかを誰かに説明してもらえますか? ( mv_daily
0 と 1 のみを取りicu_loc
、データには 0,1,2 を取ります。)
3 つの予測変数を試してみたところ、結果の変数の数が 1230 に増えました。プログラムは、結果の異なる変数として予測変数のそれぞれの異なる値を取得し、それに異なる係数を与えます。
結果:
データは次のようになります。
machine-learning - 教師あり学習、教師なし学習、回帰
そんなこと知ってる:
- 教師なし学習は、 ラベルのないデータに隠された構造を見つけようとする学習です。それ以外の場合、教師あり学習と呼びます。
- 回帰も分類の一種ですが、その出力は無限の数値です。
- また、分類が教師あり学習の一種であることも知っています。
しかし、私を混乱させるのは:
- 線形回帰(ラインフィッティング)は回帰の一種ですか? もしそうなら、なぜそのデータはラベル付けされていないのですか?たとえば、そのサンプル データは (1,2)、(2,3)、(1,4) のような単なる座標の量ですか?
- ロジスティック回帰 (分類) は回帰の一種ですか?もしそうなら、なぜその出力は正常値 (値、偽、0 または 1 の真) なのですか?
誰でも私がこれを理解するのを助けることができますか?
matlab - MATLAB を使用した単純なバイナリ ロジスティック回帰
私は、単純な分類問題に対して MATLAB を使用してロジスティック回帰を行うことに取り組んでいます。私の共変量は 0 ~ 1 の範囲の 1 つの連続変数ですが、カテゴリ応答は 0 (不正解) または 1 (正解) の 2 値変数です。
ロジスティック回帰を実行して、入力観測値 (上記の連続変数など) が正しいか正しくないかの確率を出力する予測子を確立しようとしています。これはかなり単純なシナリオですが、MATLAB でこれを実行するのに問題があります。
私のアプローチは次のとおりです。X
連続変数の値を含む1 つの列ベクトルと、各値(0 または 1 など)Y
の既知の分類を含む別の同じサイズの列ベクトルがあります。X
私は次のコードを使用しています:
[b,dev,stats] = glmfit(X,Y,'binomial','link','logit');
ただし、これによりp = 1.000
、係数 ( b
) が非常に高く (-650.5、1320.1)、関連する標準誤差値が 1e6 のオーダーである無意味な結果が得られます。
次に、追加のパラメーターを使用して、二項サンプルのサイズを指定しようとしました。
glm = GeneralizedLinearModel.fit(X,Y,'distr','binomial','BinomialSize',size(Y,1));
これにより、私が期待したものとより一致する結果が得られました。glmval
推定値の作成に使用される係数を抽出し( Y_fit = glmval(b,[0:0.01:1],'logit');
)、フィッティング用の配列を作成しました ( X_fit = linspace(0,1)
)。を使用して元のデータとモデルのプロットを重ね合わせたところfigure, plot(X,Y,'o',X_fit,Y_fit'-')
、結果として得られたモデルのプロットは、ロジスティック回帰プロットで典型的な「S」字型プロットの 1/4 の下のように見えました。
私の質問は次のとおりです。
1) を使用するとglmfit
奇妙な結果が得られたのはなぜですか?
2) 最初の質問にどのように対処すればよいですか: 入力値が与えられた場合、その分類が正しい確率はどれくらいですか?
3) モデル パラメータの信頼区間を取得するにはどうすればよいですか? からの出力glmval
を入力できるはずですが、私の使用では正しい結果が得られません。 stats
glmfit
glmfit
コメントや入力は非常に役立ちます。ありがとうございます。
更新 (2014 年 3 月 18 日)
mnrval
妥当な結果が得られるように思われることがわかりました。[b_fit,dev,stats] = mnrfit(X,Y+1);
whereを使用しY+1
て、バイナリ分類子を名義分類子にするだけです。
適切な入力範囲と「ii = 1:length(loopVal)」 で、さまざまな確率値[pihat,lower,upper] = mnrval(b_fit,loopVal(ii),stats);
を取得するためにループできます。pihat
loopVal = linspace(0,1)
このstats
パラメーターには大きな相関係数 (0.9973) がありますが、p 値b_fit
は 0.0847 と 0.0845 であり、解釈方法がよくわかりません。何かご意見は?また、なぜ私の例でmrnfit
うまくいくのでしょうか? を使用した場合の係数の p 値は両方ともであり、係数の推定値もまったく異なっていた glmfit
ことに注意してください。GeneralizedLinearModel.fit
p<<0.001
最後に、関数dev
からの出力をどのように解釈するのでしょうか? mnrfit
MATLAB ドキュメントには、「解ベクトルでの適合の逸脱。逸脱は、残差二乗和の一般化である」と記載されています。これはスタンドアロンの値として有用ですか、それともdev
他のモデルの値と比較するだけですか?
python - statsmodels が R ロジスティック回帰の結果を再現できないのはなぜですか?
R のロジスティック回帰モデルと statsmodels が一致しない理由について混乱しています。
Rでいくつかのデータを準備する場合
次に、ロジスティック回帰を実行します
次のような結果が表示されます
しかし、最初にRからエクスポートすることにより、Pythonで同じデータを使用します
次に、Pythonにインポートします
Rで得たものとは関係のないエラーと奇妙な結果が得られます。
私が単純に試してみると
エラーが発生します:
patsy
を使ってデータを用意しても
しようとしている
同じエラーが発生します。エラーを回避できる唯一の方法は、使用することですGLM
しかし、これは(私が思っていた) 同等の R API によって生成された結果とはまったく異なる結果を生成します。
Python のロジスティック回帰がエラーを生成し、R によって生成されたものとは異なる結果を生成するのはなぜですか? これらの API は実際には同等ではありませんか (以前に同じ結果を生成するために動作させたことがあります)。データセットを統計モデルで使用できるようにするために必要な、データセットの追加処理はありますか?
r - すべての独立変数にわたってロジスティック回帰を実行し、AUC を提示するループ
ロジスティック回帰の従属変数 (私のデータ セットでは : ) を使用可能なすべての変数で実行したいと思いdat$admit
ます。各回帰には、独自の独立変数と従属変数があります。私が戻したかった結果は、各回帰の要約のリストです: coeff,p-value,AUC. 以下に提出されたデータセットを使用すると、3 つの回帰があるはずです。
サンプル データ セットを次に示します (admit はロジスティック回帰の従属変数です)。
各回帰と係数のリストを表示するこの関数がありますが、AUC と p 値もバインドする方法が見つかりません。コードは次のとおりです。
このリストを作成する方法はありますか? ありがとう、ロン