我研究了如何用Python将proc logistic从SAS复制到Logistic回归,并提出了以下观察:
根据我在网上发现的文章,参数变化1和2应该得到所有模型变量的截距和系数输出,这些变量在SAS和Python实现中几乎没有小数点。
SAS代码:
proc logistic DESCENDING data=dataset_name;
model target_var=&modelvariables/ selection = none CLPARM=WALD lackfit RSQ STB ;
output out=result p=pred;
run;Python代码:
clf=LogisticRegression(penalty='none',solver='lbfgs',tol=0.00000001)
clf.fit(X, y)当我比较SAS和Python输出时,我遇到了一个问题,因为拦截器的差值为2,其中一个变量的系数与符号相反。
示例:
拦截: SAS (-7.03),Python (-5.21)系数中的一个变量: SAS (2.56),Python (-2.45)
如果我把剩余的变量系数相加到小数点以下,那么剩下的变量系数就匹配了。
有人能建议Python中是否需要其他参数更改吗?
提前谢谢。
发布于 2022-08-29 12:50:23
我使用了以下代码,SAS和Python回归的结果是匹配的。
clf=LogisticRegression(penalty='none',solver='newton-cg',tol=0.00000001)
clf.fit(X, y)https://stackoverflow.com/questions/73474962
复制相似问题