問題タブ [mlogit]

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.

0 投票する
0 に答える
35 参照

r - Logit モデルの出力に関する問題

ロジットモデルを実行して、カメやその他の変数で見つかった破片へのリンクがあるかどうかを確認しようとしています. 以下の両方のコードを使用してみましたが、出力には変数タイプではなく、それぞれ異なる変数がリストされていることがわかりました。

多くの異なる分類を持ついくつかのカテゴリがあるため、それらを変数 (つまり、性別、年齢など) に限定したい場合。

データの準備に何か問題があったか、欠落している、または削除する必要があるコードの一部があると思います。

0 投票する
3 に答える
55 参照

r - 1 と 0 の列は、さまざまな選択肢の中から個人の選択を示しますか?

R の mlogit パッケージで動作するようにデータをセットアップしようとしています

次のコードで作成されたデータフレームがあります。

id の値ごとにサイトの選択を示すバイナリ変数を作成したいと考えています。id 変数は繰り返されるシーケンスであるため、新しい指標変数は、「site」が「choice」の関連する値と同等である行を除くすべての行で 0 である必要があります。id == 1 の場合、これは「choice」ベクトルの最初の要素になります。id == 2 の場合、選択ベクトルの 2 番目の要素になります。

変数が含まれている最終的なデータフレームは次のようになります。

私はこれを何度も試みましたが、それを理解することも、オンラインで関連する答えを見つけることもできません.

前もって感謝します :)

0 投票する
1 に答える
133 参照

sas - PROC LOGIT と時系列データを使用した SAS 9.4 の反復回帰

多項分布の従属変数を持つロジット回帰の最適なモデル仕様を見つけたいと考えています。Y には 3 つの結果があり、2 つの変数を使用して予測モデルを作成したいと考えています。ラグと差のあるスポット レートの時系列と、推定実現ボラティリティの時系列です。

最初に考えたのは、各仕様を通過するループを作成し、AIC 値を出力してから、バックトラックして最適なモデルを見つけることができるということでした。

これは機能していますが、問題があります。次の方法でスポット レートを確認します (例): Spot_t - Spot_t-n (n は 21 の可能性があります)。これにより、多くの仕様が可能になります。私の試行回帰では、それぞれに 12 の変数を含め、それぞれに 21 日 * 変数の数だけ遅れさせました。これで良いモデルが得られましたが、より良い反復プロセスが必要だと思います。

モデルに 12 個の変数/各変数のラグを含めるように制限すると、24 個のループについて話していることになります。これらのループ内には同じ反復が多数ありますが、これは時間がかかり、ばかげていると思います。この問題を回避する方法があるかもしれません。

私は SAS でのコーディングに慣れていません。私はVBAの経験が豊富です。

私のコードは以下に切り取られています。これを別の方法で行う方法があれば、本当に感謝しています! 配列などを使用することは可能かもしれませんが、私はSASプログラミングに慣れていないので、これらすべてを行う方法に光を当てることができるかもしれません:)

クレイジーなワイドコードで申し訳ありません。あなたが私を助けてくれることを願っています。多分私は問題を過度に複雑にしています。:)

どうもありがとう。敬具、クリスチャン

編集:z = 2テスト目的で設定しました。理想的には、これはかなり高くなります。

0 投票する
1 に答える
2701 参照

r - 多項回帰エラー: 因子のみの 'relevel'

次のデータがあります。

mlogit パッケージを使用して多項回帰を実行していますが、問題が発生しています。

私のどこが間違っているか見てください。モデルは次のとおりです。

クラスとバッチは、クラス (0 または 1) とバッチ (1 から 6) のカテゴリです。モデルを実行する前に、クラスとバッチを因子に転送するためにこれを適用しました。

どうもありがとうございました!

0 投票する
0 に答える
511 参照

python - Python - 条件付きロジット モデルのオーバーフローの問題

これは、スタック オーバーフローに関する私の最初の投稿です。

