标签: statsmodels

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

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

python regression statsmodels

10
推荐指数
1
解决办法
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万
查看次数

Pandas Dataframe AttributeError:'DataFrame'对象没有属性'design_info'

我正在尝试使用OLS实现的predict()功能statsmodels.formula.api.当我将新数据帧传递给函数以获取样本外数据集的预测值时,result.predict(newdf)返回以下错误:'DataFrame' object has no attribute 'design_info'.这是什么意思,我该如何解决?完整的追溯是:

    p = result.predict(newdf)
  File "C:\Python27\lib\site-packages\statsmodels\base\model.py", line 878, in predict
    exog = dmatrix(self.model.data.orig_exog.design_info.builder,
  File "C:\Python27\lib\site-packages\pandas\core\frame.py", line 2088, in __getattr__
    (type(self).__name__, name))
AttributeError: 'DataFrame' object has no attribute 'design_info'
Run Code Online (Sandbox Code Playgroud)

编辑:这是一个可重复的例子.当我挑选然后取消选择结果对象(我需要在实际项目中执行)时,会出现错误:

import cPickle
import pandas as pd
import numpy as np
import statsmodels.formula.api as sm

df = pd.DataFrame({"A": [10,20,30,324,2353], "B": [20, 30, 10, 1, 2332], "C": [0, -30, 120, 11, 2]})

