Python-Statsmodels-不同的输入类型导致不同的输出类型?

我当时使用Statsmodel训练一些时间序列模型,结果发现某些输出的数据类型将根据输入类型而有所不同,而我期望输出的类型与输入类型无关。

我的问题是,这在statsmodels(以及其他软件包,例如sklearn)中是否正常?如果没有,处理这种情况的正常/标准/惯例方式是什么?

下面有一个例子。如果我使用pandas.Series作为输入,那么statsmodels的输出bse将是pandas.Series。如果输入为list,则输出为np.array

from statsmodels.tsa.arima_model import ARIMA

x1 = pd.Series([1.5302615469999998,1.130221162,1.059648341,1.246757738,0.98096523,1.173285138,1.630229825,1.6447988169999999,1.753422,1.7624994719999998,1.60655743,1.7999185709999999,1.7284643419999999,1.74167109,1.606315199,1.510957898,1.38138611,1.4421003190000001,1.172060761,0.978149498,0.878831354,0.802660206])

x2 = [s for s in x1]

model1 = ARIMA(x1,order=(1,1,0))
model2 = ARIMA(x2,0))

model_fit1 = model1.fit(disp=False)
model_fit2 = model2.fit(disp=False)

model_fit1.bse #outputs pandas series
model_fit2.bse #outputs numpy array
countmachine 回答:Python-Statsmodels-不同的输入类型导致不同的输出类型?

这对于所有或大多数模型以及statsmodels中的许多函数都是正确的。这是熊猫支持的一部分。

Pandas Series或DataFrames提供索引和其他信息,例如设计矩阵的列名,并且模型和许多函数尝试保留它并返回具有适当索引的Series或DataFrame。

如果可能的话,任何其他类型都将转换为numpy数组(np.asarray),这些数据结构具有的任何其他信息都将被忽略。

因此,规则是,如果用户使用熊猫,则代码假定用户希望返回匹配的熊猫数据结构。 可以将其扩展到除大熊猫以外的其他数据结构,但是目前尚无计划支持其他软件包中的数据结构。

本文链接:https://www.f2er.com/2617153.html

大家都在问