利用python输出规范的回归结果 | Python 回歸 結果
利用python输出规范的回归结果。
比如系数可以选择输出标准误se、t值还是p值,可以导出为excel或者csv文件,甚至支持linearmodels库所提供的面板回归 ...腾讯云备案控制台云+社区专栏视频精选问答沙龙云+竞赛团队主页开发者手册智能钛AITVP搜索搜索关闭创作写文章发视频提问登录注册展开腾讯云·社区登录首页专栏视频精选问答沙龙云+竞赛团队主页开发者手册智能钛AITVP返回腾讯云官网利用python输出规范的回归结果文章来源:企鹅号-人文社科新方法相比Python,Stata是在实证研究中运用更为广泛的一款计量工具,它可以通过第三方命令方便快捷地输出模型回归结果,且基本可以达到出版要求,这极大减少了手工整理的工作。
如esttab命令:虽然stata在模型结果输出上功能强大,但其在面临较为复杂的数据处理时往往显得心有余而力不足。
相较而言,python在数据处理上功能十分强大。
举个我遇到的例子,之前有个同学手里有这样一份数据,大概结构是:每一列代表一个家庭,每一行是一个家庭成员,该同学想要统计出每个家庭兄弟姐妹各有多少个,然后写了一连串stata循环命令来问我,无奈我也才疏学浅,并没有给出有效的解决办法。
但是,对熟悉python的朋友而言,这只需要一个轻松又愉快的命令就可以解决(pd.value_counts())。
在实际应用中,将这两种工具相结合无疑会相得益彰。
但是,不足之处就是需要在两种工具、两种语言中来回切换。
大多时候能够熟练掌握一种工具就很优秀了。
有句话叫“数据处理,首选python”,对研究工作来说,问题的关键就在于python是否能够像stata一样便捷输出回归结果。
遗憾的是,python专门用于统计模型处理的库statsmodels的官方示例中只给出了两种方法,即summary()和summary2()。
(如图)输出结果远不能满足论文格式要求,且并没有提供导出为外部文件的功能。
既然官方没有给出相应的方法,那就只有充分发挥"自己动手丰衣足食"的精神了。
我足足花了好几天时间研究summary和summary2的源代码,幸运的是在summary2的源代码里寻到了一些“惊喜”,具体来说就是是发现了两个目前存在并没有被使用的函数_col_params()和summary_col()。
根据函数说明可以知道第一个函数用途是将回归系数和标准误堆叠放置,第二个函数应该就是将多个回归结果并列放置。
将具体的回归结果传入后可一目了然:如图,这不正是我们想要的吗!如此看来这个功能正在开发者们的努力中。
对此我进行了大量测试和检验,发现_col_params()函数只支持系数下显示标准误(Std.Err.),summary_col()函数默认不输出“*”号,且传入回归结果后存在除数为的异常(如图’divisionbyzero’,本文省略了详细异常信息)。
最后,根据summary2的源代码,我做了很多修改,而且添加了一些新的功能。
比如系数可以选择输出标准误se、t值还是p值,可以导出为excel或者csv文件,甚至支持linearmodels库所提供的面板回归结果的输出等等。
最终实现了利用python输出和stata类似的回归结果。
上述只是一个过程性说明,接下来举例说明才是本文的重点。
怎么用才是至关重要的。
首先,导入函数。
(在此之前需要下载修改后的文件作为一个模块放在python安装目录中的Lib\site-packages文件夹下,这样就可以直接导入了。
我将其放在了百度云盘https://pan.baidu.com/s/1gTNOyXDjDbjardTozvUVWg)我们只需要导入该函数即可,该函数是我完成所有修改之后的核心,提供了如下参数选择:然后,用几个官方示例进行演示。
这里以普通最小二乘回归(ols)、逻辑回归(logit)、混合面板回归(pooled)以及固定效应回归(fe)为例:这样我们分别得到了四个模型的回归结果,下面利用summary_col()函数将结果进行输出,默认情形下传入回归结果即可:将显示出如下结果:我们也可以自定义变量顺序、标题、添加统计量信息、设置小数位数以及显示标准误'se'等:结果将按照我们的设置显示为:最后,我们也可以选择输出为excel或者csv文件,以excel为例,将结果输出到桌面,并命名为"sum
比如系数可以选择输出标准误se、t值还是p值,可以导出为excel或者csv文件,甚至支持linearmodels库所提供的面板回归 ...腾讯云备案控制台云+社区专栏视频精选问答沙龙云+竞赛团队主页开发者手册智能钛AITVP搜索搜索关闭创作写文章发视频提问登录注册展开腾讯云·社区登录首页专栏视频精选问答沙龙云+竞赛团队主页开发者手册智能钛AITVP返回腾讯云官网利用python输出规范的回归结果文章来源:企鹅号-人文社科新方法相比Python,Stata是在实证研究中运用更为广泛的一款计量工具,它可以通过第三方命令方便快捷地输出模型回归结果,且基本可以达到出版要求,这极大减少了手工整理的工作。
如esttab命令:虽然stata在模型结果输出上功能强大,但其在面临较为复杂的数据处理时往往显得心有余而力不足。
相较而言,python在数据处理上功能十分强大。
举个我遇到的例子,之前有个同学手里有这样一份数据,大概结构是:每一列代表一个家庭,每一行是一个家庭成员,该同学想要统计出每个家庭兄弟姐妹各有多少个,然后写了一连串stata循环命令来问我,无奈我也才疏学浅,并没有给出有效的解决办法。
但是,对熟悉python的朋友而言,这只需要一个轻松又愉快的命令就可以解决(pd.value_counts())。
在实际应用中,将这两种工具相结合无疑会相得益彰。
但是,不足之处就是需要在两种工具、两种语言中来回切换。
大多时候能够熟练掌握一种工具就很优秀了。
有句话叫“数据处理,首选python”,对研究工作来说,问题的关键就在于python是否能够像stata一样便捷输出回归结果。
遗憾的是,python专门用于统计模型处理的库statsmodels的官方示例中只给出了两种方法,即summary()和summary2()。
(如图)输出结果远不能满足论文格式要求,且并没有提供导出为外部文件的功能。
既然官方没有给出相应的方法,那就只有充分发挥"自己动手丰衣足食"的精神了。
我足足花了好几天时间研究summary和summary2的源代码,幸运的是在summary2的源代码里寻到了一些“惊喜”,具体来说就是是发现了两个目前存在并没有被使用的函数_col_params()和summary_col()。
根据函数说明可以知道第一个函数用途是将回归系数和标准误堆叠放置,第二个函数应该就是将多个回归结果并列放置。
将具体的回归结果传入后可一目了然:如图,这不正是我们想要的吗!如此看来这个功能正在开发者们的努力中。
对此我进行了大量测试和检验,发现_col_params()函数只支持系数下显示标准误(Std.Err.),summary_col()函数默认不输出“*”号,且传入回归结果后存在除数为的异常(如图’divisionbyzero’,本文省略了详细异常信息)。
最后,根据summary2的源代码,我做了很多修改,而且添加了一些新的功能。
比如系数可以选择输出标准误se、t值还是p值,可以导出为excel或者csv文件,甚至支持linearmodels库所提供的面板回归结果的输出等等。
最终实现了利用python输出和stata类似的回归结果。
上述只是一个过程性说明,接下来举例说明才是本文的重点。
怎么用才是至关重要的。
首先,导入函数。
(在此之前需要下载修改后的文件作为一个模块放在python安装目录中的Lib\site-packages文件夹下,这样就可以直接导入了。
我将其放在了百度云盘https://pan.baidu.com/s/1gTNOyXDjDbjardTozvUVWg)我们只需要导入该函数即可,该函数是我完成所有修改之后的核心,提供了如下参数选择:然后,用几个官方示例进行演示。
这里以普通最小二乘回归(ols)、逻辑回归(logit)、混合面板回归(pooled)以及固定效应回归(fe)为例:这样我们分别得到了四个模型的回归结果,下面利用summary_col()函数将结果进行输出,默认情形下传入回归结果即可:将显示出如下结果:我们也可以自定义变量顺序、标题、添加统计量信息、设置小数位数以及显示标准误'se'等:结果将按照我们的设置显示为:最后,我们也可以选择输出为excel或者csv文件,以excel为例,将结果输出到桌面,并命名为"sum