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 变量的所有值都缺失,您将收到此错误消息。请看下面的示例,其中 time_id 1 的 x2 的所有值都缺失,当您运行代码时,结果输出窗口会详细说明问题(缺失观察的数量与观察的数量相同)。它适用于firm_id,因为您的值少于time_id,因此并非每个firm_id 都缺少特定x 变量的所有值。

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 回答