result = sm.ols(formula="A ~ B + C", …
Run Code Online (Sandbox Code Playgroud)

python pickle scipy pandas statsmodels

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

从直方图中创建概率分布函数(PDF)

假设我有几个直方图,每个直方图都在不同的 bin位置(在实轴上)进行计数.例如

def generate_random_histogram():

    # Random bin locations between 0 and 100
    bin_locations = np.random.rand(10,) * 100
    bin_locations.sort()

    # Random counts between 0 and 50 on those locations 
    bin_counts = np.random.randint(50, size=len(bin_locations))
    return {'loc': bin_locations, 'count':bin_counts}

# We can assume that the bin size is either pre-defined or that 
# the bin edges are on the middle-point between consecutive counts.
hists = [generate_random_histogram() for x in xrange(3)]
Run Code Online (Sandbox Code Playgroud)

如何对这些直方图进行标准化,以便获得 PDF,其中每个PDF的积分在给定范围内(例如0和100)加起来为1?

我们可以假设直方图根据预定义的bin大小计算事件(例如10)

我见过的大多数实现都是基于高斯内核(参见scipy …

python scipy scikit-learn statsmodels pymc

9
推荐指数
1
解决办法
1300
查看次数

Python ARIMA外生变量样本外

我试图预测python statsmodels ARIMA包中的时间序列,包含一个外生变量,但无法弄清楚在预测步骤中插入外生变量的正确方法.请参阅此处了解文档.

import numpy as np
from scipy import stats
import pandas as pd

import statsmodels.api as sm

vals = np.random.rand(13)
ts = pd.TimeSeries(vals)
df = pd.DataFrame(ts, columns=["test"])
df.index = pd.Index(pd.date_range("2011/01/01", periods = len(vals), freq = 'Q'))

fit1 = sm.tsa.ARIMA(df, (1,0,0)).fit()
#this works fine:
pred1 = fit1.predict(start=12, end = 16)
print(pred1)

Out[32]: 
2014-03-31    0.589121
2014-06-30    0.747575
2014-09-30    0.631322
2014-12-31    0.654858
2015-03-31    0.650093
Freq: Q-DEC, dtype: float64
Run Code Online (Sandbox Code Playgroud)

现在添加一个趋势外生变量

exogx = np.array(range(1,14))
#to make this easy, let's look at …
Run Code Online (Sandbox Code Playgroud)

python numpy predict statsmodels

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

没有位置参数的scipy.stats.expon.fit()

我正在使用scipy.stats.expon.fit(data) 指数分布到我的数据.这似乎返回两个值,我期望一个.在线文档似乎没有说明什么fit()返回,但查看源,我猜它是一个位置和规模参数.您可以0在进行拟合时修复位置参数吗?

python scipy statsmodels

9
推荐指数
1
解决办法
7314
查看次数

时间序列分析 - 不均匀间隔的测量 - 熊猫+ statsmodels

我有两个numpy数组light_points和time_points,并希望对这些数据使用一些时间序列分析方法.

然后我尝试了这个:

import statsmodels.api as sm
import pandas as pd
tdf = pd.DataFrame({'time':time_points[:]})
rdf =  pd.DataFrame({'light':light_points[:]})
rdf.index = pd.DatetimeIndex(freq='w',start=0,periods=len(rdf.light))
#rdf.index = pd.DatetimeIndex(tdf['time'])
Run Code Online (Sandbox Code Playgroud)

这有效,但没有做正确的事情.实际上,测量不是均匀的时间间隔,如果我只是将time_points pandas DataFrame声明为我的帧的索引,我会收到一个错误:

rdf.index = pd.DatetimeIndex(tdf['time'])

decomp = sm.tsa.seasonal_decompose(rdf)

elif freq is None:
raise ValueError("You must specify a freq or x must be a pandas object with a timeseries index")

ValueError: You must specify a freq or x must be a pandas object with a timeseries index
Run Code Online (Sandbox Code Playgroud)

我不知道如何纠正这个问题.此外,似乎大熊猫TimeSeries已被弃用.

我试过这个:

rdf = pd.Series({'light':light_points[:]})
rdf.index = pd.DatetimeIndex(tdf['time'])
Run Code Online (Sandbox Code Playgroud)

但它给我一个长度不匹配: …

python machine-learning time-series pandas statsmodels

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

是否在Statsmodels中实现了LASSO回归?

我很乐意在statsmodels中使用线性LASSO回归,因此为了能够使用'公式'表示法来编写模型,这可以在处理许多分类变量及其交互时节省相当多的编码时间.但是,它似乎尚未在统计模型中实现?

python regression lasso-regression statsmodels

9
推荐指数
1
解决办法
5848
查看次数

如何在逻辑回归中使用权重

我想用 Python 计算(加权)逻辑回归。计算权重以调整样本关于总体的分布。然而,如果我使用权重,结果不会改变。

\n
import numpy as np\nimport pandas as pd  \nimport statsmodels.api as sm  \n
Run Code Online (Sandbox Code Playgroud)\n

数据看起来像这样。目标变量是VISIT. 这些特征是除WEIGHT_both(这是我想使用的权重)之外的所有其他变量。

\n
df.head() \n\nWEIGHT_both VISIT   Q19_1   Q19_2   Q19_3   Q19_4   Q19_5   Q19_6   Q19_7   Q19_8   ... Q19_23  Q19_24  Q19_25  Q19_26  Q19_27  Q19_28  Q19_29  Q19_30  Q19_31  Q19_32\n0   0.022320    1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 ... 4.0 4.0 1.0 1.0 1.0 1.0 2.0 3.0 3.0 2.0\n1   0.027502    1.0 3.0 2.0 2.0 2.0 3.0 4.0 3.0 2.0 ... 3.0 2.0 …
Run Code Online (Sandbox Code Playgroud)

python weighted statsmodels logistic-regression

9
推荐指数
1
解决办法
8797
查看次数

FutureWarning:statsmodels.tsa.arima_model.ARMA 和 statsmodels.tsa.arima_model.ARIMA 已弃用

使用 ARMA 拟合模型时:

from statsmodels.tsa.arima_model import ARMA
Run Code Online (Sandbox Code Playgroud)

我的控制台中收到警告:

C:\Users\lfc\anaconda3\lib\site-packages\statsmodels\tsa\arima_model.py:472: FutureWarning: 
statsmodels.tsa.arima_model.ARMA and statsmodels.tsa.arima_model.ARIMA have been deprecated in favor of statsmodels.tsa.arima.model.ARIMA (note the . between arima and model) and statsmodels.tsa.SARIMAX. These will be removed after the 0.12 release.

statsmodels.tsa.arima.model.ARIMA makes use of the statespace framework and
is both well tested and maintained.

To silence this warning and continue using ARMA and ARIMA until they are
removed, use:

import warnings
warnings.filterwarnings('ignore', 'statsmodels.tsa.arima_model.ARMA',
                        FutureWarning)
warnings.filterwarnings('ignore', 'statsmodels.tsa.arima_model.ARIMA',
                        FutureWarning)

warnings.warn(ARIMA_DEPRECATION_WARN, FutureWarning)
Run Code Online (Sandbox Code Playgroud)

如何放弃警告?

python time-series statsmodels

9
推荐指数
3
解决办法
5万
查看次数