問題タブ [plm]
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 - plm: fixef() を使用して固定効果双方向モデルの適合値を手動で計算する
注意:時間と個々の固定効果、および不均衡なデータセットの両方でコードを動作させようとしています。以下のサンプル コードは、バランスの取れたデータセットで動作します。
以下の編集もご覧ください。
plm
パッケージを使用して、固定効果モデル (個人効果と時間効果の両方) の適合値を手動で計算しようとしています。plm
これは、モデルとパッケージの仕組みを理解していることを確認するための演習です。2 つの関連する質問 (こことここ)から、オブジェクトから適合値自体を取得できることを知っています。
plm
ビネット (p.2) から、基になるモデルは次のとおりです。
y _it = alpha + beta _transposed * x _it + ( mu _i + lambda _t + epsilon _it)
ここで、mu_i は誤差項の個別の要素 (別名「個別効果」) であり、lambda_t は「時間効果」です。
固定効果は次のように使用して抽出できます。fixef()
これらを (独立変数と一緒に) 使用して、(2 つの独立変数を使用して) モデルの適合値を計算できると思いました。
フィット_it =アルファ+ベータ_1 * x1 +ベータ_2 * x2 +ミュー_i +ラムダ_t
これは私が失敗するところです - 私が得た値は適合値にどこにも近くありません(モデルオブジェクトの実際の値と残差の差として得られます)。一つには、私はどこにも見えませんalpha
。固定効果が最初からの差、平均値からの差などとして表示されるようにしてみましたが、成功しませんでした。
私は何が欠けていますか?モデルの誤解、またはコードのエラーである可能性が高いと思います...よろしくお願いします。
pmodel.response()
PS: 関連する質問の 1 つは、私の問題 (および機能がない理由) に関連するはずのヒントですplm.fit
が、そのヘルプ ページは、この機能が実際に何をするのかを理解するのに役立ちません。それが生み出す結果。
ありがとう!
私がしたことのサンプルコード:
私のセッションは次のとおりです。
編集: (2015-02-22) これはいくつかの関心を集めたので、さらに明確にしようとします。私は「固定効果」モデル(別名「内」または「最小二乗ダミー変数」、plmパッケージのビネットがp.3の一番上の段落でそれを呼び出している)を当てはめようとしていました-同じ勾配、異なる切片。
time
これは、 と のダミーを追加した後で通常の OLS 回帰を実行するのと同じid
です。plm
以下のコードを使用すると、 base を使用してパッケージから適合値を複製できますlm()
。ダミーでは、id と time の両方の最初の要素が比較対象のグループであることは明らかです。私がまだできないことは、plm
パッケージの機能を使用して同じことを行う方法lm()
です.
これが興味のある他の人に役立つことを願っています。問題は、私が意図的に作成した欠損値をどのようplm
に処理するかということかもしれません。のパラメータでfixef
遊んでみましたが、効果がありませんでした。type=
fixef
r - パネル データ R の多重共線性のテスト
plm
のパッケージを使用してパネル データ回帰を実行しておりR
、説明変数間の多重共線性を制御したいと考えています。-パッケージに機能
があることは知っていますが、私が知る限り、パネルデータの出力を処理することはできません。
は単位根検定などの他の診断を行うことができますが、多重共線性を計算する方法は見つかりませんでした。
同様のテストを計算する方法はありますか、または各変数を時系列と見なして、パネル情報を除外し、パッケージを使用してテストを実行できますか?
データを開示することはできませんが、問題はすべてのパネル データ モデルに関連しているはずです。
ディメンションは、50 の期間にわたる約 1,000 の観測値です。vif()
car
plm
vif
car
私が使用するコードは次のようになります。
その後
エラーを返します。
前もって感謝します。
r - PLM が大量のオブジェクトを作成し、それらを開けない理由
私は、1.1mln 観測 x 41 変数の大規模な (ただし巨大ではない) データベースに取り組んでいます。データはアンバランス パネルとして配置されます。これらの変数を使用して、3 つの異なるモデルを指定し、それぞれを 1) 固定効果、2) 変量効果、3) プールされた OLS 回帰として実行しました。
データベースのみを含む元の .RData ファイルは、約 15Mb です。データベースと回帰結果 (合計 9 回の回帰) を含む .RData の重量は約 650Mb です。私はそれを認識しています(基本ドキュメントから)
それでも、なぜこれらのファイルが非常に大きくなる必要があるのか 理解できません。オブジェクトの操作中にメモリが過負荷になるのを避けるために、plm
オブジェクトを 3 つの異なるファイルに保存しました (それぞれのファイルの重量は現在約 200Mb です)。固定効果モデルの結果を確認するために 1 時間前に電話summary
しましたが、まだ結果が表示されていません。私の質問は非常に簡単です。これは正常な動作だと思いますか? plm
オブジェクトのサイズを小さくして結果の取得を高速化するためにできることはありますか?
知りたいことがいくつかあります。
- 私が使用しているデータベース
data.table
は formula
回帰の は事前に組み立てられており、ここで提案されているように、plm
が前に付いた呼び出しに含まれています。例:as.formula()
form<-y~x1+x2+x3+...+xn
mod.fe<-plm(as.formula(form), regr, effect="individual", model="within", index=c("id", "year"))
他に提供できる情報があり、質問に答える必要がある場合はお知らせください。
編集
私が取り組んでいるデータベースと同様の特性を持つ小規模なデータベースを作成することができました。ここにあります:
私が使用した式とplm
呼び出しは次のとおりです。
object.size()
@BenBolker の提案を使用して、元のデータ フレームのサイズが 6.9Kb であるのに対し、呼び出しによって重み 64.5Kb のオブジェクトが生成されたことがわかりました。plm
これは、結果が入力行列の約 10 倍であることを意味します。ここで、@ zx8754 によって提案された以下のオプションを設定しましたが、残念ながら効果はありませんでした。最後に電話したときsummary(plm.f)
、エラーメッセージが表示されました:
最終的には大規模なデータベースでも取得できましたが、それは何時間ものコンピューティングの後でのみでした。
ここで、問題は係数行列が特異であることが原因である可能性があることが示唆されています。ただし、パッケージに含まれる特異点をテストすると、そうではないことがis.matrix.singular()
わかります。matrixcalc
あなたが知りたいかもしれない他のいくつかのこと:
year
、ethnic
およびhealth
は要因です- 式の変数は、最後のものを除いて、多かれ少なかれ一目瞭然です。
event
ある時期に起こったと思われるトラウマ的な出来事です。特定の年のイベントの場合は 1、それ以外の場合は 0 にコード化されます。evm1
これらのイベントのいずれかが前の年に発生した場合 (マイナス 1)、変数は 1 に等しく、それ以外の場合は 0 です。同様にevp1
、次の年にイベントが発生した場合は 1 (プラス 1)、それ以外の場合は 0 です。変数ndm.
とndp.
は同じように機能しますが、その距離が観測できない場合 (特定の個人の期間が短すぎるため) は 1 にコード化され、それ以外の場合は 0 にコード化されます。非常に深く関連する変数の存在は、完全な共線性の疑いを引き起こします。ただし、上記のように、テストにより、行列が非特異であることが明らかになりました。
もう一度言いますが、誰かが質問に答えてくれたらとてもありがたいです。
r - plm model "within" - R の警告メッセージ
このplmモデルの実行に問題があります:
私のデータは(例)です:
次の回帰を実行します。
次の警告メッセージが表示されます: [1]
なにが問題ですか?
r - NA を使用した PLM モデルのパディング値
次のデータセットがあります
NA
一部の変数に s が含まれています。パッケージを使用してplm
、次のモデルを推定します。
ここで、適合値を抽出したいと思います。私が理解しているように、これを行う最善の方法は、応答変数から残差を減算することですvar1
(適合値を取得する関数がないためpml
(ここを参照):
ただし、s の行は除外されますNA
。NA
元のデータセットに s がある場合に、適合値に s を追加したいと思いますNA
。NA
s から適合値までのパッドを保持するスマートで簡単な方法があるはずdt
ですが、私にはわかりません。どんな助けでも大歓迎です!
r - Stargazer は、最初のモデルが単変量 plm の場合は最初のリグレッサーを削除しますが、最初のモデルが多変量 plm の場合は削除しません
このパッケージを使用してstargazer
、パネル モデルの LaTeX テーブルを作成します (plm
パッケージ)。最初のplm
モデルが単変量の場合、stargazer
そのモデルのリグレッサーは削除されますが、モデルは引き続き表示されます。
最初のモデルが多変量になるようにモデルの順序を入れ替えると、すべてのモデルが表示されます。lm
モデルに関してはこの問題はありません。回避策はありますか?lm
インターセプトを含むことは重要plm
ですか?
ありがとう!これが例です。
これにより、以下が得られます。