【问题标题】:How to predict using a multivariate regression function that is the sum of other regression functions如何使用作为其他回归函数之和的多元回归函数进行预测
【发布时间】:2014-06-07 23:23:09
【问题描述】:

我正在使用加权最小二乘法在 python 中进行多元回归。 我有一个 10x4 的数据集,换句话说,对于数据中的每个样本,都有 4 个特征。

如果我的数据集是X,我可以做以下得到回归函数的系数:

import numpy as np
import statsmodels.api as sm
from statsmodels.sandbox.regression.predstd import wls_prediction_std

mod_wls = sm.WLS(y, X)
res_wls = mod_wls.fit()
print res_wls.params

对于我的特定 10x4 数据集,这给了我以下输出:

[ 0.06210193  5.24256099  0.15214974  0.12325115]

但是,有人告诉我,我需要通过迭代 X 中的每个 x[i] 并总结不同的回归函数来构建一个回归函数 g(X)

我在 猜测(但如果我理解错误,希望得到纠正),我猜这意味着 g(x) = g(x1) + g(x2) + g(x3) + ... + g(x10)

例如。假设第一行数据的函数给出了以下系数:

[ 0.11  1.22  0.33  0.88]

第二行数据我得到

[ 1.22  0.55  0.44  0.11]

所以经过两次迭代,我的g(x) 应该给出以下系数:

[ 1.33  1.77  0.77  0.99]

因为对于第一个系数,0.11 + 1.22 = 1.33,依此类推。 以此类推,直到第十个数据样本。

现在我的问题是 - 如何在 scikit-learn 中添加回归函数?

遍历每个样本,获取系数并将它们单独相加 - 这是唯一的方法吗?

假设我已经获得了最终系数,我现在如何使用这些最终系数声明回归模型,以便我可以将数据传递给它以预测值?

【问题讨论】:

  • x[i]单个数据点,即有10个,还是有很多10x4矩阵。我不明白你为什么要单独为每个样本拟合一个模型,将它与你的所有点一起拟合似乎更明智。此外,为什么您的参数大小为 3 而不是 4(或 5 带截距)?
  • X 是一个数据集,它是一个 10x4 矩阵。有十行,每行是 x[i],每行有 4 列。所以 x[0] 将是第一行,并将返回一个包含四个值的数组。 x[0][1] 将返回第一行和第二列中的值。抱歉,我在 3 个参数上犯了一个错误,我已经编辑了问题,应该有四个。我正在将模型单独拟合到每个样本,因为我在这个算法的第 2(a)(iii) 步:i.stack.imgur.com/d5C6P.png
  • 如果这只是一个标准的多元回归,那么您可以使用res_wls.predict(x) 来获得您的预测。 (在常用的术语中,多元回归也有几个因变量,y 变量。)
  • 谢谢 - 但在此之前,我对回归函数的总结是否正确?如果是这样,那么首先如何总结这些功能?据我了解,我可以在现有回归模型上使用 predict 。但是,如果我没有使用 fit() 创建的最终回归函数,而是从先前回归函数的所有系数的总和中获取最终函数的系数,那么如何强制求和系数成为一个新的回归函数,然后我可以在其上使用 predict()

标签: python numpy regression statsmodels


【解决方案1】:

我认为您的意思是从加权最小二乘方程开发的拟合方程中得到预测。

在这种情况下,g(X1,X2,X3,X4) = 0.06210193*X1 + 5.24256099*X2 + 0.15214974*X3 + 0.12325115*X4

因此,对于数据集中的第一行:[0.11 1.22 0.33 0.88] g(0.11,1.22,0.33,0.88) = 0.06210193*0.11 + 5.24256099*1.22 + 0.15214974*0.33 + 0.12325115*0.88

g(0.11,1.22,0.33,0.88) = 6.561426046

如果您想了解有关多元回归的更多信息,可以在这里找到:https://stats.stackexchange.com/questions/tagged/multiple-regression

【讨论】:

    猜你喜欢
    • 2015-07-11
    • 1970-01-01
    • 2019-08-08
    • 2021-06-29
    • 2015-06-21
    • 1970-01-01
    • 2016-09-20
    • 2021-07-18
    • 1970-01-01
    相关资源
    最近更新 更多