2016-11-23 29 views
0

在SAS中是否有等效的R功能predict(model, data)如何运行预测模型

例如,如何将下面的模型应用于响应变量“Age”未知的大型测试数据集?

proc reg data=sashelp.class; 
    model Age = Height Weight ; 
run; 

我知道你可以从结果窗口中提取公式年龄=拦截+身高(Estimate_height)+重量(Estimate_weight)和手动预测未知的意见“年龄”,但是这不是很有效。

回答

1

SAS本身就是这样做的。只要模型有足够的数据点继续,它就会输出预测值。我已经使用proc glm,但是可以使用任何模型过程来创建这种输出。

/* this is a sample dataset */ 
data mydata; 
input age weight dataset $; 
cards; 
1 10 mydata 
2 11 mydata 
3 12 mydata 
4 15 mydata 
5 12 mydata 
; 
run; 

/* this is a test dataset. It needs to have all of the variables that you'll use in the model */ 
data test; 
input weight dataset $; 
cards; 
6 test 
7 test 
10 test 
; 
run; 
/* append (add to the bottom) the test to the original dataset */ 
proc append data=test base=mydata force; run; 

/* you can look at mydata to see if that worked, the dependent var (age) should be '.' */ 
/* do the model */ 
proc glm data=mydata; 
model age = weight/p clparm; /* these options after the '/' are to show predicte values in results screen - you don't need it */ 
output out=preddata predicted=pred lcl=lower ucl=upper; /* this line creates a dataset with the predicted value for all observations */ 
run; 
quit; 

/* look at the dataset (preddata) for the predicted values */ 
proc print data=preddata; 
where dataset='test'; 
run;