跟着教程学习了一段时间数据分析,越学感觉坑越多。于是花了一个星期仔细看了下《利用Python进行数据分析》。写在这里主要是记录下,方便自己查看。
statsmodels简介
statsmodels是一个有很多统计模型的python库,能完成很多统计测试,数据探索以及可视化。它也包含一些经典的统计方法,比如贝叶斯方法和一个机器学习的模型。
statsmodels中的模型包括:
- 线性模型(linear models),广义线性模型(generalized linear models),鲁棒线性模型(robust linear models)
- 线性混合效应模型(Linear mixed effects models)
- 方差分析(ANOVA)方法(Analysis of variance (ANOVA) methods)
- 时间序列处理(Time series processes)和状态空间模型(state space models)
- 广义矩估计方法(Generalized method of moments)
接下来我们用一些statsmodels中的工具,并了解如何使用Patsy公式和pandas DataFrame进行建模。
1、估计线性模型
statsmodels中的线性模型大致分为两种:基于数组的(array-based),和基于公式的(formula-based)。调用的模块为:
import statsmodels.api as sm
import statsmodels.formula.api as smf
为了演示如何使用,我们对一些随机数据生成一个线性模型:
import numpy as np
import pandas as pd
def dnorm(mean, variance, size=1):
if isinstance(size, int):
size = size
return mean + np.sqrt(variance) * np.random.randn(size)