You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用SAS PROC TRANSREG过程执行Box-Cox变换时的缺失值处理方式咨询

SAS PROC TRANSREG中Box-Cox变换的缺失值处理机制

刚好对PROC TRANSREG的缺失值处理逻辑比较熟悉,结合你的代码和场景给你讲清楚:

核心规则:默认自动排除含缺失值的观测

SAS在执行PROC TRANSREG的模型拟合(包括Box-Cox变换步骤)时,默认会剔除所有包含缺失值的记录——不管是你要变换的myvariable,还是模型里的自变量month,只要某一行有任意一个变量缺失,就会被排除在分析样本之外。

这背后的原因很直接:Box-Cox变换的计算完全依赖变量的有效值,缺失值无法代入变换公式;同时模型拟合(这里identity(month)作为自变量)也需要完整的观测来完成参数估计,所以SAS会自动做这个筛选。

对应你代码的具体行为

看你这段代码:

PROC TRANSREG DATA=myfile DETAILS;
MODEL BOXCOX(myvariable/ parameter=0.1) = identity(month);
OUTPUT OUT= transformed_myfile;
RUN;
  • 输出数据集transformed_myfile里,只会保留myvariable和month都无缺失的观测,并且这些观测的myvariable会被应用参数为0.1的Box-Cox变换。
  • 你可以查看SAS日志来确认被排除的观测数:日志里会显示Number of observations read(读取的总记录数)和Number of observations used(实际用于分析的记录数),两者的差就是因缺失值被过滤掉的行数。

额外补充:能不能保留含缺失值的观测?

PROC TRANSREG本身没有选项能强制保留含缺失值的观测来做Box-Cox变换——毕竟变换本身没法处理缺失值。如果你的需求是保留所有记录(哪怕有缺失),可以先手动预处理缺失值:比如用均值插补、时间序列插值(因为你的数据是月度面板)等方法填充myvariable的缺失,之后再运行PROC TRANSREG。

另外,你代码里加的DETAILS选项会让日志输出更详细的样本筛选过程,包括因缺失值排除观测的具体统计,方便你核对。

内容的提问来源于stack exchange,提问作者AppyPoint

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.01 00:22:38