以前都是写杂文,今天也写写专业文章。
不讲理论,Logistic回归模型(中文简称逻辑回归)的形式就是:
其中,
有的人会把Logistic回归模型的形式写成:
其实,它和第一个公式没有区别,只是分子分母同时乘以了e^y而已。
不管是R或者SAS或者Python要求解的都是这个部分。
用Python做逻辑回归可以用几个方式实现:
(1)采用 statsmodels.api中的 Logit 函数(注意Python中字母的大小写有区别),缺点是没有截距项,需要自己 sm.add_constant 加入
(2)采用statsmodels.formula.api中的 logit 函数,优点是自动含有截距项
(3)采用 statsmodels.api中的 Logit.from_formula 函数,优点也是自动含有截距项,其实它与第(2)个做法是一个做法的两个形式
(4)采用 statsmodels.api中的 GLM 函数,family选二项分布就可以,因为默认的连接函数就是Logit,缺点也是没有截距项
(5)采用statsmodels.formula.api中的 glm 函数,也是family选二项分布,优点是自动含有截距项
(6)采用 statsmodels.api中的 GLM.from_formula 函数,优点也是自动含有截距项,道理同上面的第(3)点
(7)采用sklearn.linear_model中的 LogisticRegression 函数,缺点是看结果比较麻烦statsmodels中一个 summary 看到所有关键结果的快感
需要说明的是,Logit函数采用的是极大似然估计法来求解模型参数,而 GLM采用的是迭代加权最小二乘法来求解参数的。
推荐使用上面的方法2、3或者5、6。