2017-06-23 111 views
2

我想比較兩個模型,其中較小的一個是我推測爲最好的模型,然後較大的一個是具有所有變量的完整模型。我希望使用proc logistic中的「測試語句」來比較模型,以確定是否有任何附加變量可能具有重要意義。問題是,測試似乎並沒有被承認我的分類變量(d),如下圖所示:SAS Proc Logistic:測試語句不能識別分類變量?

proc logistic data = test; 
class d (param = ref ref = '0'); 
model y (event = '1') = a b c d; 
test1: test c=d=0; 
run; 

This is the image of the error showing in the log

所以基本上我測試,看看是否有可能是C或d能成爲模型中的重要預測因子。

此外,我不知道如果我正確使用「測試語句」,所以任何意見,將不勝感激。

以下是測試數據可以使用:

data test (drop=i); 
do i=1 to 1000; 
a=round(uniform(1)*4,.01); 
b=round(uniform(1)*10,.01); 
c=round(uniform(1)*7.5,.01); 
if b<2 then d=1; 
else d=0; 
if i<500 then y=1; 
else y=0; 
output; 
end; 
stop; 
run; 

回答

2

From the SAS documentation:如在部分參數名稱在OUTEST =數據集描述

截距和CLASS的變量參數名稱應該被指定。

因此,考慮到你的代碼,你可以指定你的測試語句:

test1: test c=d1=0; 

您應該檢查OUTEST數據集,雖然得到確切的名稱。不幸的是,這意味着你運行兩次proc,但這很簡單。

+0

所以有可能是一種更有效的方式,我可以達到相同的結果,但使其更加自動化,所以我不必手動檢查記錄的名稱。就像有沒有辦法從最後的數據集自動引用它? – NicChik

+0

我相信這是使用變量名稱+級別。也就是說,如果你有一個變量的級別爲1/2/3,變量名稱爲D,參考級別爲1,那麼新變量就是D2/D3。 – Reeza