Statsmodels的发行版中有很多的范例数据集。可以在https://github.com/statsmodels/statsmodels/tree/master/statsmodels/datasets找到这些数据集的完整列表。
本章我们将聚焦copper数据集,其中包含的信息有:铜价、全球铜消费量和其他参数。
准备工作
你可能需要先安装patsy。判断是否需要安装patsy很容易,只需运行一下本攻略的完整代码。如果得到的运行结果是和pasty有关的错误信息,则需要执行如下两条命令之一。
具体步骤
在本节中,你将看到怎样从statsmodels加载数据集到Pandas的DataFrame
对象或Series
对象。
- 加载数据。
需要调用的函数是load_pandas
。用如下语句加载数据。
这将生成一个DataSet
对象,数据被加载到了该对象包含的pandas
对象中。
- 拟合数据。
对于数据以pandas
对象加载的情况,使用Dataset
对象的exog
属性,可以获得一个多列的DataFrame
对象。此外对于本例的情况,DataSet
对象的endog
属性包含了全球铜消费量的数据。
采用最小二乘拟合,创建一个OLS
(ordinary least squares)对象,并调用其fit
方法。
打印出拟合的参数,如下所示。
- 汇总结果。
使用summary
方法,对最小二乘拟合的结果进行汇总,如下所示。
打印出回归分析的结果。
加载copper数据集的完整代码如下。
攻略小结
statsmodels中的Dataset
类采用了特殊的数据存储格式,这其中就包括了endog
和exog
属性。statsmodels中有一个load
函数,用来把数据加载到NumPy数组中。而本攻略选用的load_pandas
方法,则是用来把数据加载到pandas
对象中。我们对这些数据做了最小二乘拟合,得到了铜价和消费量之间关系的统计模型。