- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
使用 Pandas OLS,我可以按如下方式拟合和使用模型:
ols_test = pd.ols(y=merged2[:-1].Units, x=merged2[:-1].lastqu) #to exclude current year, then do forecast method
yrahead=(ols_test.beta['x'] * merged2.lastqu[-1:]) + ols_test.beta['intercept']
我需要切换到 statsmodels 以获得一些额外的功能(主要是残差图见(question here)
所以现在我有:
def fit_line2(x, y):
X = sm.add_constant(x, prepend=True) #Add a column of ones to allow the calculation of the intercept
model = sm.OLS(y, X,missing='drop').fit()
"""Return slope, intercept of best fit line."""
X = sm.add_constant(x)
return model
和:
model=fit_line2(merged2[:-1].lastqu,merged2[:-1].Units)
print fit.summary()
但是我无法获取
yrahead2=model.predict(merged2.lastqu[-1:])
或任何变体给我一个预测?请注意,pd.ols 使用相同的 merged2.lastqu[-1:] 来获取我想要“预测”的数据,无论我将什么放入 () 进行预测我都没有任何乐趣。看来statsmodels 想要 () 中的特定内容,而不是 pandas DF 单元格,我什至尝试只在其中输入一个数字,例如 2696,但仍然没有...我目前的错误是
----> 3 yrahead2=model.predict(merged2.lastqu[-1:])
/usr/lib/pymodules/python2.7/statsmodels/base/model.pyc in predict(self, exog, transform, *args, **kwargs)
1004 exog = np.atleast_2d(exog) # needed in count model shape[1]
1005
-> 1006 return self.model.predict(self.params, exog, *args, **kwargs)
1007
1008
/usr/lib/pymodules/python2.7/statsmodels/regression/linear_model.pyc in predict(self, params, exog)
253 if exog is None:
254 exog = self.exog
--> 255 return np.dot(exog, params)
256
257 class GLS(RegressionModel):
ValueError: objects are not aligned
> /usr/lib/pymodules/python2.7/statsmodels/regression/linear_model.py(255)predict()
254 exog = self.exog
--> 255 return np.dot(exog, params)
256
最佳答案
我更喜欢统计模型的公式 api。至少为此,model.fit().predict
需要一个列与预测变量同名的 DataFrame。这是一个例子:
In [2]: df = pd.DataFrame({'X': np.arange(10), 'Y': np.arange(10) + np.random.randn(10)})
In [3]: mod = sm.OLS.from_formula("Y ~ X", df)
In [4]: res = mod.fit()
In [5]: exog = pd.DataFrame({"X": np.linspace(0, 10, 100)})
In [6]: res.predict(exog)
Out[6]:
array([ 0.99817045, 1.07854804, 1.15892563, 1.23930322, 1.31968081,
1.40005839, 1.48043598, 1.56081357, 1.64119116, 1.72156875,
1.80194634, 1.88232393, 1.96270152, 2.04307911, 2.1234567 ,
2.20383429, 2.28421188, 2.36458947, 2.44496706, 2.52534465,
2.60572224, 2.68609983, 2.76647742, 2.84685501, 2.92723259,
3.00761018, 3.08798777, 3.16836536, 3.24874295, 3.32912054,
3.40949813, 3.48987572, 3.57025331, 3.6506309 , 3.73100849,
3.81138608, 3.89176367, 3.97214126, 4.05251885, 4.13289644,
4.21327403, 4.29365162, 4.3740292 , 4.45440679, 4.53478438,
4.61516197, 4.69553956, 4.77591715, 4.85629474, 4.93667233,
5.01704992, 5.09742751, 5.1778051 , 5.25818269, 5.33856028,
5.41893787, 5.49931546, 5.57969305, 5.66007064, 5.74044823,
5.82082582, 5.9012034 , 5.98158099, 6.06195858, 6.14233617,
6.22271376, 6.30309135, 6.38346894, 6.46384653, 6.54422412,
6.62460171, 6.7049793 , 6.78535689, 6.86573448, 6.94611207,
7.02648966, 7.10686725, 7.18724484, 7.26762243, 7.34800002,
7.4283776 , 7.50875519, 7.58913278, 7.66951037, 7.74988796,
7.83026555, 7.91064314, 7.99102073, 8.07139832, 8.15177591,
8.2321535 , 8.31253109, 8.39290868, 8.47328627, 8.55366386,
8.63404145, 8.71441904, 8.79479663, 8.87517421, 8.9555518 ])
关于python - Pandas Statsmodels 使用 DF 预测器进行回归预测?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21319255/
努力理解标题中 5 个示例之间的区别。系列与数据框有一些用例吗?什么时候应该使用一个而不是另一个?哪些是等价的? 最佳答案 df[x] — 使用变量 x 索引列。返回 pd.Series df[[x]
在使用Jupyter Notebook时,我必须为问题标题中提到的df.info()、df.head()等单独留出空格. 有没有办法像第二张图片那样把所有这些都放在一个 block 中,并显示所有信息
我想求三列之和,我采取的方法如下: In [14]: a_pd = pd.DataFrame({'a': np.arange(3), 'b': [5, 7,
我想我们大多数人已经使用过这样的东西(至少如果你正在使用 tidyverse): library(tidyverse) example % select(- mpg) 我的问题: 我知道这部分有一
我有一个 DF,里面有大约 20,000 行。我构建了一个 Python 脚本来对这些数据(包括数据透视表)运行大量清理和数学运算。 我想将此 DF 拆分为 3 个独立的 DF,然后根据列值将这 3
我什至不知道如何表达这一点,但在 Python 中有没有一种方法可以引用等号之前的文本,而无需实际再次编写? ** 编辑 - 我在 Jupyter 中使用 python3 我似乎用了半辈子的时间来写作
在 df1 中,每个单元格值都是我想要从 df2 中获取的行的索引。 我想获取 df2 trial_ms 列中行的信息,然后根据获取的 df2 列重命名 df1 中的列。 可重现的 DF: # df1
我想转换此表 0 thg John 3.0 1 thg James 4.0 2 mol NaN 5.0 3 mol NaN NaN 4
我有一个数据框,我想从中提取 val 中的值大于 15 以及 val 不是 NA: df[ !is.na(df$val) & df$val > 15, ] 由于我假设在 R 中经常需要这样的比较,所
鉴于 coming deprecation of df.ix[...] 如何替换这段代码中的 .ix? df_1 = df.ix[:, :datetime.time(16, 50)] d
任何我可以帮助我说出 Pandas 中这两个语句之间的区别-python df.where(df['colname'] == value) 和 df[(df['colname'] == value)]
考虑 df Index A B C 0 20161001 0 24.5 1 20161001 3 26.5 2
所以我需要按“fh_status”列对行进行分组,然后对每个组执行“gini”的最小值、平均值和最大值(将有三个)。我想出了这段代码: m = (df2.groupby(['fh_status']).
我尝试计算不同公司/股票的一些 KPI。我的股票信息位于 df 中,具有以下结构 Ticker Open High Low Ad
我有一个看起来像这样的 df: gene ID Probe ID Chromosome Start Stop 1: H3F3A 539154271
nn_idx_df 包含与 xyz_df 的索引匹配的索引值。如何从 xyz_df 中的 H 列获取值并在 nn_idx_df 中创建新列以匹配 output_df 中所示的结果。我可以解决这个问题,
我目前的 DF 看起来像这样 Combinations Count 1 ('IDLY', 'VADA') 3734 6 ('DOSA', 'IDLY')
我看到了几个与此相关的问题,但我发现这些技巧都不起作用。 我正在尝试根据第二个数据帧的值填充数据帧的所有 NaN 值。第一个 df 很大,第二个 df 将充当某种键。 DF1 Par
我有两个数据帧,df1 和 df2。每个数据帧的唯一标识符是“ID”和“Prop_Number”。我需要将 df1 中的 Num1、2 和 3 列复制到 df2、1_Num 中的相应列...但我不确定
我有以下数据框: 注意:日期是索引 city morning afternoon evening midnight date 2014-05-01 Y
我是一名优秀的程序员,十分优秀!