标签: statsmodels

Python 2.7 - statsmodels - 格式化和编写摘要输出

我在Mac OSX Lion上使用pandas 0.11.0(数据处理)进行逻辑回归并statsmodels 0.4.3进行实际回归.

我将运行~2,900种不同的逻辑回归模型,需要将结果输出到csv文件并以特定方式格式化.

目前,我只知道做了print result.summary()哪些打印结果(如下)到shell:

 Logit Regression Results                           
  ==============================================================================
 Dep. Variable:            death_death   No. Observations:                 9752
 Model:                          Logit   Df Residuals:                     9747
 Method:                           MLE   Df Model:                            4
 Date:                Wed, 22 May 2013   Pseudo R-squ.:                -0.02672
 Time:                        22:15:05   Log-Likelihood:                -5806.9
 converged:                       True   LL-Null:                       -5655.8
                                         LLR p-value:                     1.000
 ===============================================================================
                   coef    std err          z      P>|z|      [95.0% Conf. Int.]
 -------------------------------------------------------------------------------
 age_age5064    -0.1999      0.055     -3.619      0.000        -0.308    -0.092
 age_age6574    -0.2553      0.053     -4.847      0.000        -0.359    -0.152
 sex_female     -0.2515      0.044 …
Run Code Online (Sandbox Code Playgroud)

python python-2.7 pandas statsmodels

10
推荐指数
2
解决办法
2万
查看次数

让statsmodels使用heteroskedasticity修正系数t检验中的标准误差

我一直在深入研究API,并且已经找到了如何检索不同类型的异方差校正标准误差(通过属性等等)但是,我无法弄清楚如何获得系数的t-测试使用这些更正的标准错误.有没有办法在API中执行此操作,还是必须手动执行此操作?如果是后者,您是否可以就如何使用statsmodels结果建议任何指导? statsmodels.regression.linear_model.RegressionResultsHC0_se

python regression statsmodels

10
推荐指数
1
解决办法
1万
查看次数

如何修复 Statsmodel 警告:“已超过最大迭代次数”

我正在使用 Anaconda 并且我正在尝试逻辑回归。加载训练数据集并执行回归后。然后我收到以下警告消息。

train_cols = data.columns[1:]
logit = sm.Logit(data['harmful'], data[train_cols])
result = logit.fit() 
Warning: Maximum number of iterations has been exceeded.
     Current function value: 0.000004
     Iterations: 35
C:\Users\dell\Anaconda\lib\site-packages\statsmodels\base\model.py:466: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals"Check mle_retvals", ConvergenceWarning)
Run Code Online (Sandbox Code Playgroud)

为什么我会收到此警告以及如何解决此问题?谢谢!

python warnings statsmodels anaconda logistic-regression

10
推荐指数
2
解决办法
3万
查看次数

如何从Python中的OLSResults获取变量中的P值?

OLSResults of

df2 = pd.read_csv("MultipleRegression.csv")
X = df2[['Distance', 'CarrierNum', 'Day', 'DayOfBooking']]
Y = df2['Price']
X = add_constant(X)
fit = sm.OLS(Y, X).fit()
print(fit.summary())
Run Code Online (Sandbox Code Playgroud)

将每个属性的P值显示为仅3个小数位.

我需要为每个属性提取p值等Distance,CarrierNum并以科学计数法打印出来.

余可使用提取的系数fit.params[0]fit.params[1]

需要获得所有P值.

所有P值为0的意思是什么?

python linear-regression statsmodels

10
推荐指数
2
解决办法
1万
查看次数

在Python中执行潜在类分析的正确方法是什么?

我想使用Python 使用潜在类分析(LCA)建模数据集.我在sklearn中找到了因子分析类,但我不相信这个类等同于LCA.

Python中是否存在LCA的包或类?

python scikit-learn statsmodels

10
推荐指数
1
解决办法
4086
查看次数

Statsmodels ARIMA - 使用predict()和forecast()的不同结果

我会使用(Statsmodels)ARIMA来预测系列中的值:

plt.plot(ind, final_results.predict(start=0 ,end=26))
plt.plot(ind, forecast.values)
plt.show()
Run Code Online (Sandbox Code Playgroud)

我想我会从这两个图得到相同的结果,但我得到这个: 在此输入图像描述

我想知道问题是关于预测还是预测

python statsmodels arima

10
推荐指数
2
解决办法
5953
查看次数

如何解释更全面的测试结果?

我对统计和编程很陌生。我已经自学了一些,但我很难理解p-valueadfuller 测试的概念和其他各种结果。

我正在使用的代码:

(我在 stockoverflow 上找到了这段代码)

