Statsmodels:快速入门
本文是系列文章的第二篇,旨在帮助大家快速入门并理解statsmodels库的工作过程。为了达到这个目的,我找到了一个很好的例子,并将其介绍给大家。下面我们将逐步介绍这个例子。
引入相关模块
在这个例子中,我们主要使用了pandas和statsmodels库。pandas的DataFrame类用于数据处理,statsmodels的回归分析模块(sm)用于进行回归分析,而模块用于生成设计矩阵。
获取数据
本例中所使用的数据保存在一个CSV文件中,并且可以通过pandas的read_csv函数方便地读取(URL链接:)。我们可以先查看数据的前五行,但由于数据的列较多,显示会有些混乱。因此,我们需要筛选出我们感兴趣的列。
下面是经过筛选后的数据:
(这里插入表格展示被筛选后的数据)
由于最后一行包含NaN值,我们需要使用dropna函数删除该行数据。
生成设计矩阵
我们建立的模型是y BX,因此需要分别求得y和X矩阵。而使用dmatrices函数可以方便地生成设计矩阵。
这是y矩阵:
(这里插入表格展示y矩阵)
这是X矩阵:
(这里插入表格展示X矩阵)
我们会发现分类变量已经自动转换成了哑变量。
OLS回归分析
OLS指的是普通最小二乘法,通过fit方法对回归方程进行估计,计算结果保存在summary中。
这是输出的模型估计结果:
(这里插入表格展示模型估计结果)
数据线性检验
接下来,我们要进一步检验数据是否适合使用OLS方法。首先,我们检验数据是否具有线性关系,而虚无假设是数据具有线性关系。我们可以使用Rainbow test来进行线性检验。
输出结果如下:
第一个值为F值,第二个值为P值。显然,我们未能拒绝虚无假设,即数据具有线性关系。
绘制偏回归线
最后,我们绘制偏回归线,观察数据点是否分布在估计得到的直线附近。下图展示了控制Region和Literacy后,Wealth对Lottery的回归关系。
(这里插入图表展示偏回归线)
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。