在SAS的线性回归模型中添加条件

时间:2015-03-19 19:44:25

标签: model sas linear-regression

我是SAS的初学者。我目前正在做一个线性模型,但我坚持拟合模型。最初,我需要先将数据分成两部分。

这是我将数据分成两部分的代码,T是解释数据,然后C是响应。

data mydata;
set rawdata;
if T < 10 then Cbelow = C;
else Cabove= C;
run;

然后我正在做模型,因为我想在T&lt; 10和T&gt; = 10时检查线性回归。然后我使用了我刚才分割的数据。然后我的代码如下:

proc reg data= mydata;
 if T<10 then model Cbelow=T;
 else model Cabove=T
run;

运行上面的代码时出错了。我无法弄清楚为什么。任何人都可以帮我解决问题吗?任何帮助都会非常有吸引力。 非常感谢提前!

这是错误:

 proc reg data= mydata;
157
158  if T<10 then model Cbelow=T;
     --
     180
NOTE: The previous statement has been deleted.
ERROR 180-322: Statement is not valid or it is used out of proper order.
159
160  else model Cabove=T
     ----
     180
ERROR 180-322: Statement is not valid or it is used out of proper order.
161
162  run;
NOTE: The previous statement has been deleted

1 个答案:

答案 0 :(得分:1)

正如乔所说,你应该查看文档。也就是说,我会在各行之间阅读并帮助你。

如果您要查找2个单独的回归,没有合并或混合效果等,请添加分类变量并使用BY中的PROC REG语句。

data mydata;
set rawdata;
if T < 10 then High_Low ="LOW";
else High_Low = "High";
run;

proc sort data=mydata;
by high_low;
run;

proc reg data=mydata;
by high_low;
model C=T;
run;
quit;