1
import statsmodels.formula.api as sm
import numpy as np
import pandas

url = "http://vincentarelbundock.github.com/Rdatasets/csv/HistData/Guerry.csv"
df = pandas.read_csv(url)
df = df[['Lottery', 'Literacy', 'Wealth', 'Region']].dropna()
print df.head()
mod = sm.ols(formula='Lottery ~ Literacy + Wealth + Region', data=df)
res = mod.fit()
print res.summary()

テーブルを印刷した後、このエラーを吐き出します。

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-4-f69caff21ed0> in <module>()
6 df = df[['Lottery', 'Literacy', 'Wealth', 'Region']].dropna()
7 print df.head()
----> 8 mod = sm.ols(formula='Lottery ~ Literacy + Wealth + Region', data=df)
9 res = mod.fit()
10 print res.summary()

TypeError: from_formula() takes at least 3 arguments (2 given)

これは容認できる動作とは思えません。私は何を間違っていますか?

4

1 に答える 1

2

(私のコメントの推測は間違っていました)

statsmodels のバージョンが古すぎます。ドキュメントと例は、statsmodels 0.5 のリリース バージョンに対応しています。

dataキーワードはdf0.5.0.dev-1bbd4ca から名前が変更されました。

したがって、アップグレードするか、古いキーワード名を使用することを強くお勧めします。

mod = sm.ols(formula='Lottery ~ Literacy + Wealth + Region', df=df)

あなたが持っているバージョンで動作するはずです。

于 2013-08-30T14:06:58.627 に答える