如何修复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_retv
54 2024-01-26
编程技术问答社区
有没有一种方法可以围绕AWS Lambda功能的250 MB限制?
我正在研究AWS中的lambda功能,我尝试使用层来加载依赖项(这是STATSMODEL,SCIKIT-LEARN,PYLDAVIS,PANDAVIS,PANDAS,NOMPY,NLTK,MATPLOTLIB,MATPLOTLIB,JOBLIB,JOBLIB,GENSIM和ELI5),ELI5),,,,,,,,,,但是我无法添加它们,因为我会发现一个错误,说代码和层的最大允许大小为262144000字节(250 MB).我设法将其降低至264 MB,但它仍然不够小,即使允许它,我不确定它是否正常工作. 有什么方法可以为依赖关系增加更多空间吗?或者,或者,我是否可以删除软件包中的某些子目录 - 例如,我只需要statsmodels的分布,所以我可以删除其他所有内容? 解决方案 有什么方法可以为依赖关系添加更多空间吗? 如果您将lambda函数打包为
0 2024-01-25
编程技术问答社区
用Statsmodels进行简单的逻辑回归: 添加截距和可视化的逻辑回归方程
使用StatsModels,我试图生成一个简单的逻辑回归模型,以预测一个人是否会根据其高度吸烟(烟). 我感觉需要将截距包含在逻辑回归模型中,但我不确定如何使用add_constant()函数实现一个拦截.另外,我不确定为什么会生成以下错误. 这是数据集,pulse.csv:完整的代码和输出在此PDF文件中:import numpy as np import pandas as pd import statsmodels.api as sm import matplotlib.pyplot as plt import seaborn as sns sns.set() raw_data = pd.read_csv('Pulse.csv') raw_data x1 = raw_data['Hgt'] y = raw_data['Smoke'] reg_log = sm.Logit(y,x1,missing='Drop') results_log = reg_log.fit() d
26 2023-11-20
编程技术问答社区
如何使用 Conda 升级到 statsmodels 的开发者版本?
我当前正在尝试将Conda中的StatsModels软件包更新为开发人员版本statsmodels v0.11.0dev0. 由于我对Python是相对较新的,我正在努力努力了解如何更新到开发人员版本的不同线程. on >关于如何安装开发人员版本的简短提示,尽管如此,我仍无法遵循. 我尝试了PIP安装-E和Python Setup.py开发. 为了专门更新StatsModel软件包,我需要放置什么?一个逐步的例子真的很有帮助,并且高度赞赏. 解决方案 正常安装 (在这里不适用于回答问题) 对于第一个选项,您需要以及另一种方式 开发人员版本 运行以下步骤: 1)git克隆git://github.com/statsmodels/statsmodels.git 2)PIP安装Cython 3)pip install -r要求.txt 4)Python设置.Py开发 然后导致正确编译C文件: Compiling stat
8 2023-11-18
编程技术问答社区
在Python中使用pandas + statsmodels的VAR模型
我是R的狂热用户,但由于几种不同的原因,最近切换到Python.但是,我正在努力从StatsModels中运行Python中的Vector AR模型. Q#1.运行此操作时,我会遇到错误,并且我怀疑它与我的向量类型有关. import numpy as np import statsmodels.tsa.api from statsmodels import datasets import datetime as dt import pandas as pd from pandas import Series from pandas import DataFrame import os df = pd.read_csv('myfile.csv') speedonly = DataFrame(df['speed']) results = statsmodels.tsa.api.VAR(sp
6 2023-11-13
编程技术问答社区
ImportError: 无法导入 ExponentialSmoothing 名称
我尝试在Python中安装StatsModels.安装后,我检查了PIP Freeze.该软件包可以在列表中看到. 当我尝试时: from statsmodels.tsa.api import ExponentialSmoothing, SimpleExpSmoothing, Holt 我遇到了错误: Traceback (most recent call last): File "", line 1, in ImportError: cannot import name ExponentialSmoothing 我也尝试了以下链接: link 解决方案 我遇到了相同的情况,Nish的URL中建议的安装过程对我不起作用.这是我如何解决问题(我正在使用Mac OS). 如果已安装:pip uninstall statsmodels ,请首先删除StatsModels库 在您的终端类型git init中启动git
0 2023-11-02
编程技术问答社区
安装 statsmodels 时,我遇到了以下错误:RuntimeError: dictionary changed size during iteration(运行时错误:迭代过程中字典的大小发生了变化
我已经阅读了很多有关此错误的文章,而我发布此错误的原因是因为我在尝试安装STATSMODELS软件包时会遇到错误,而不是我的程序之一. 安装软件包时如何纠正错误? $ sudo pip3 install statsmodels Downloading/unpacking statsmodels Downloading statsmodels-0.5.0.tar.gz (5.5MB): 5.5MB downloaded Running setup.py (path:/tmp/pip_build_root/statsmodels/setup.py) egg_info for package statsmodels Traceback (most recent call last): File "", line 17, in File "/tmp/pip_build_root/statsmodels/setu
10 2023-11-02
编程技术问答社区
使用statsmodels.tsa.saseanal
我正在尝试分解时间序列.我的日期不包含NAN和INF,其索引是'datetime64 [ns].但是由于某些原因,我无法理解,运行以下内容: statsmodels.tsa.seasonal.seasonal_decompose(data, model='additive',filt=None, freq=None, two_sided=True) 给我以下错误: TypeError: ufunc 'isfinite' not supported for the input types, and the inputs could not be safely coerced to any supported types according to the casting rule ''safe'' 我的数据看起来像这样: ds 2005-01-01 1.56832e+06 2005-02-01 1.77795e+06 2005-03-01 1.89
4 2023-10-22
编程技术问答社区
在Python中向Statsmodels的ARIMA模型提供多个输入信息
我试图拟合具有多个输入的Arima模型.只要输入是一个单个数组,它都可以正常工作. 在这里,我被告知我将输入阵列放入多维阵列类似阵列的结构中.所以我做到了: import numpy as np from statsmodels.tsa.arima_model import ARIMA a = [1, 2, 3] b = [4, 5, 6] data = np.dstack([a, b]) for p in range(6): for d in range(2): for q in range(4): order = (p,d,q) try: model = ARIMA(data, order=(p,d,q)) print("this works:{}, {}, {} ".format(p,d,q))
4 2023-10-22
编程技术问答社区
调用params时,statsmodles的AR模型出现错误
statsmodels的新手,尝试使用statsmodels.tsa.ar_model适合pandas timeseries. #pull one series from dataframe y=data.sentiment armodel=sm.tsa.ar_model.AR(y, freq='D').fit() armodel.params() 获取以下错误: C:\Python27\lib\site-packages\pandas\lib.pyd in pandas.lib.SeriesIndex.__set__ (pandas\lib.c:27817)() AssertionError: Index length did not match values 有什么想法? 解决方案 如果可以的话,您应该升级到当前主人.这是修复的在这里.
8 2023-10-22
编程技术问答社区
在趋势线上预测时间序列并纳入季节性(Python)
在过去的几天中,我使用StatsModels(Python)对Times系列发疯.我是TS地区的新手,尽管我对各种回归模型有更好的了解.这是我的问题: 我有一个我固定的时间序列(通过sishenal_decompose或通过差异).我还使用ACF和PACF图找出了Arima模型的参数P,D和Q.我将模型拟合在固定的TS或残留物上(我从Sensional_decompose获得).很高兴,我也得到了一个预测. 但是现在我的问题是我的预测也是静止的.我需要一个趋势和季节性周期.假设我有时间T1-T100的数据,我需要从T101-T110进行预测. T101-T110的预测是静止的,我不知道如何在趋势线上投射并包括周期. 有人可以解释我如何包括季节性函数的预测和组件以获得所需的结果. 解决方案 在代码方面,您可以使用以下内容来查看哪个sishityal_decompose向您显示 from statsmodels.tsa.seasonal import seas
12 2023-10-22
编程技术问答社区
用 Python 计算先知模型的 RMSE
我是学习python的新手,我正在创建一个时间序列模型,该模型每月使用先知模型预测总销售额.我需要帮助获取模型的RMSE!谢谢! from fbprophet import Prophet #Creating Dataframe# proph = train.groupby(['date_block_num'])[ 'item_cnt_day'].sum() proph.index=pd.date_range(start='2013-01-01', end='2015-10-01', freq='MS') proph = proph.to_frame().reset_index() proph.columns = ['ds', 'y'] proph.head() #Modelling# model=Prophet(yearly_seasonality=True) model.fit(proph) model.head() #Making future predictions fut
8 2023-10-21
编程技术问答社区
为什么StatsModels的Arima(1,0,0)不等于Autoreg(1)?
我正在比较arima_model和ar_model的结果.这是我无法理解的: 为什么产生的系数不同?是因为估计方法吗? (fit()方法属性的不同设置()不给出相同的结果) 获得系数并进行了对拟合的结果进行回测后,我匹配AR(1)的系数(1)(1).为什么? 在这种最简单的环境中,Arima到底在做什么,是否应该能够重现AR? import pandas_datareader as pdr import datetime aapl = pdr.get_data_yahoo('AAPL', start=datetime.datetime(2006,1,1), end=datetime.datetime(2020,6,30)) aapl = aapl.resample('M').mean() aapl['close_pct_change'] = aapl['Close'].pct_change() from
0 2023-10-21
编程技术问答社区
为什么在使用 aic_min_order 时,我得到了 '计算的初始 AR 系数不是静态的'?
i生成一些数据,例如[1、6、1、6、1、6],并在正态分布下添加噪声.我使用arma_order_select_ic选择订单.然后使用AIC_MIN_ORDER来适合ARMA模型.有时该模型运行良好.但是有时会提高价值. ValueError: The computed initial AR coefficients are not stationary 这是我的代码. import statsmodels.api as sm import numpy as np x = [1 if i%2 == 0 else 6 for i in range(50)] eta = np.random.normal(0, 0.01, 50) x = x + eta res = sm.tsa.stattools.arma_order_select_ic(x, ic=['aic']) print res.aic_min_order model = sm.tsa.ARMA(x, res.
2 2023-10-21
编程技术问答社区
如何在python中使用AutoReg预测时间序列
我正在尝试仅使用自动回归算法来构建旧学校模型.我发现在statsmodel软件包中有一个实现.我已经阅读了文档,据我了解,它应该作为Arima起作用.所以,这是我的代码: import statsmodels.api as sm model = sm.tsa.AutoReg(df_train.beer, 12).fit() 当我想预测新值时,我正在尝试遵循文档: y_pred = model.predict(start=df_test.index.min(), end=df_test.index.max()) # or y_pred = model.predict(start=100, end=1000) 都返回nans的列表. 另外,当我键入model.predict(0, df_train.size - 1)时,它可以预测实际值,但是model.predict(0, df_train.size)预测NANS列表. 我做错了吗? P.S.我知道有A
2 2023-10-21
编程技术问答社区
如何使用StatsModels和Python在AR模型中持续术语?
我正在尝试使用AR模型对我的时间序列数据进行建模. 这是我正在使用的代码. # Compute AR-model (data is a python list of number) model = AR(data) result = model.fit() plt.plot(data, 'b-', label='data') plt.plot(range(result.k_ar, len(data)), result.fittedvalues, 'r-') plt.show() 我使用result.k_ar,带有result.params的参数成功地获得了P值,result.params,epsilon项,result.sigma2>.问题是我找不到获得C(常数)术语的方法.这是我编写的代码以比较结果. # Plot fit = [] for t in range(result.k_ar, len(data)): value = 0 for i
4 2023-10-21
编程技术问答社区
如何改变ARMAX.predict的maxlag?
仍在了解Arima源代码以预测一些数据的过程中. (我使用两个时间序列(indexed_df和external_df每个具有365个数据点.) 我想比较ARMA和ARMAX之间的预测精度. 对ARMA的预测过程似乎很好.但是使用一个附加的外部变量预测不起作用: 获取ARMAX的P和Q值: arma_mod1 = sm.tsa.ARMA(indexed_df, (2,0), external_df).fit() y = arma_mod1.params print 'P- and Q-Values(ARMAX):' print y out: P- and Q-Values(ARMAX): const 34.739272 0 0.000136 ar.L1.0 0.578090 ar.L2.0 0.129253 dtype: float64 获得预测值(样本中): start_pred = '2013-1
6 2023-10-21
编程技术问答社区
绘制两对组合之间的历史协整值
这是Python中的样本ADF测试,以检查两对之间的协整.但是,最终结果仅给出了协整的数字值.如何获得协调的历史结果. 取自 http://wwwwwww.leinenbock.com/adf-test-in -python/ import numpy as np import statsmodels.api as stat import statsmodels.tsa.stattools as ts x = np.random.normal(0,1, 1000) y = np.random.normal(0,1, 1000) def cointegration_test(y, x): result = stat.OLS(y, x).fit() return ts.adfuller(result.resid) 解决方案 我假设您想测试扩展协整?请注意,您应该使用sm.tsa.coint测试协整.您可以使用So 等熊猫来测试RealGDP和R
4 2023-10-21
编程技术问答社区