全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
4154 5
2017-04-27
悬赏 50 个论坛币 已解决
请教各位,我是想用面板数据从2005年到2015年每年分别做一个回归(别的考虑没用 proc reg data; by year) ,这里编了一个宏,但是一直运行不了。以下是代码

proc datasets nolist lib=work ;
  delete all_ds oreg_ds1;
run;

%macro rollreg;
%local date1 date2;
%do i =2005 %to 2015;
proc datasets nolist lib=work noprint;
delete oreg_ds1;
run;
%let date1=%eval(&i);
%let date2=%eval(&i)+1;
proc reg data= data_ann_simplify(where=(yearend between &date1 and &date2)) noprint;
by yearend;
model cumlogret5= bm5 rb5;
output out=oreg_ds1;
run;

data oreg_ds1;
  set oreg_ds1;
  date1=&date1;
  date2=&date2;
  *format date1 date2 yyyy.;
run;

proc datasets lib=work noprint;
  append base=all_ds data=oreg_ds1 force;
run;
%end;

data out_ds;
  set all_ds;
run;

%mend rollreg;

%rollreg;
quit;


以下是错误提示
3270
3271  %rollreg;

NOTE: 正在删除 WORK.OREG_DS1 (memtype=DATA)。

NOTE: “PROCEDURE DATASETS”所用时间(总处理时间):
      实际时间          0.09 秒
      CPU 时间          0.00 秒



NOTE: Interactivity disabled with BY processing.
NOTE: “PROCEDURE REG”所用时间(总处理时间):
      实际时间          0.28 秒
      CPU 时间          0.09 秒

NOTE: 数据集 WORK.OREG_DS1 有 6926 个观测和 5 个变量。

48: 无法确定 LINE 和 COLUMN。
NOTE 242-205: NOSPOOL 已打开。用 OPTION SPOOL 重新运行可恢复出错的 LINE 和 COLUMN。
ERROR 48-59: 输出格式 YY 没有找到或无法加载。
NOTE: 由于出错,SAS 系统停止处理该步。
WARNING: 数据集 WORK.OREG_DS1 可能不完整。该步停止时,共有 0 个观测和 7 个变量。
WARNING: 数据集 WORK.OREG_DS1 由于该步已停止,而没有被替换。
NOTE: “DATA 语句”所用时间(总处理时间):
      实际时间          0.02 秒
      CPU 时间          0.03 秒



NOTE: 正在追加 WORK.OREG_DS1 至 WORK.ALL_DS。
NOTE: 从数据集 WORK.OREG_DS1. 读取了 6926 个观测
NOTE: 添加了 6926 个观测。
NOTE: 数据集 WORK.ALL_DS 有 358076 个观测和 5 个变量。

NOTE: “PROCEDURE DATASETS”所用时间(总处理时间):
      实际时间          0.08 秒
      CPU 时间          0.03 秒



NOTE: 正在删除 WORK.OREG_DS1 (memtype=DATA)。

NOTE: “PROCEDURE DATASETS”所用时间(总处理时间):
      实际时间          0.03 秒
      CPU 时间          0.03 秒



NOTE: Interactivity disabled with BY processing.
NOTE: “PROCEDURE REG”所用时间(总处理时间):
      实际时间          0.26 秒
      CPU 时间          0.04 秒

NOTE: 数据集 WORK.OREG_DS1 有 6567 个观测和 5 个变量。

48: 无法确定 LINE 和 COLUMN。
NOTE 242-205: NOSPOOL 已打开。用 OPTION SPOOL 重新运行可恢复出错的 LINE 和 COLUMN。
ERROR 48-59: 输出格式 YY 没有找到或无法加载。
NOTE: 由于出错,SAS 系统停止处理该步。
WARNING: 数据集 WORK.OREG_DS1 可能不完整。该步停止时,共有 0 个观测和 7 个变量。
WARNING: 数据集 WORK.OREG_DS1 由于该步已停止,而没有被替换。
NOTE: “DATA 语句”所用时间(总处理时间):
      实际时间          0.01 秒
      CPU 时间          0.01 秒



NOTE: 正在追加 WORK.OREG_DS1 至 WORK.ALL_DS。
NOTE: 从数据集 WORK.OREG_DS1. 读取了 6567 个观测
NOTE: 添加了 6567 个观测。
NOTE: 数据集 WORK.ALL_DS 有 364643 个观测和 5 个变量。

