标签: statsmodels

是否有Python等效于MATLAB的pearsrnd函数?

我想从Pearson系统生成具有给定均值,方差,偏度和峰度的随机数.我可以使用"pearsrnd"在MATLAB中执行此操作 - scipy,statsmodels或任何其他包具有类似的功能吗?

提前致谢.

python statistics scipy statsmodels

6
推荐指数
1
解决办法
884
查看次数

使用statsmodels进行时间序列分析

我正在尝试使用时间序列数据进行多元回归,但是当我将时间序列列添加到模型时,它最终将每个唯一值视为一个单独的变量,就像这样(我的'date'列的类型为datetime) :

est = smf.ols(formula='r ~ spend + date', data=df).fit()
print est.summary()

coef    std err t   P>|t|   [95.0% Conf. Int.]
Intercept   -6.249e-10  inf -0  nan nan nan
date[T.Timestamp('2014-10-08 00:00:00')]    -2.571e-10  inf -0  nan nan nan
date[T.Timestamp('2014-10-15 00:00:00')]    9.441e-11   inf 0   nan nan nan
date[T.Timestamp('2014-10-22 00:00:00')]    5.619e-11   inf 0   nan nan nan
date[T.Timestamp('2014-10-29 00:00:00')]    -8.035e-12  inf -0  nan nan nan
date[T.Timestamp('2014-11-05 00:00:00')]    6.334e-11   inf 0   nan nan nan
date[T.Timestamp('2014-11-12 00:00:00')]    7.9e+04 inf 0   nan nan nan
date[T.Timestamp('2014-11-19 00:00:00')]    1.58e+05    inf 0 …
Run Code Online (Sandbox Code Playgroud)

python statsmodels

6
推荐指数
1
解决办法
2484
查看次数

如何从MLE logit回归中获得系数?

我有一个statsmodels.discrete.discrete_model.BinaryResultsWrapper是running的输出statsmodels.api.Logit(...).fit()。我可以调用该.summary()方法来打印一个结果表,其中的系数嵌入文本中,但是我真正需要的是将这些系数存储到变量中以备后用。我怎样才能做到这一点?关于如何执行此非常基本的操作的文档还不清楚(可能是除了打印结果之外,任何人都想对结果做的最基本的事情)

当我尝试fittedvalues()方法(看起来它会返回系数)时,我得到了错误:

“系列”对象不可调用

python statsmodels logistic-regression

6
推荐指数
1
解决办法
3008
查看次数

python statsmodels:帮助将ARIMA模型用于时间序列

来自statsmodels的ARIMA给出了我输出的不准确答案.我想知道是否有人可以帮我理解我的代码有什么问题.

这是一个示例:

import pandas as pd
import numpy as np
import datetime as dt
from statsmodels.tsa.arima_model import ARIMA

# Setting up a data frame that looks twenty days into the past,
# and has linear data, from approximately 1 through 20
counts = np.arange(1, 21) + 0.2 * (np.random.random(size=(20,)) - 0.5)
start = dt.datetime.strptime("1 Nov 01", "%d %b %y")
daterange = pd.date_range(start, periods=20)
table = {"count": counts, "date": daterange}
data = pd.DataFrame(table)
data.set_index("date", inplace=True)

print data

               count
date
2001-11-01   0.998543 …
Run Code Online (Sandbox Code Playgroud)

python statistics statsmodels

6
推荐指数
1
解决办法
5776
查看次数

Python Statsmodels QuantReg拦截

问题设置statsmodels分位数回归问题中,它们的最小绝对偏差摘要输出显示截距.在该示例中,他们使用公式

from __future__ import print_function
import patsy
import numpy as np
import pandas as pd
import statsmodels.api as sm
import statsmodels.formula.api as smf
import matplotlib.pyplot as plt
from statsmodels.regression.quantile_regression import QuantReg

data = sm.datasets.engel.load_pandas().data

mod = smf.quantreg('foodexp ~ income', data)
res = mod.fit(q=.5)
print(res.summary())

                         QuantReg Regression Results                          
==============================================================================
Dep. Variable:                foodexp   Pseudo R-squared:               0.6206
Model:                       QuantReg   Bandwidth:                       64.51
Method:                 Least Squares   Sparsity:                        209.3
Date:                Fri, 09 Oct 2015   No. Observations:                  235
Time:                        15:44:23   Df Residuals: …
Run Code Online (Sandbox Code Playgroud)

python regression quantile statsmodels

6
推荐指数
1
解决办法
2807
查看次数

statsmodels add_constant用于OLS拦截,这实际上是做什么的?

通过statsmodels OLS拟合回顾线性回归我看到你必须使用add_constant在拟合之前为自变量中的所有点添加常量'1'.然而,当我们的x等于0时,我在这个上下文中对截距的唯一理解是y的值,所以我不清楚是什么目的总是在这里注入'1'.这个常数实际上告诉OLS适合什么?

python linear-regression statsmodels

6
推荐指数
2
解决办法
3263
查看次数

