我正在使用SAS进行稳健回归。我收到以下警告:
警告:标度接近0。检测到一个可能的精确匹配。 警告:未创建输出“GoodFit”。确保输出对象名称、标签或路径拼写正确。另外,验证是否使用了适当的过程选项来生成请求的输出对象。例如,验证NOPRINT选项是否被使用。
我为什么要收到这个警告?我怎样才能纠正它,这样才能创造出良好的效果?由于outttest=dataset
中没有任何观察,所以我的代码中出现了一个错误,作为随后用作输入的outtest输出。
代码片段如下:
proc robustreg data=test method=m (wf=huber(c=1.3)) outest = fac1;
class bucket bucket0;
model R_res_new=xyz_ldg*bucket bucket0 abcdev_sh*bucket0 abcdev_lg*bucket0 / noint;
output out=fac1t residual=res;
ods output GoodFit=fit1;
run;
测试数据集是:-
bucket0 R_res_new abcdev_sh abcdev_lg xyz_ldg bucket
pp 0.118023674 0 0.427853531 0.622702006 aa
pp 0.2443029 -0.52011222 0 0.84582555 bb
pp 0.242459596 -0.198019513 0 3.796344334 bb
pp 0.150550397 0 0.05454537 0.57086536 bb
pp 0.093373827 0 0.855772297 0.68810985 bb
pp 0.401303208 -0.620039465 0 1.319799593 bb
发布于 2017-09-30 00:51:15
我不知道,但我的猜测是,基于对文档的快速浏览。
您正在使用ods output GoodFit=fit1
获取写入输出数据集的拟合优度统计数据(R-平方、AIC等)。
当我运行您的代码,并查看输出时,没有输出任何合适的统计数据。如果PROC没有计算拟合优度统计数据,那么它们就不能写入输出数据集。他们根本不存在。
所以关键的问题是,为什么PROC不计算拟合统计量的优度?我认为这与你收到的警告有关:
WARNING: The scale is close to 0. A possible exact fit is detected.
完全适合回归通常不是一件好事。注意,每个参数估计的标准误差为0,这与精确的拟合是一致的。从整体上看,你有一个6个观测数据集,你用大量的预测因子来拟合一个模型。难怪你能得到一个精确的配合。我把它简化为一个预测器,它计算适合的统计数据。但是即使这样,即使它“有效”,一个基于6个记录的回归模型也是相当不稳定的。
https://stackoverflow.com/questions/46446445
复制相似问题