import numpy as np
import os
import pandas as pd
import statsmodels.api as sm
import cython

import statsmodels.tsa.stattools as ts




loc = r"C:\Stock Study\Stock Research\Hist Data"
os.chdir(loc)
xl_file1 = pd.ExcelFile("HDFCBANK.xlsx")
xl_file2 = pd.ExcelFile("KOTAKBANK.xlsx")
y1 = xl_file1.parse("Sheet1")
x1 = xl_file2.parse("Sheet1")

x = x1['Close']
y = y1['Close']


def cointegration_test(y, x):
    # Step 1: regress on variable on the other
    ols_result = sm.OLS(y, x).fit()
    # Step 2: obtain the residual (ols_resuld.resid)
    # Step 3: apply …
Run Code Online (Sandbox Code Playgroud)

math statistics statsmodels

10
推荐指数
3
解决办法
1万
查看次数

如何从statsmodels.api中提取回归系数?

 result = sm.OLS(gold_lookback, silver_lookback ).fit()
Run Code Online (Sandbox Code Playgroud)

得到结果后,我怎样才能得到系数和常数?

换句话说,如果 y = ax + c 如何获得价值ac

python linear-regression pandas statsmodels

10
推荐指数
2
解决办法
2万
查看次数

为什么`sklearn`和`statsmodels`实现OLS回归会给出不同的R ^ 2?

我意外地注意到,当不适合拦截时,OLS模型由R ^ 2 实现sklearnstatsmodels产生不同的R ^ 2值.否则他们似乎工作正常.以下代码产生:

import numpy as np
import sklearn
import statsmodels
import sklearn.linear_model as sl
import statsmodels.api as sm

np.random.seed(42)

N=1000
X = np.random.normal(loc=1, size=(N, 1))
Y = 2 * X.flatten() + 4 + np.random.normal(size=N)

sklernIntercept=sl.LinearRegression(fit_intercept=True).fit(X, Y)
sklernNoIntercept=sl.LinearRegression(fit_intercept=False).fit(X, Y)
statsmodelsIntercept = sm.OLS(Y, sm.add_constant(X))
statsmodelsNoIntercept = sm.OLS(Y, X)

print(sklernIntercept.score(X, Y), statsmodelsIntercept.fit().rsquared)
print(sklernNoIntercept.score(X, Y), statsmodelsNoIntercept.fit().rsquared)

print(sklearn.__version__, statsmodels.__version__)
Run Code Online (Sandbox Code Playgroud)

打印:

0.78741906105 0.78741906105
-0.950825182861 0.783154483028
0.19.1 0.8.0
Run Code Online (Sandbox Code Playgroud)

差异来自哪里?

问题不同于不同的线性回归系数与statsmodels和sklearn,因为那里sklearn.linear_model.LinearModel(有截距)适合X准备的statsmodels.api.OLS.

问题不同于 Statsmodels:计算拟合值和R平方, 因为它解决了两个Python包( …

python linear-regression python-3.x scikit-learn statsmodels

10
推荐指数
1
解决办法
1299
查看次数

无法使用matplotlib绘制预测的时间序列值

我试图绘制我的实际时间序列值和预测值,但它给了我这个错误:

ValueError:视图限制最小值-36816.95989583333小于1并且是无效的Matplotlib日期值.如果将非日期时间值传递给具有日期时间单位的轴,则通常会发生这种情况

我正在使用statsmodels适合数据的arima模型.

这是我的数据样本:

datetime             value
2017-01-01 00:00:00  10.18
2017-01-01 00:15:00  10.2
2017-01-01 00:30:00  10.32
2017-01-01 00:45:00  10.16
2017-01-01 01:00:00  9.93
2017-01-01 01:15:00  9.77
2017-01-01 01:30:00  9.47
2017-01-01 01:45:00  9.08
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

mod = sm.tsa.statespace.SARIMAX(
    subset,
    order=(1, 1, 1),
    seasonal_order=(1, 1, 1, 12),
    enforce_stationarity=False,
    enforce_invertibility=False
)

results = mod.fit()
pred_uc = results.get_forecast(steps=500)
pred_ci = pred_uc.conf_int(alpha = 0.05)

# Plot
fig = plt.figure(figsize=(12, 8))
ax = fig.add_subplot(1, 1, 1)
ax.plot(subset,color = "blue")
ax.plot(pred_uc.predicted_mean, color="black", alpha=0.5, label='SARIMAX')
plt.show()
Run Code Online (Sandbox Code Playgroud)

知道如何解决这个问题吗?

python datetime matplotlib statsmodels

10
推荐指数
1
解决办法
3849
查看次数