Python Statsmodels 简介

这篇博客介绍了Python的statsmodels库,主要用于统计建模、测试和数据可视化。它涵盖了线性模型、广义线性模型、线性混合效应模型等,并涉及时间序列分析如自回归过程。文章通过实例展示了如何使用statsmodels进行线性模型的拟合、评估和预测,以及时间序列数据的模拟和处理。同时,提到了Patsy公式和DataFrame对象在建模中的应用。
摘要由CSDN通过智能技术生成

https://www.jianshu.com/p/e45558ccf533

13.3 statsmodels介绍

       statsmodels(http://www.statsmodels.org)是一个Python库,用于拟合多种统计模型,执行统计测试以及数据探索和可视化。statsmodels包含更多的“经典”频率学派统计方法,而贝叶斯方法和机器学习模型可在其他库中找到。

包含在statsmodels中的一些模型:

· 线性模型,广义线性模型和鲁棒线性模型

· 线性混合效应模型

· 方差分析(ANOVA)方法

· 时间序列过程和状态空间模型

· 广义的矩量法

        在接下来的几页中,我们将在statsmodels中使用一些基本工具,并探讨如何使用带有Patsy公式和pandas DataFrame对象的建模接口。


13.3.1 评估线性模型

       统计模型中有几种线性回归模型,从较基本的(例如,普通最小二乘)到更复杂的(例如,迭代重新加权的最小二乘)。

1.statsmodels中的线性模型有两个不同的主要接口:基于数组的和基于公式的。这些接口通过这些API模块导入来访问(见图13-1)

 

图13-1:随机数据生成线性模型

:已知参数beta的“真实”模型。在这种情况下,dnorm是用于生成具有特定均值和方差的正态分布数据的辅助函数。

numpy.dot(a,b,out=None)

Dot product of two arrays. Specifically

2.线性模型通常与我们在Patsy中看到的截距项相匹配。sm.add_constant函数可以将截距列添加到现有矩阵。(见图13-2)

 

图13-2:sm.add_constant函数

3.模型的fit方法返回一个回归结果对象,该对象包含了估计的模型参数和其他的诊断(见图13-3)

 

 

图13-3:fit方法

4.在results上调用summary方法可以打印出一个模型的诊断细节(见图13-4)

 

图13-4:summary方法

5.此处的参数名称已被赋予通用名称x1、x2等。假设所有模型参数都在DataFrame中,使用statsmodels公式API和Patsy公式字符串(见图13-5)

图13-5:statsmodels公式API和Patsy公式字符串

6.predict方法

       观察statsmodels如何将结果作为带有DataFrame列名称的Series返回。使用公式和pandas对象时,我们也不需要使用add_constant。

       给定新的样本外数据后,你可以根据估计的模型参数计算预测值(见图13-6)

 

图13-6:predict方法


13.3.2 评估时间序列处理

       statsmodels中的另一类模型用于时间序列分析。其中包括自回归过程,卡尔曼滤波和其他状态空间模型,以及多变量自回归模型。

让我们模拟一些具有自回归结构和噪声的时间序列数据(见图13-7)

 

 

图13-7:模拟数据

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值