2017-06-23 1 views
2

J'essaie de comparer deux modèles où le plus petit est ce que j'estime être le meilleur modèle, et le plus grand est le modèle complet avec toutes les variables. Je voudrais utiliser la "déclaration de test" dans proc logistic pour comparer les modèles afin de déterminer si l'une des variables supplémentaires pourrait être potentiellement significative. Le problème est que test ne semble pas reconnaître ma variable catégorique (d), comme indiqué ci-dessous:SAS Proc Logistic: L'instruction de test ne reconnaît pas les variables catégorielles?

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

donc essentiellement que je teste pour voir s'il est possible que c ou d pourrait être des prédicteurs significatifs dans le modèle.

En outre, je ne suis pas sûr si j'utilise la "déclaration de test" correctement, donc tout conseil à ce sujet serait apprécié.

Voici les données de test, vous pouvez utiliser:

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; 

Répondre

2

From the SAS documentation:

noms Intercept et paramètres CLASS variables doivent être spécifiées comme décrit dans la section Les noms de paramètre dans la OUTEST = Data Set .

Ainsi, compte tenu de votre code, vous pouvez spécifier votre relevé de test:

test1: test c=d1=0; 

Vous devriez vérifier votre ensemble de données OUTEST mais pour obtenir le nom exact. Malheureusement, cela signifie que vous exécutez le proc deux fois, mais c'est assez facile.

+0

Donc, est-ce qu'il y a peut-être un moyen plus efficace que je puisse obtenir les mêmes résultats, mais le rendre plus automatisé, donc je n'ai pas à vérifier manuellement le nom recodé. Comme il y aurait un moyen de référencer automatiquement à partir de l'ensemble de données outest? – NicChik

+0

Je crois qu'il utilise le nom de variable + niveau. C'est-à-dire si vous avez une variable avec les niveaux 1/2/3 et que le nom de la variable est D et que le niveau de référence est 1 alors les nouvelles variables seront D2/D3. – Reeza