我正在获取可复制以下内容的数据集
DATA HAVE
(DROP=I);
DO I = 1 TO 100;
Y = RAND("Integer",0,1);
X1 = I ** RANUNI(I);
X2 = I ** I ** RANUNI(I);
output;
END;
RUN;
我像这样对这个数据集进行逻辑回归
PROC LOGISTIC
DATA=have
PLOTS(ONLY)=NONE
;
MODEL Y (Event = '1') = x1 /
SELECTION=NONE
LINK=LOGIT
;
OUTPUT OUT=fitted_model
PREDICTED = y_hat
PREDPROBS=INDIVIDUAL;
RUN;
QUIT;
我得到的输出是预测的概率,但是我想得到的是y_hat是'1'还是'0'的预测-在SAS中可以做到吗?
答案 0 :(得分:0)
逻辑回归产生概率。通常,您可以使用用户定义的临界值将其转换为预测的0/1,即,如果概率> 0.7,则可以将其分配给1。一旦指定了临界值,就可以使用数据步骤对其进行识别。
要确定一个好的临界点,我建议使用CTABLE和PPROB选项。
data Neuralgia;
input Treatment $ Sex $ Age Duration Pain $ @@;
datalines;
P F 68 1 No B M 74 16 No P F 67 30 No
P M 66 26 Yes B F 67 28 No B F 77 16 No
A F 71 12 No B F 72 50 No B F 76 9 Yes
A M 71 17 Yes A F 63 27 No A F 69 18 Yes
B F 66 12 No A M 62 42 No P F 64 1 Yes
A F 64 17 No P M 74 4 No A F 72 25 No
P M 70 1 Yes B M 66 19 No B M 59 29 No
A F 64 30 No A M 70 28 No A M 69 1 No
B F 78 1 No P M 83 1 Yes B F 69 42 No
B M 75 30 Yes P M 77 29 Yes P F 79 20 Yes
A M 70 12 No A F 69 12 No B F 65 14 No
B M 70 1 No B M 67 23 No A M 76 25 Yes
P M 78 12 Yes B M 77 1 Yes B F 69 24 No
P M 66 4 Yes P F 65 29 No P M 60 26 Yes
A M 78 15 Yes B M 75 21 Yes A F 67 11 No
P F 72 27 No P F 70 13 Yes A M 75 6 Yes
B F 65 7 No P F 68 27 Yes P M 68 11 Yes
P M 67 17 Yes B M 70 22 No A M 65 15 No
P F 67 1 Yes A M 67 10 No P F 72 11 Yes
A F 74 1 No B M 80 21 Yes A F 69 3 No
;
proc logistic data=Neuralgia;
class Treatment Sex / param=ref;
model Pain= Treatment Sex Treatment*Sex Age Duration / expb ctable pprob=(0.3, 0.5 to 0.8 by 0.1);
run;