2

背景:我有一个分类变量X,有四个级别,我适合作为单独的虚拟变量。因此,共有三个虚拟变量表示 x=1、x=2、x=3(x=0 是基线)。

问题/问题:我希望能够计算这些虚拟变量的线性组合(即使用 SAS 作为计算器)的值。例如,2*B1 + 2*B2 + B3。

在 Stata 中,这可以使用lincom命令来完成,该命令使用存储的 beta 估计值来计算参数的线性组合。

在诸如 PROC GLM 之类的过程中的 SAS 中,我认为我应该使用该ESTIMATE语句,但我不确定在这种情况下如何为每个变量指定“权重”。

4

3 回答 3

2

您正在寻找 PROC SCORE。这需要输出回归或因子估计并对新数据集进行评分。有关示例,请参见此处。 http://support.sas.com/documentation/cdl/en/statug/66859/HTML/default/viewer.htm#statug_score_examples02.htm

于 2014-02-13T16:37:07.967 回答
2

仅供参考,PROC MODEL在模型声明中确实允许这样做,这可能比PROC SCORE. 我知道PROC MODEL可以很容易地用来代替PROC REG,但我不确定建模的先进程度PROC MODEL,所以它可能不是更复杂模型的选择。我希望有更少编码的东西,但考虑到 SAS 的性质,我认为这PROC SCORE是我能得到的最好的。

于 2014-02-13T17:31:58.127 回答
0

如果将线性组合作为变量添加到输入数据集中会怎样?

data myDatasetWithLinCom;
set mydata;
LinComb=2*(x=1)+ 2*(x=2)+(x=3); /*equvilent to 2*B1 + 2*B2 + B3*/
run;

然后您可以将 LinComb 指定为解释变量之一,您可以直接从输出中查找系数。

于 2014-02-13T15:49:27.877 回答