seasonal_decompose:操作数无法与系列中的形状一起广播

我知道这个话题有很多问题,但没有一个能帮助我解决这个问题.我真的坚持这个.

有一个简单的系列:

0
2016-01-31  266
2016-02-29  235
2016-03-31  347
2016-04-30  514
2016-05-31  374
2016-06-30  250
2016-07-31  441
2016-08-31  422
2016-09-30  323
2016-10-31  168
2016-11-30  496
2016-12-31  303

import statsmodels.api as sm
logdf = np.log(df[0])
decompose = sm.tsa.seasonal_decompose(logdf,freq=12, model='additive')
decomplot = decompose.plot()
Run Code Online (Sandbox Code Playgroud)

我一直在: ValueError: operands could not be broadcast together with shapes (12,) (14,)

我已经尝试了很多东西,只传递了logdf.values,传递了非日志系列.它不起作用.Numpy和statsmodel版本:

print(statsmodels.__version__)
print(pd.__version__)
print(np.__version__)
0.6.1
0.18.1
1.11.3
Run Code Online (Sandbox Code Playgroud)

numpy time-series decomposition pandas statsmodels

6
推荐指数
1
解决办法
2386
查看次数

如何在一个图中绘制多个季节性分解图?

我正在使用提供的季节性分解分解多个时间序列。这statsmodels是代码和相应的输出:

def seasonal_decompose(item_index):
    tmp = df2.loc[df2.item_id_copy == item_ids[item_index], "sales_quantity"]
    res = sm.tsa.seasonal_decompose(tmp)
    res.plot()
    plt.show()

seasonal_decompose(100)
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

有人可以告诉我如何以X列的行格式绘制多个此类图,以查看多个时间序列的行为吗?

python matplotlib statsmodels

6
推荐指数
2
解决办法
5855
查看次数

Statsmodels-如何对线性滞后回归阶数高于 1 的多元 SARIMAX 进行建模

我正在使用 SARIMAX 耦合模型 (statsmodels.tsa.statespace.sarimax.SARIMAX) 对两个季节性时间序列之间的相关性进行建模。内生变量为 y(t),外生变量为 x(t)。我的目标是使用 x(t) 作为预测变量来预测 y(t)。

\n\n

我对 SARIMAX(p,d,q, r )\xe2\x88\x99(P,D,Q)s 过程的理解是将 y(t) 建模为 x(t) 的线性函数,误差项如下一个 SARIMA 过程:\​​ny(t)=c+\xce\xb21\xe2\x88\x99x(1,t)+\xce\xb22\xe2\x88\x99x(2,t)+\xe2\x8b\xaf+\ xce\xb2r\xe2\x88\x99x(r,t)+\xce\xb5(t) (参见链接中的完整方程\n SARIMAX 模型

\n\n

对于上述问题,我有两个问题:(1) 是否可以对高于 1 的滞后回归阶数“ r ”进行建模?\n(2) 一旦估计了 SARIMAX 模型方程,这是预测未来值的最佳方法考虑到 x(t) 是未来的已知变量,y(t) 作为 x(t) 的函数?我见过很多单变量 SARIMA 预测的示例,但没有看到多变量 SARIMAX 预测的示例。\n非常感谢。

\n

time-series python-3.x statsmodels

6
推荐指数
0
解决办法
1403
查看次数

ARIMA模型在每周时间序列数据上的预测误差

我正在使用ARIMA模型来预测产品的销售量。数据位于2015年1月1日至2016年11月24日的csv文件中,间隔为1周。我正在尝试预测9步,即未来9周。

CSV中的数据:

"01-01-2015",9
"08-01-2015",8
"15-01-2015",13
"22-01-2015",10
"29-01-2015",12
"05-02-2015",5
"12-02-2015",4
"19-02-2015",6
"26-02-2015",9
"05-03-2015",3
"12-03-2015",3
"19-03-2015",2
...
Run Code Online (Sandbox Code Playgroud)

这是我正在使用的代码:

def parser(x):
    return datetime.datetime.strptime(x, '%d-%m-%Y')
fn = 'filename.csv'
y = pd.read_csv(fn, header = 0, parse_dates = [0], index_col = 0, squeeze = True, date_parser = parser)
newmod = sm.tsa.statespace.SARIMAX(y,order=(1, 1, 0),seasonal_order=(1, 1, 0, 12),enforce_stationarity=False,enforce_invertibility=False)
newresults = newmod.fit()
pred_uc = newresults.get_forecast(steps = 9)
pred_ci = pred_uc.conf_int()
y1 = pred_ci.iloc[:,0]
y2 = pred_ci.iloc[:,1]
ax = y.plot(label = "observed")
pred_uc.predicted_mean.plot(ax=ax, label='Forecast')
ax.fill_between(pred_ci.index, pred_ci.iloc[:,0],pred_ci.iloc[:,1], color = 'k' , …
Run Code Online (Sandbox Code Playgroud)

python matplotlib python-3.x statsmodels arima

6
推荐指数
0
解决办法
199
查看次数