stataでヒステリシス値を設定する際の注意点

913 ワード

時系列問題を計算する際には,ヒステリシス値の計算がしばしば必要となる.Stataではlag関数を使用して計算します.
データベース内の変数aは、次の文を使用して、1日遅れた新しい変数を生成する必要があります.
sysuse sp500, clear
gen  open_lag1=l1.open

ただし、このときのリターンエラー(エラーメッセージ:time variable not set)は、Stataがどのような時間ヒステリシスに従ってStataにそれが時間変数であることを先に伝えるべきか分からないためです.完全コードは以下の通りです.
sysuse sp500, clear
tsset date
gen  open_lag1=l1.open

panelデータの場合、tsset year文を使用するとエラーが表示されます(エラーメッセージはstata repeated time values in sampleと表示されます).パネルデータの場合、各行の観察値の位置を決定するには2つの次元の識別が必要であるため、tssetを使用するとyear値が重複しないことが要求されます.正しい方法はtsset id yearまたはxtset id yearで、コードは以下の通りです.
webuse nlswork, clear
xtset idcode year
gen  tenure_lag1=l1.tenure

IDはパネルデータの調査対象コード
2日間、3日間の遅延を設定する必要がある場合も簡単です.コードは以下の通りです.
gen  tenure_lag1=l2.tenure
gen  tenure_lag1=l3.tenure

半日話して、最も重要なのはgenの新しいlag変数の前に必ずtssetあるいはxtsetで時間変数を設定することです!