将SAS Proc Logistic复现到Python逻辑回归的参数匹配问题
问题:SAS Proc Logistic与Python逻辑回归结果不一致的参数调整
已完成的参数对齐操作
- SAS采用无惩罚回归,Python已设置
penalty='none' - SAS默认收敛准则为
GCONV=1E-8,Python已将tol参数调整为1e-8 - 使用Python默认的
solver='lbfgs'
代码对比
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截距为-7.03,Python为-5.21)
- 其中一个变量的系数符号完全相反(示例:SAS系数为2.56,Python为-2.45)
- 其余变量的系数在四舍五入到一位小数后能够匹配
疑问
Python还需要调整哪些参数,才能让两者的截距和变量系数在小数点后几位内保持一致?
内容的提问来源于stack exchange,提问作者Bond007
相关产品推荐
相关产品推荐