NOTE: “PROCEDURE DATASETS”所用时间(总处理时间):
      实际时间          0.08 秒
      CPU 时间          0.03 秒



NOTE: 正在删除 WORK.OREG_DS1 (memtype=DATA)。

NOTE: “PROCEDURE DATASETS”所用时间(总处理时间):
      实际时间          0.04 秒
      CPU 时间          0.01 秒



NOTE: Interactivity disabled with BY processing.
NOTE: “PROCEDURE REG”所用时间(总处理时间):
      实际时间          0.27 秒
      CPU 时间          0.03 秒

NOTE: 数据集 WORK.OREG_DS1 有 6188 个观测和 5 个变量。

48: 无法确定 LINE 和 COLUMN。
NOTE 242-205: NOSPOOL 已打开。用 OPTION SPOOL 重新运行可恢复出错的 LINE 和 COLUMN。
ERROR 48-59: 输出格式 YY 没有找到或无法加载。
NOTE: 由于出错,SAS 系统停止处理该步。
WARNING: 数据集 WORK.OREG_DS1 可能不完整。该步停止时,共有 0 个观测和 7 个变量。
WARNING: 数据集 WORK.OREG_DS1 由于该步已停止,而没有被替换。
NOTE: “DATA 语句”所用时间(总处理时间):
      实际时间          0.01 秒
      CPU 时间          0.01 秒



NOTE: 正在追加 WORK.OREG_DS1 至 WORK.ALL_DS。
NOTE: 从数据集 WORK.OREG_DS1. 读取了 6188 个观测
NOTE: 添加了 6188 个观测。
NOTE: 数据集 WORK.ALL_DS 有 370831 个观测和 5 个变量。

NOTE: “PROCEDURE DATASETS”所用时间(总处理时间):
      实际时间          0.08 秒
      CPU 时间          0.06 秒



NOTE: 正在删除 WORK.OREG_DS1 (memtype=DATA)。

NOTE: “PROCEDURE DATASETS”所用时间(总处理时间):
      实际时间          0.07 秒
      CPU 时间          0.01 秒



NOTE: Interactivity disabled with BY processing.
NOTE: “PROCEDURE REG”所用时间(总处理时间):
      实际时间          0.31 秒
      CPU 时间          0.07 秒

NOTE: 数据集 WORK.OREG_DS1 有 6008 个观测和 5 个变量。

48: 无法确定 LINE 和 COLUMN。
NOTE 242-205: NOSPOOL 已打开。用 OPTION SPOOL 重新运行可恢复出错的 LINE 和 COLUMN。
ERROR 48-59: 输出格式 YY 没有找到或无法加载。
NOTE: 由于出错,SAS 系统停止处理该步。
WARNING: 数据集 WORK.OREG_DS1 可能不完整。该步停止时,共有 0 个观测和 7 个变量。
WARNING: 数据集 WORK.OREG_DS1 由于该步已停止,而没有被替换。
NOTE: “DATA 语句”所用时间(总处理时间):
      实际时间          0.02 秒
      CPU 时间          0.03 秒



NOTE: 正在追加 WORK.OREG_DS1 至 WORK.ALL_DS。
NOTE: 从数据集 WORK.OREG_DS1. 读取了 6008 个观测
NOTE: 添加了 6008 个观测。
NOTE: 数据集 WORK.ALL_DS 有 376839 个观测和 5 个变量。

NOTE: “PROCEDURE DATASETS”所用时间(总处理时间):
      实际时间          0.06 秒
      CPU 时间          0.00 秒



NOTE: 正在删除 WORK.OREG_DS1 (memtype=DATA)。

NOTE: “PROCEDURE DATASETS”所用时间(总处理时间):
      实际时间          0.06 秒
      CPU 时间          0.03 秒



NOTE: Interactivity disabled with BY processing.
NOTE: “PROCEDURE REG”所用时间(总处理时间):
      实际时间          0.22 秒
      CPU 时间          0.09 秒

NOTE: 数据集 WORK.OREG_DS1 有 5985 个观测和 5 个变量。

