Python: не работают StatsModels

Я устанавливаю статмодели:

apt-get install python python-dev python-setuptools python-numpy python-scipy

curl -O https://raw.github.com/pypa/pip/master/contrib/get-pip.py
python get-pip.py

pip install pandas
pip install cython
pip install patsy
pip install statsmodels

Все установки заканчиваются нормально. Расположение пакетов для установки, которые находятся в /usr/local/lib/python2.7/dist-packages, это нормально? потому что другие пакеты Python установлены в /usr/lib/python2.7/dist-packages.

Когда я запускаю этот скрипт в консоли Ipython Qt:

import numpy as np
import statsmodels.api as sm
import matplotlib.pyplot as plt
from statsmodels.stats.outliers_influence import summary_table

x = np.linspace(0, 10, 100);
e = np.random.normal(size=100)
y = 1 + 0.5*x + 2*e
X = sm.add_constant(x)

re = sm.OLS(y, X).fit()
print re.summary()

st, data, ss2 = summary_table(re, alpha=0.05)

fittedvalues = data[:,2]
predict_mean_se  = data[:,3]
predict_mean_ci_low, predict_mean_ci_upp = data[:,4:6].T
predict_ci_low, predict_ci_upp = data[:,6:8].T

Я получаю эту ошибку:

NameError                                 Traceback (most recent call last)
<ipython-input-9-cee9c1b1867d> in <module>()
     12 print re.summary()
     13 
---> 14 st, data, ss2 = summary_table(re, alpha=0.05)
     15 
     16 fittedvalues = data[:,2]

/usr/local/lib/python2.7/dist-packages/statsmodels/stats/outliers_influence.pyc in    summary_table(res, alpha)
    689     from statsmodels.sandbox.regression.predstd import wls_prediction_std
    690 
--> 691     infl = Influence(res)
    692 
    693     #standard error for predicted mean

NameError: global name 'Influence' is not defined

Я использую Linux Mint Mate 15


person F.N.B    schedule 15.07.2013    source источник


Ответы (3)


Я не уверен на 100%, в чем проблема, но я знаю, что проблемная строка кода в вашем примере отличается от текущей версии statsmodels:

infl = OLSInfluence(res)

https://github.com/statsmodels/statsmodels/blob/master/statsmodels/stats/outliers_influence.py#L689

Релиз-кандидат statsmodels 0.5.0 вот-вот будет выпущен, а github master довольно стабилен, поэтому я рекомендую установить новую версию с github:

https://github.com/statsmodels/statsmodels

Я запустил ваш пример на своей машине, и все работало нормально.

person Vincent    schedule 16.07.2013
comment
У меня такая версия: 0.5.0.dev-1bbd4ca такая же как у вас?? Я думаю проблема в установке, т.к. на другой машине с линуксом этот скрипт запускался, но я не помню как я это делал. У вас есть рекомендации?? - person F.N.B; 16.07.2013
comment
Этой версии больше 1 года. Я попробовал 1bbd4ca и получил ту же ошибку, что и вы, так что там определенно есть ошибка, которая с тех пор была исправлена. Попробуйте последнюю версию, и все должно быть в порядке. - person Vincent; 16.07.2013
comment
Спасибо. Я устанавливаю из git и запускаю. - person F.N.B; 16.07.2013

Все, что мне удалось найти, это ошибку github в репозитории statsmodels. Возможно, версия, которую вы скачали с помощью pip, старше патча?

person Sam Nicholls    schedule 15.07.2013

Следующая установка работала для 32-разрядной версии Python 2.7 в Windows

Сначала вы устанавливаете и загружаете zip-файл, содержащий модуль здесь, и распаковываете его.

Затем в командной строке измените каталог на каталог statsmodule, а затем введите: D:\path\statsmodels-0.8.0rc1> py setup.py install

Вам может потребоваться загрузить и установить Visual C++ 2015, прежде чем это сработает.

person Robin Kramer    schedule 18.10.2016