SAS中基于PROC REG输出计算数据集外给定值的预测区间:求y=300的95%区间
要得到自变量x=300对应的因变量y的95%预测区间,可通过以下两种方法实现:
方法1:重跑代码自动输出结果
你当前的代码仅开启了cli(输出个体预测区间)参数,但未加入待预测的观测,默认只会对原始数据集的已有观测输出预测区间。你可以先给原始数据集补充一条x=300、y为空的待预测观测,再调用PROC REG即可:
/* 生成带待预测行的新数据集 */ data steers_pred; set steers end=last; output; /* 遍历到原始数据集最后一行时,插入待预测的x=300观测 */ if last then do; x=300; y=.; output; end; run; /* 调用REG过程输出预测区间 */ proc reg data=steers_pred; model y = x / cli; run; quit;
运行后输出结果的预测表中,x=300对应行的95% CL Predict两列值就是你需要的95%预测区间上下限。
方法2:用已有输出手动计算
如果你不想重跑代码,可以从已有的PROC REG输出结果中提取以下参数,代入公式计算:
- 回归截距β₀、自变量x的回归系数β₁
- 模型根均方误差s
- 样本量n、自变量x的均值x̄、自变量x的离均差平方和Sₓₓ
- 自由度为
n-2的双侧95%t分位数t₀.₀₂₅,ₙ₋₂
计算公式如下:
点预测值:ŷ = β₀ + 300×β₁
预测区间上下限:ŷ ± t₀.₀₂₅,ₙ₋₂ × s × √(1 + 1/n + (300 - x̄)²/Sₓₓ)
注:如果你实际需要的是根据y=300反推x的95%置信区间(逆预测),可以在model语句后添加
inverse选项,或代入逆回归预测区间公式计算。
内容的提问来源于stack exchange,提问作者maddenhs
相关产品推荐
相关产品推荐