48: 无法确定 LINE 和 COLUMN。
NOTE 242-205: NOSPOOL 已打开。用 OPTION SPOOL 重新运行可恢复出错的 LINE 和 COLUMN。
ERROR 48-59: 输出格式 YY 没有找到或无法加载。
NOTE: 由于出错,SAS 系统停止处理该步。
WARNING: 数据集 WORK.OREG_DS1 可能不完整。该步停止时,共有 0 个观测和 7 个变量。
WARNING: 数据集 WORK.OREG_DS1 由于该步已停止,而没有被替换。
NOTE: “DATA 语句”所用时间(总处理时间):
      实际时间          0.02 秒
      CPU 时间          0.03 秒



NOTE: 正在追加 WORK.OREG_DS1 至 WORK.ALL_DS。
NOTE: 从数据集 WORK.OREG_DS1. 读取了 5985 个观测
NOTE: 添加了 5985 个观测。
NOTE: 数据集 WORK.ALL_DS 有 382824 个观测和 5 个变量。

NOTE: “PROCEDURE DATASETS”所用时间(总处理时间):
      实际时间          0.06 秒
      CPU 时间          0.00 秒



NOTE: 正在删除 WORK.OREG_DS1 (memtype=DATA)。

NOTE: “PROCEDURE DATASETS”所用时间(总处理时间):
      实际时间          0.05 秒
      CPU 时间          0.01 秒



NOTE: Interactivity disabled with BY processing.
NOTE: “PROCEDURE REG”所用时间(总处理时间):
      实际时间          0.27 秒
      CPU 时间          0.04 秒

NOTE: 数据集 WORK.OREG_DS1 有 5942 个观测和 5 个变量。

48: 无法确定 LINE 和 COLUMN。
NOTE 242-205: NOSPOOL 已打开。用 OPTION SPOOL 重新运行可恢复出错的 LINE 和 COLUMN。
ERROR 48-59: 输出格式 YY 没有找到或无法加载。
NOTE: 由于出错,SAS 系统停止处理该步。
WARNING: 数据集 WORK.OREG_DS1 可能不完整。该步停止时,共有 0 个观测和 7 个变量。
WARNING: 数据集 WORK.OREG_DS1 由于该步已停止,而没有被替换。
NOTE: “DATA 语句”所用时间(总处理时间):
      实际时间          0.02 秒
      CPU 时间          0.01 秒



NOTE: 正在追加 WORK.OREG_DS1 至 WORK.ALL_DS。
NOTE: 从数据集 WORK.OREG_DS1. 读取了 5942 个观测
NOTE: 添加了 5942 个观测。
NOTE: 数据集 WORK.ALL_DS 有 388766 个观测和 5 个变量。

NOTE: “PROCEDURE DATASETS”所用时间(总处理时间):
      实际时间          0.05 秒
      CPU 时间          0.03 秒



NOTE: 正在删除 WORK.OREG_DS1 (memtype=DATA)。

NOTE: “PROCEDURE DATASETS”所用时间(总处理时间):
      实际时间          0.04 秒
      CPU 时间          0.01 秒



NOTE: Interactivity disabled with BY processing.
NOTE: “PROCEDURE REG”所用时间(总处理时间):
      实际时间          0.22 秒
      CPU 时间          0.04 秒

NOTE: 数据集 WORK.OREG_DS1 有 5890 个观测和 5 个变量。

48: 无法确定 LINE 和 COLUMN。
NOTE 242-205: NOSPOOL 已打开。用 OPTION SPOOL 重新运行可恢复出错的 LINE 和 COLUMN。
ERROR 48-59: 输出格式 YY 没有找到或无法加载。
NOTE: 由于出错,SAS 系统停止处理该步。
WARNING: 数据集 WORK.OREG_DS1 可能不完整。该步停止时,共有 0 个观测和 7 个变量。
WARNING: 数据集 WORK.OREG_DS1 由于该步已停止,而没有被替换。
NOTE: “DATA 语句”所用时间(总处理时间):
      实际时间          0.02 秒
      CPU 时间          0.01 秒



NOTE: 正在追加 WORK.OREG_DS1 至 WORK.ALL_DS。
NOTE: 从数据集 WORK.OREG_DS1. 读取了 5890 个观测
NOTE: 添加了 5890 个观测。
NOTE: 数据集 WORK.ALL_DS 有 394656 个观测和 5 个变量。

