我有一个大面板时间序列数据集。我希望做这个基本的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
如果特定x变量的所有值在给定的time_id内丢失,则会收到此错误消息。看看下面的例子,其中time_id 1缺少x2的所有值,当您运行代码时,Results Output窗口会详细说明问题(缺少的观测值的数量与观测值的数目相同)。它适用于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;