前面学习了统计描述和统计假设的Python方法,分析数据表时,需要先确定因变量Y,然后对自变量X逐一分析,最后将结果组织成数据表作为输出,还是比较麻烦,使用TableOne工具可以简化这一过程。
TableOne是生成统计表的工具,常用于生成论文中的表格,TableOne底层也基于scipy和statsmodels模块实现,其代码主要实现了根据数据类型调用不同统计工具,以及组织统计结果的功能。它支持Python和R两种语言,可使用以下方法安装:
$ pip install tableone
TableOne的核心代码只有800多行,建议下载其源码,阅读核心代码文件tableone.py,以了解其全部功能和工作流程,并从中借鉴统计分析的具体方法。
git clone https://github.com/tompollard/tableone
下例中分析了96年美国大选数据,用groupby参数指定了其因变量,categorical参数指定了自变量中的分类型变量,使用pval=True指定了需要计算假设检验结果,程序最后将结果保存到excel文件中。
import statsmodels as sm
import tableone
data = sm.datasets.anes96.load_pandas().data
categorical = ['TVnews', 'selfLR', 'ClinLR', 'educ', 'income']
groupby = 'vote'
mytable = tableone.TableOne(data, categorical=categorical,
groupby=groupby, pval=True)
mytable.to_excel("a.xlsx")
# from xieyan jianshu blog
表列出了程序的部分输出结果,对于连续变量popul,在统计检验中,用两样本T检验方法计算出p值,在统计描述中,计算出popul的均值和标准差;对于分类变量TWnews,使用卡方检验计算出其p值,并统计出其各分类的例数及占比;表中还展示出对于因变量各类别的记数,空值个数,离群点,以及非正态变量的统计结果。
对于分类型因变量,使用groupby指定其变量名,对于连续型因变量,一般不指定groupby值,TableOne只进行统计描述。
作为小工具,TableOne也有它的局限性,比如它只能对分类型的因变量Y做统计假设,又如它只能按数据类型自动匹配检验方法,不能手动指定具体的假设检验方法,不支持多变量分析等等,可能解决不了所有数据统计问题。但它使用方便,大大简化了分析流程,能在分析初期展示出数据的概况,尤其对于不太熟悉数据分析方法的编程者给出了较好的统计结果。
(转载请注明出处:https://blog.csdn.net/xieyan0811/article/details/88768757)