在 statsmodels 中我只能找到 Ljung-Box 测试,这显然与 Box-Pierce 测试不同。我将如何在Python中使用盒子刺穿测试?
原始ARMA算法的公式如下:
在这里您可以看到,ARMA 需要p + q + 1 个数字来计算。所以,没有任何疑问,这是很清楚的。
但是谈论SARIMA算法我无法理解一件事。SARIMA 公式看起来像 ARMA 加上额外的:
其中S是一个数字,代表季节周期。S是常数。
因此,SARIMA 必须计算p + q + P + Q + 1数字。只是额外的P + Q数字。如果P = 1 且Q = 2 ,则不会太多。
但如果我们使用太长的时间段,例如日常时间序列为 365 天,SARIMA 就无法停止拟合。看看这个模型。第一个需要9秒才能贴合,而第二个则2小时后还没贴合完!
import statsmodels.api as sm
model = sm.tsa.statespace.SARIMAX(
df.meantemp_box,
order=(1, 0, 2),
seasonal_order=(1, 1, 1, 7)
).fit()
model = sm.tsa.statespace.SARIMAX(
df.meantemp_box,
order=(1, 0, 2),
seasonal_order=(1, 1, 1, 365)
).fit()
Run Code Online (Sandbox Code Playgroud)
我无法理解这一点。从数学上讲,这个模型是相同的 - 它们都采用相同的p、q、P和 …
我正在 statsmodels 中运行带有外生变量的 ARIMA 模型,并且我尝试在不知道外生变量的未来值的情况下对未来的多个步骤进行预测。exog中的选项需要results.forecast()样本值。我想知道是否可以在不知道这些值的情况下对未来多天进行预测?
如果问题不清楚,假设我将我的智商建模为时间序列变量,并将受教育年限作为外生变量。我在高中结束时训练模型,我想预测 4 年后我的智商,但我不知道我是否会继续上学。我可以在不知道自己的上学年数的情况下使用 statsmodels 进行预测吗?谢谢!
在自回归 AR(p) 模型statsmodels v0.10.1中无需选择滞后数。如果您选择不指定滞后数,模型将为您选择最适合自动运行模型的滞后数。在新版本中,该模型现在称为AutoReg,并且似乎滞后现在是强制性的。有没有办法让这个模型在新版本中选择最适合你的滞后数?0.11.1
我正在尝试在三组之间进行单向方差分析。我已经能够使用 SCIPY.STATS 获取 F 统计量和 F 分布的 p 值。然而,我更喜欢将方差分析表作为带有平方和的类似 R 的输出。下面给出了我的 SCIPY.STATS 一种方差分析代码。STATSMODELS ANOVA 的所有文档都使用 pandas 数据框。任何有关如何调整 STATSMODELS 现有代码的帮助将不胜感激。
import numpy as np
import pandas as pd
import scipy.stats as stats
from scipy.stats import f_oneway
data1= pd.read_table('/Users/Hrihaan/Desktop/Sample_A.txt', dtype=float, header=None, sep='\s+').values
data2= pd.read_table('/Users/Hrihaan/Desktop/Sample_B.txt', dtype=float, header=None, sep='\s+').values
data3= pd.read_table('/Users/Hrihaan/Desktop/Sample_C.txt', dtype=float, header=None, sep='\s+').values
Param_1=data1[:,0]
Param_2=data2[:,0]
Param_3=data3[:,0]
f_oneway(Param_1, Param_2, Param_3)
Run Code Online (Sandbox Code Playgroud) 我想找到两种平均值(男性与女性)之间差异的置信区间。我浏览了 statsmodels 的索引,发现了下面的函数。但是它没有解释我应该在哪里指定男性和女性系列。请指教。
功能:
CompareMeans.tconfint_diff(alpha=0.05, alternative='two-sided', usevar='pooled')
Run Code Online (Sandbox Code Playgroud)
我将数据作为python中的x和y变量存储为列表.如何将其导入python以运行statsmodels.
from __future__ import print_function
import statsmodels.api as sm
import statsmodels.formula.api as smf
import pandas as pd
x = [1,1,2,3]
y=[1,0,0,0]
data = pd.DataFrame(x,y) #to merge the two side by side
star98 = sm.datasets.star98.load_pandas().data
formula = 'x ~ y'
pd.options.mode.chained_assignment = None # default='warn'
mod1 = smf.glm(formula=formula, data=data, family=sm.families.Binomial()).fit()
x = mod1.summary()
Run Code Online (Sandbox Code Playgroud)
ValueError:对deviance函数的第一次猜测返回了nan.这可能是一个边界问题,应该报告
我有一个包含大约100多个功能的数据集.我也有一小组协变量.
我使用statsmodels构建OLS线性模型,对于每个协变量,y = x + C1 + C2 + C3 + C4 + ... + Cn,以及特征x和因变量y.
我正在尝试对回归系数进行假设检验以测试系数是否等于0.我认为t检验是适当的方法,但我不太确定如何实现这一点Python,使用statsmodels.
但我不确定我理解r_matrix参数.我能为此提供什么?我确实看过这些例子,但我不清楚.
此外,我对协变量本身的t检验不感兴趣,而只是x的回归共同效应.
任何帮助赞赏!
我的同事和我正在做这项任务,涉及对Fama-French 3因子模型进行回归.我使用了python Statsmodels模块,他们使用Stata,我们共享同一组数据.对于普通最小二乘回归,我们得到了相同的答案.但由于某种原因,稳健的回归结果并不一致.
只是想知道这个问题可能是什么原因?有什么方法可以解决吗?我还在Statsmodels中尝试了不同的方法(HuberT,RamsayE等),并且它们都没有与Stata的结果相同的答案.任何帮助表示赞赏.
我发现了不同的方法来进行 A/B 测试的卡方检验,查看用户与对照组和测试组的转化率。
\n\n第一种方法使用statsmodels与使用proportions_chisquare
第二种方法使用scipy和chi2_contingency
似乎chi2_contingency总是比比例具有更高的价值。您知道其中的区别以及哪种测试更适用于简单的 A/B 测试吗?
我很抱歉没有在此提供示例,如下所示:
\n\n示例 1(p 值 = 0.037):
\n\nimport statsmodels.stats.proportion as proportion\nimport numpy as np\n\nconv_a = 20\nconv_b = 35\nclicks_a = 500\nclicks_b = 500\nconverted = np.array([conv_a, conv_b])\nclicks = np.array([clicks_a,clicks_b])\n\nchisq, pvalue, table = proportion.proportions_chisquare(converted, clicks)\nprint('Results are ','chisq =%.3f, pvalue = %.3f'%(chisq, pvalue))\nRun Code Online (Sandbox Code Playgroud)\n\n示例 2(p 值 = 0.0521):
\n\nimport numpy\nimport scipy.stats\n\ncontrol_size = 500\nA_CONVERSIONS = 20\nA_NO_CONVERSIONS= control_size - A_CONVERSIONS\ntest_size = 500\nB_CONVERSIONS = …Run Code Online (Sandbox Code Playgroud) statsmodels ×10
python ×9
statistics ×4
arima ×2
time-series ×2
anova ×1
forecasting ×1
pandas ×1
regression ×1
scipy ×1
scipy.stats ×1
stata ×1