問題タブ [panel-data]
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でパネルデータを比較するにはどうすればよいですか
これらの変数の「違い」または経時変化である変数をdata.framesに簡単に追加できる簡単なRコマンドまたはパッケージがあるかどうか疑問に思っています。
私のデータが次のようになっている場合:
次に、価格変数を「最初に差分」した後、私のデータは次のようになります。
r - R で plm を使用したエラー メッセージ: 変数の長さが異なります
R で plm-package を使用すると問題が発生します。
data1 が私のデータセットであると仮定して、プールされた OLS モデルを推定します。
しかし、私はエラーメッセージを受け取ります:
ここに私のデータセットに関するいくつかの情報があります:
誰か助けてくれませんか?
stata - Stata: egen group() を使用して一意の識別子を作成する
私は、各行が文字列である a を持つ会社の年のペアであるデータセットを持ってfirmid
います。
私が行った場合
重複がないため、何も削除されません(最初に実行後にデータセットを作成しましたduplicates drop firmid year, force
)。
ここまでは順調ですね。firmid
数値である を必要とするパネルを作成したいと考えています。だから私は走る
しかし、「パネルで繰り返される時間値」エラーがポップアップします。さらに、
たくさんの重複をリストします。
egen, group()
ユニークなグループを生成していないようです。私の質問は次のとおりです。なぜ、そしてどうすれば一意のグループを堅牢な方法で作成できるのでしょうか?
r - R のパネル データのローリング ウィンドウに関数を適用する
カテゴリごとに、ローリングウィンドウに関数(標準偏差など)を適用しようとしています:
次のデータがあります。
cat ごとに 2 年間のウィンドウの標準偏差を推定する新しい列 (sd など) を作成したいと思います。
これが私が考えている結果です:
これを達成する方法について何かアドバイスはありますか?
r - plm の pdata.frame で時不変の観測を識別します
次のような pdata.frame (r で plm パッケージを使用) があるとします。
一部のインデックスでは時間とともに変化しないが、他のインデックスでは変化するという観察結果がありますid
。時間とともに変化しないものを見つけたい、つまり次のようなものを抽出したい
これを行う簡単な方法はありますか?
r - Rパッケージの効果とplm:限界効果をプロットしようとすると「コントラストのエラー」
対照的なエラーに関するこの回答を読んでデータを確認した後、パッケージ「plm」と「effects」を結合しようとすると、まだ問題が発生します。John Fox は彼の効果に関するドキュメントでこの可能性について議論していないため、これは不可能かもしれません (リンクは許可されていないようです - Google: "john fox 効果パッケージ" を見たい場合)。それで本当に無理なら教えてください。
削減されたデータセットで単純な回帰を実行しています
そして、次のエラー(および典型的なplm警告メッセージ)が表示されます
まだかなり長いデータ構造であることはわかっていますが、共有する価値があると思います
現在、私の能力の限りでは、2 レベル未満の因子は見られないため、このエラーの原因がわかりません。エフェクト パッケージを使用する最終的な目標は、応答変数に対する cddom (および cddom の 2 乗バージョンである cddom2) の限界効果をプロットできるようにすることです。もちろん、私の完全なデータセットには、さらに約 15 のコントロールがあり、どれも単一レベルの因子ではありませんが、同じ問題が発生し続けています。
どなたかアドバイスいただければ幸いです!
EDIT エフェクト機能に関するこの問題は時々変化します。例えば
次のエラーが発生します
前もって感謝します
サイモン
r - plmでのハウスマンとラグランジュの乗数テスト - 使用するかしないか?
Hausman テストに関する以前のスレッド (こちら) では、参照が残念ながら @briatte から消えてしまいましたが、Hausman 関連の追加の質問に直面しています。前のスレッドで絶対値の取得がハウスマンの実行で問題になる可能性があるという事実をほのめかしていましたが、私が抱えている問題は本当にこれによって引き起こされているのか疑問に思っています.
使用する仕様によってrandom.method
、結果が劇的に異なる可能性があるため、どれを信頼するべきか迷ってしまいます (おそらく何もない)。
次の 'vit' は式を表し、右側には時間と個人の両方で変化する変数のみが含まれますが、full は同じ変数 + 年固定効果ダミー + 毎年異なるが毎年同じであるいくつかの変数を表します。堅い(堅固な固定効果)。
ここにいくつかの結果があります
対
もちろん、異なるテストで異なる結果を得ることは可能ですが、ここでの根本的な違いは私を驚かせます...
LM テストでも同様の状況が発生します。
対
誰が何をすべきかについて提案できますか?
ありがとう、
サイモン
r - R 「交絡」相互作用がある場合に「正味の相互作用効果」(または限界効果) をプロットする方法
次の回帰の x1 と x2 の間の交互作用効果を描画したい (y をパネル データセットの正のカウント変数とする)
簡単な相互作用プロットは次のとおりです。
x1*x2
ここで、x1 の値が変更され、さらに変更されるとx1^2
、適合値が変更されることを認めたいと思います。正味の交互作用効果をプロットするときは、これらすべてを考慮する必要があります。たとえば、x1 と x2 の両方が y と正の相関があるが、それらの相互作用がこの正の効果を減衰させ、予測の方向を変える可能性があるようにすることができます。x1*x2
これは、さらに...の値を条件とする場合があります。
したがって、他の変数も結果に影響を与えるため、単純なinteraction.plotは実際には機能しなくなります。またはを使用してこれを行う簡単な方法はありますpredict
かeffect
?
以下は、再現可能なサンプル データ セット (plm.data オブジェクト) です。repex
dput(repex)
structure(list(ID = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L,
2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 4L, 4L, 4L, 4L, 4L, 4L,
5L, 5L, 5L, 5L, 5L, 5L, 6L, 6L, 6L, 6L, 6L, 6L, 7L, 7L, 7L, 7L,
7L, 7L, 8L, 8L, 8L, 8L, 8L, 8L, 9L, 9L, 9L, 9L, 9L, 9L, 10L,
10L, 10L, 10L, 10L, 10L), .Label = c("1", "2", "4", "6", "7",
"8", "9", "10", "11", "13", "15", "16", "17", "18", "20", "22",
"24", "26", "28", "29", "32", "34", "35", "36", "37", "39", "41",
"42", "44", "47"), class = "factor"), Year = structure(c(1L,
2L, 3L, 4L, 5L, 6L, 1L, 2L, 3L, 4L, 5L, 6L, 1L, 2L, 3L, 4L, 5L,
6L, 1L, 2L, 3L, 4L, 5L, 6L, 1L, 2L, 3L, 4L, 5L, 6L, 1L, 2L, 3L,
4L, 5L, 6L, 1L, 2L, 3L, 4L, 5L, 6L, 1L, 2L, 3L, 4L, 5L, 6L, 1L,
2L, 3L, 4L, 5L, 6L, 1L, 2L, 3L, 4L, 5L, 6L), .Label = c("1991",
"1992", "1993", "1994", "1995", "1996", "1997", "1998", "1999",
"2000", "2001", "2002", "2003", "2004", "2005", "2006"), class = "factor"), y = c(5, 10, 6, 9, 9, 4, 2, 2, 3, 7, 12, 13, 0, 5, 5, 1, 1, 3, 0, 0, 1, 0, 3, 0, 0, 4, 9, 9, 12, 9, 10, 6, 14, 12, 6, 2, 20, 15, 18, 14, 26, 17, 0, 0, 0, 0, 2, 0, 5, 1, 2, 2, 5, 3, 0, 0, 0, 1, 0, 0), x1 = c(0L, 0L, 3L, 3L, 3L, 5L, 0L, 0L, 0L, 0L, 0L, 3L, 0L, 2L, 1L, 0L, 0L, 0L, 0L, 1L, 1L, 2L, 1L, 0L, 0L, 2L, 0L, 2L, 8L, 4L, 1L, 0L, 4L, 2L, 1L, 1L, 1L, 1L, 0L, 1L, 3L, 5L, 0L, 0L, 0L, 0L, 0L, 0L, 2L, 0L, 1L, 1L, 2L, 6L, 0L, 0L, 1L, 1L, 1L, 0L), x2 = structure(c(4.22657266700715, 7.07828323739468, 5.58155937520987, 6.09945741088926, 4.98990473760187, 13.1975509132969, 0.136363636363636, 0.164922480620155, 0.981640399790555, 1.61119564479727, 4.27951983102512, 4.52440902710094, 2.41282572727806,
2.77748331046807, 7.00223921984389, 3.55837337174436, 5.31590575343992, 2.61930006177923, 0.211351052048726, 0.525647451963241, 0.696630753538187, 0.666082288178836, 1.09492110512526, 3.8035303566375, 0.548336215316966, 0.85237681730237, 0.982747572848003, 6.59758768791534, 8.74094242997363, 9.29913186611362, 3.5542234379174, 3.24728026722101, 3.60927964544638, 3.33459121950297, 2.88526780610146, 4.56612429882729, 26.45256036788,
21.0190838535023, 19.3769702276769, 19.7227148506334, 17.6596029433548, 23.6531530880185, 0.138888888888889, 0.249009205804338, 0.394159544159544, 0.316399286987522, 0.0413533834586466, 3.02315977564407, 3.94214293703149, 1.9143052531528, 3.16707069146414, 5.70642767128218, 4.38285025038957, 4.23425019314604, 0, 0, 0, 0, 0.0416666666666667, 0), .Dim = 60L, .Dimnames = list(c("1990_ABT", "1991_ABT", "1992_ABT", "1993_ABT", "1994_ABT", "1995_ABT", "1990_AKN", "1991_AKN", "1992_AKN", "1993_AKN", "1994_AKN", "1995_AKN",
"1990_ALL", "1991_ALL", "1992_ALL", "1993_ALL", "1994_ALL",
"1995_ALL", "1990_AMG", "1991_AMG", "1992_AMG", "1993_AMG",
"1994_AMG", "1995_AMG", "1990_AZN", "1991_AZN", "1992_AZN",
"1993_AZN", "1994_AZN", "1995_AZN", "1990_BAX", "1991_BAX",
"1992_BAX", "1993_BAX", "1994_BAX", "1995_BAX", "1990_BAY",
"1991_BAY", "1992_BAY", "1993_BAY", "1994_BAY", "1995_BAY",
"1990_BIO", "1991_BIO", "1992_BIO", "1993_BIO", "1994_BIO",
"1995_BIO", "1990_BMS", "1991_BMS", "1992_BMS", "1993_BMS",
"1994_BMS", "1995_BMS", "1990_ABT", "1990_ABT", "1990_ABT",
"1990_ABT", "1994_CHU", "1990_ABT")))), .Names = c("ID",
"Year", "y", "x1", "x2"), row.names = c(1L, 2L, 3L, 4L, 160L,
5L, 172L, 173L, 174L, 175L, 176L, 177L, 188L, 12L, 190L, 191L,
192L, 13L, 212L, 213L, 214L, 215L, 216L, 217L, 22L, 23L, 230L,
231L, 232L, 233L, 28L, 29L, 30L, 31L, 248L, 249L, 36L, 37L, 38L,
39L, 40L, 41L, 276L, 156L, 52L, 158L, 159L, 281L, 56L, 57L, 58L,
295L, 59L, 297L, 588L, 391L, 392L, 393L, 187L, 395L), class = c("plm.dim",
"data.frame"))
ありがとう!
r - lmeNB パッケージ: 構文の問題
lmeNB パッケージの存在を知ったばかりで、過分散のある正のカウント データがあることを考えると、それは私の腕の中にあるように思えました。しかし、私はそれを機能させることができません。
パッケージの構文はここにあります
私は、37 人の個人と 16 年の個人で完全にバランスの取れたパネルを実行しようとしています (私のデータフレームは、構文の説明と一致していると思われるアルファベット順で、年が増えるにつれて並べられています。
library(lmeNB)
mle.ar1.fun(abs_pb_t ~ RI1 + RA1 + abs_pb + cddom + cddom2, data=s.data, ID = p.data$ID, Vcode = p.data$Year
次のエラーメッセージが表示されます。
Error in
[<-.factor (
tmp, upID == uniID[i], value = c("1--1", "1--2", :
NAs are not allowed in subscripted assignments
In addition: Warning messages:
1: In
[<-.factor (
tmp, upID == uniID[i], value = c("1--1", "1--2", :
invalid factor level, NA generated
2: In
[<-.factor (
tmp, upID == uniID[i], value = c("1--1", "1--2", :
invalid factor level, NA generated
警告で特定された問題がエラーの原因だと思いますが、data.frame に欠損値が 1 つもなく、完全な分離もありません。
誰もこれを経験したことがありますか?
サイモン
r - R - data.table を使用して、複数の行と列にまたがるローリング条件を効率的にテストする
この再現可能な例のように見える data.table でさまざまな条件をテストしようとしています
V1
(最後のコマンドから出てきます) は、イベントの発生回数を表します。
したがって、データ テーブルは順序付けられた配列であり、さまざまな関数を実行する必要があります。ここではいくつかの例を示します。
各イベントの過去 10 年間の発生数のローリング合計 (またはローリング平均) を計算するにはどうすればよいですか? したがって、A 1990の場合、必要な出力は 1,452 (1980 年から 1989 年の間) です。H 2012の出力は 11です。これは、2002 年から 2011 年の間に 11 回しか発生していないためです (2002 年に 3 回、2007 年に 3 回、2010 年に 5 回) 。A 1983の場合、出力は次のとおりです。
NA
過去 15 年間のうち少なくとも 12 年間にイベントが発生したかどうかを確認するにはどうすればよいですか? したがって、A 1997の場合、イベントは 15 年前の 12 年以上 (1982 年から 1996 年まで、1996 年以外は毎年発生) に発生したことがわかり、基準を満たしました。ただし、A 2001の場合、このイベントは過去 15 年間 (1986 年から 2000 年) のうち 11 年にのみ発生し、1996 年、1998 年、1999 年、2000 年には発生せず、基準が満たされていないことがわかります。ここでの望ましい出力は、個別の 1 (基準を満たしている) または 0 (基準を満たしていない)です。
理想的には、コードは 1 と 2 の両方の計算を有効にし、 1980 年から 2013 年の間years
に発生したdata.table
ものだけでなく、1980 年から 2013 年の間に欠落しているものも計算できるようにします。したがって、K 2005の場合、Q1 の結果を 25 (13 + 5 + 3 + 3 + 2) として計算できます (以前のエラーを指摘してくれた @Arun に感謝します)。第 2 四半期については、イベントが 1999 年、2000 年、2001 年、2003 年、2004 年に発生していないことがわかります。したがって、「15 年のうち少なくとも 12 年」という基準は満たされていません。また、イベントと年の組み合わせが data.table に存在するが、V1 の値が 0 である可能性もあります (行 18、A 2001 を参照)。理想的には、そのようなゼロの出現は非出現として扱われます (たとえば、V1 がゼロであるすべての行を削除することによって)。
2 つの質問を投稿することはめったにありませんが、それらは一緒に属しており、同様の問題に本当に関連していると思います。誰かがいくつかの提案をしてくれることを願っています。
どうもありがとう、
サイモン