NOTE: “PROCEDURE DATASETS”所用时间(总处理时间):
      实际时间          0.07 秒
      CPU 时间          0.01 秒



NOTE: 正在删除 WORK.OREG_DS1 (memtype=DATA)。

NOTE: “PROCEDURE DATASETS”所用时间(总处理时间):
      实际时间          0.06 秒
      CPU 时间          0.01 秒



NOTE: Interactivity disabled with BY processing.
NOTE: “PROCEDURE REG”所用时间(总处理时间):
      实际时间          0.26 秒
      CPU 时间          0.04 秒

NOTE: 数据集 WORK.OREG_DS1 有 5763 个观测和 5 个变量。

48: 无法确定 LINE 和 COLUMN。
NOTE 242-205: NOSPOOL 已打开。用 OPTION SPOOL 重新运行可恢复出错的 LINE 和 COLUMN。
ERROR 48-59: 输出格式 YY 没有找到或无法加载。
NOTE: 由于出错,SAS 系统停止处理该步。
WARNING: 数据集 WORK.OREG_DS1 可能不完整。该步停止时,共有 0 个观测和 7 个变量。
WARNING: 数据集 WORK.OREG_DS1 由于该步已停止,而没有被替换。
NOTE: “DATA 语句”所用时间(总处理时间):
      实际时间          0.03 秒
      CPU 时间          0.01 秒



NOTE: 正在追加 WORK.OREG_DS1 至 WORK.ALL_DS。
NOTE: 从数据集 WORK.OREG_DS1. 读取了 5763 个观测
NOTE: 添加了 5763 个观测。
NOTE: 数据集 WORK.ALL_DS 有 400419 个观测和 5 个变量。

NOTE: “PROCEDURE DATASETS”所用时间(总处理时间):
      实际时间          0.07 秒
      CPU 时间          0.04 秒



NOTE: 正在删除 WORK.OREG_DS1 (memtype=DATA)。

NOTE: “PROCEDURE DATASETS”所用时间(总处理时间):
      实际时间          0.05 秒
      CPU 时间          0.01 秒



NOTE: Interactivity disabled with BY processing.
NOTE: “PROCEDURE REG”所用时间(总处理时间):
      实际时间          0.28 秒
      CPU 时间          0.01 秒

NOTE: 数据集 WORK.OREG_DS1 有 5575 个观测和 5 个变量。

48: 无法确定 LINE 和 COLUMN。
NOTE 242-205: NOSPOOL 已打开。用 OPTION SPOOL 重新运行可恢复出错的 LINE 和 COLUMN。
ERROR 48-59: 输出格式 YY 没有找到或无法加载。
NOTE: 由于出错,SAS 系统停止处理该步。
WARNING: 数据集 WORK.OREG_DS1 可能不完整。该步停止时,共有 0 个观测和 7 个变量。
WARNING: 数据集 WORK.OREG_DS1 由于该步已停止,而没有被替换。
NOTE: “DATA 语句”所用时间(总处理时间):
      实际时间          0.01 秒
      CPU 时间          0.01 秒



NOTE: 正在追加 WORK.OREG_DS1 至 WORK.ALL_DS。
NOTE: 从数据集 WORK.OREG_DS1. 读取了 5575 个观测
NOTE: 添加了 5575 个观测。
NOTE: 数据集 WORK.ALL_DS 有 405994 个观测和 5 个变量。

NOTE: “PROCEDURE DATASETS”所用时间(总处理时间):
      实际时间          0.06 秒
      CPU 时间          0.03 秒



NOTE: 正在删除 WORK.OREG_DS1 (memtype=DATA)。

NOTE: “PROCEDURE DATASETS”所用时间(总处理时间):
      实际时间          0.03 秒
      CPU 时间          0.01 秒



NOTE: Interactivity disabled with BY processing.
NOTE: “PROCEDURE REG”所用时间(总处理时间):
      实际时间          0.23 秒
      CPU 时间          0.04 秒

NOTE: 数据集 WORK.OREG_DS1 有 3212 个观测和 5 个变量。

