我正在尝试基于SAS中的线性模型创建预测区间。我的SAS代码是
proc reg data=datain.aswells alpha=0.01;
model arsenic = latitude longitude depth_ft / clb;
run;
我希望与latitude=23.75467
,longitude=90.66169
和depth_ft=25
建立95%的预测间隔。此数据点在数据集中不存在,但它在用于计算模型的值范围内。在SAS中有没有简单的方法来实现这一目标?难道没有办法在SAS中轻松计算这个预测区间吗?
答案 0 :(得分:2)
最简单的方法是将其添加到输入数据集中,并为ARSENIC提供缺失值。然后使用OUTPUT
语句输出预测区间。
以下是一个例子:
data test;
do i=1 to 100;
x1 = rannor(123);
x2 = rannor(123)*2 + 1;
y = 1*x1 + 2*x2 + 4*rannor(123);
output;
end;
run;
data test;
set test end=last;
output;
if last then do;
y = .;
x1 = 1.5;
x2 = -1;
output;
end;
run;
proc reg data=test alpha=.01;
model y = x1 x2;
output out=test_out(where=(y=.)) p=predicted ucl=UCL_Pred lcl=LCL_Pred;
run;
quit;
输出上的WHERE子句将结果集过滤为仅预测的缺失值。您可以删除它并获取所有预测值和预测间隔。