多項 (または条件付き) ロジット モデルのコードを開発しようとしています ( http://data.princeton.edu/wws509/notes/c6s3.htmlで説明されています)。このタイプのモデルは、古典的なバイナリ ロジスティック回帰。多項ロジット モデルは、離散選択モデリングによく使用されます。

以下のコードでは、すべての参加者 (N) が同じ選択肢の質問 (T) に直面した場合の 2 つのオプション (J) の選択を説明するモデルを記述します。私はすでにR用の同様のコードを開発しており、非常にうまく機能しますが、ゆっくりと動作します(「最適な」ルーチンのため)。オーバーフローの問題のため、PYTHON でこのタイプのコードを開発するのはより困難なようです。最初の操作 (つまり、numpsy.dot(X,beta)) は、numpsy.exp() と「互換性がない」非常に大きな/小さな値につながる可能性があります。https://lingpipe-blog.com/2012/02/16/howprevent-overflow-underflow-logistic-regression/に示されているように、オーバーフローの問題は次の場合に発生する傾向があります: abs(np.dot(X,beta)) > 500. 最初のオーバーフローの問題は、コードの残りの部分で 0、NaN、および Inf 値につながるため、重要な結果をもたらします。問題 (例: np.log(0) または number/Inf)。decimal モジュール、bigfloat モジュールなどでこの問題を修正するために何時間も費やしましたが、うまくいかなかったようです ( numpy を使用して exp のオーバーフローを処理します)。

2 番目に最適なオプションは、いくつかの丸め操作 (num[num > 400] = 400 など) を含めて尤度関数を変更し、「Nelder-Mead」アルゴリズムを使用して対数尤度を最小化するようです。理想的には「BFGS」アルゴリズムを使用しますが、丸め操作と互換性がありません。

コードのオーバーフローの問題を修正する方法についてのアイデアはありますか?

備考: 非常に大きな np.dot(X,beta) 値は、R、MATLAB、STATA では問題にならないようです。

あなたの助けは大歓迎です!

パイソンコード

R コード

0 投票する
2 に答える
269 参照

estimation - OxMetrics - 条件付きロジット モデル

多項式 (または条件付き) ロジット モデルの OxMetrics コードを開発しようとしています ( http://data.princeton.edu/wws509/notes/c6s2.htmlで説明されています)。私は OxMetrics を初めて使用し、最適化ルーチン (MaxBFGS) がどのように機能するかを理解するのにまだ苦労しています。

どんな助けでも大歓迎です!

0 投票する
0 に答える
387 参照

r - R: 条件付きロジット モデルの尤度関数の計算が長すぎます

条件付きロジットモデルの係数を取得するために対数尤度関数を最大化しようとしています。約 9M 行 (300k 選択セット) と約 40 個のパラメーターを推定する大きなデータ フレームがあります。次のようになります。

ここで、ChoiceSet は購入時に店舗で入手可能な一連の製品であり、SKU が選択されたときは Choice=1 です。

ChoiceSets は異なる場合があるため、対数尤度関数を使用します。

SKU (不要) とゼロ ベクトルを使用せずに新しいデータ フレームを作成します。

maxLike パッケージを使用してこの関数を最大化し、勾配を使用して計算を高速化します。

最大化問題は次のとおりです。

一般に、サンプルが小さい場合は問題なく機能しますが、サンプルが大きい場合は長すぎます。

しかし、5000以上の選択肢セットに対してそれを行うと、Rはセッションを終了します。

では、(まだ読んでいる場合) 300,000 以上の選択セットがあり、コースの作業を完了するのに 1.5 週間ある場合、どうすればこの機能を最大化できますか? 助けてください、私にはわかりません。

0 投票する
1 に答える
897 参照

r - Rでグループ化されたデータを使用した多項式/条件付きロジット

R のグループ化されたデータに条件付きロジットを適合させる方法を探しています。応答固有および個人固有の変数を使用した多項式の選択カウントがあります。残念ながら、拡張されたデータセットは大きすぎて処理できません。mlogitしたがって、たとえば、私が知っているほとんどのパッケージを使用できません。vglmパッケージから発見しましたVGAMが、応答カテゴリの説明変数が 1 つ欠落していると機能しません。

誰かが R で似たようなことを試しましたか?

ありがとう!