48: 无法确定 LINE 和 COLUMN。
NOTE 242-205: NOSPOOL 已打开。用 OPTION SPOOL 重新运行可恢复出错的 LINE 和 COLUMN。
ERROR 48-59: 输出格式 YY 没有找到或无法加载。
NOTE: 由于出错,SAS 系统停止处理该步。
WARNING: 数据集 WORK.OREG_DS1 可能不完整。该步停止时,共有 0 个观测和 7 个变量。
WARNING: 数据集 WORK.OREG_DS1 由于该步已停止,而没有被替换。
NOTE: “DATA 语句”所用时间(总处理时间):
      实际时间          0.02 秒
      CPU 时间          0.03 秒



NOTE: 正在追加 WORK.OREG_DS1 至 WORK.ALL_DS。
NOTE: 从数据集 WORK.OREG_DS1. 读取了 3212 个观测
NOTE: 添加了 3212 个观测。
NOTE: 数据集 WORK.ALL_DS 有 409206 个观测和 5 个变量。

NOTE: “PROCEDURE DATASETS”所用时间(总处理时间):
      实际时间          0.07 秒
      CPU 时间          0.01 秒



NOTE: 正在删除 WORK.OREG_DS1 (memtype=DATA)。

NOTE: “PROCEDURE DATASETS”所用时间(总处理时间):
      实际时间          0.04 秒
      CPU 时间          0.01 秒



NOTE: Interactivity disabled with BY processing.
NOTE: “PROCEDURE REG”所用时间(总处理时间):
      实际时间          0.17 秒
      CPU 时间          0.01 秒

NOTE: 数据集 WORK.OREG_DS1 有 469 个观测和 5 个变量。

48: 无法确定 LINE 和 COLUMN。
NOTE 242-205: NOSPOOL 已打开。用 OPTION SPOOL 重新运行可恢复出错的 LINE 和 COLUMN。
ERROR 48-59: 输出格式 YY 没有找到或无法加载。
NOTE: 由于出错,SAS 系统停止处理该步。
WARNING: 数据集 WORK.OREG_DS1 可能不完整。该步停止时,共有 0 个观测和 7 个变量。
WARNING: 数据集 WORK.OREG_DS1 由于该步已停止,而没有被替换。
NOTE: “DATA 语句”所用时间(总处理时间):
      实际时间          0.02 秒
      CPU 时间          0.01 秒



NOTE: 正在追加 WORK.OREG_DS1 至 WORK.ALL_DS。
NOTE: 从数据集 WORK.OREG_DS1. 读取了 469 个观测
NOTE: 添加了 469 个观测。
NOTE: 数据集 WORK.ALL_DS 有 409675 个观测和 5 个变量。

NOTE: “PROCEDURE DATASETS”所用时间(总处理时间):
      实际时间          0.06 秒
      CPU 时间          0.01 秒



NOTE: 从数据集 WORK.ALL_DS. 读取了 409675 个观测
NOTE: 数据集 WORK.OUT_DS 有 409675 个观测和 5 个变量。
NOTE: “DATA 语句”所用时间(总处理时间):
      实际时间          0.06 秒
      CPU 时间          0.04 秒


3272  quit;




问题:
(一)请问各位老师,这个问题应该怎么处理?
(二)另外,我需要每个回归的残差,应该用什么命令得到,并且能够merge到原有的数据中
sas小白在这里跪谢了!!!!

最佳答案

yingj7093 查看完整内容

兄弟 ,proc reg data=&table.; model ; output out= data_out keyword= (residual=r predicted=p); run; 建议你自己多查sas help 文档。写的非常清楚。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2017-4-27 23:31:35
兄弟 ,proc reg data=&table.;
           model              ;
           output  out= data_out   keyword=   (residual=r   predicted=p);
           run;
建议你自己多查sas help 文档。写的非常清楚。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2017-4-27 23:32:08
自己顶一下!!!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2017-4-28 00:49:27
粗看了下,在reg之前应该要对数据集先sort一下
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2017-4-28 08:25:01
谢谢您的建议,确实不会报错了。请问怎么样才能把每次估计的残差放到原始数据里呢?需要什么命令?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2017-4-28 09:17:24
guopeng8899@126 发表于 2017-4-28 08:25
谢谢您的建议,确实不会报错了。请问怎么样才能把每次估计的残差放到原始数据里呢?需要什么命令?
在output语句中加入R=新变量名就可以输出残差。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群