0

大きなパネル時系列データセットがあります。この基本的な SAS 回帰コードを実行したい:

proc sort data=dataset;
by time_id;
run;

ods output parameterestimates=pe;
proc reg data=dataset;
by time_id;
model y=x1 x2 x3....x15;
quit;
run;

コードを実行すると、次のエラーが発生します。

ERROR: No valid observations are found.
NOTE: The above message was for the following BY group:
      time_id=1
ERROR: No valid observations are found.
NOTE: The above message was for the following BY group:
      time_id=2....

なんで?time_id 変数が存在します... time_id 変数が多すぎるためですか? 私がfirm_idを選択すると動作しますが、time_idが必要です。

これが私のデータのサンプルです(パネルの時系列):

y     x  firm_id time_id
3.4   100   1   1
2.3   200   1   2
6.5   653   1   3
3     50    2   1
4.34  23    2   2
4.8   55    2   3
1.311 400   3   1
1.23  200   3   2
5.63  50    3   3
4

1 に答える 1

2

特定の time_id に対して特定の x 変数のすべての値が欠落している場合、このエラー メッセージが表示されます。x2 のすべての値が time_id 1 に対して欠落している以下の例を見てください。コードを実行すると、結果出力ウィンドウに問題の詳細が表示されます (欠落した観測の数は観測の数と同じです)。time_id より値が少ないため、firm_id で機能します。したがって、特定の x 変数のすべての値が各 farm_id で欠落しているわけではありません。

data have;
input y x1 x2 firm_id time_id;
cards;
3.4   100   .   1   1
2.3   200   200 1   2
6.5   653   653 1   3
3     50    .   2   1
4.34  23    23  2   2
4.8   55    55  2   3
1.311 400   .   3   1
1.23  200   200 3   2
5.63  50    50  3   3
;
run;

proc sort data=have;
by time_id;
run;

ods output parameterestimates=pe;
proc reg data=have;
by time_id;
model y=x1-x2;
quit;
run;
于 2012-08-03T08:01:35.570 に答える