如何使用多个回归函数之和的多元回归函数进行预测

4 投票
1 回答
1418 浏览
提问于 2025-04-18 03:53

我正在用Python做多元回归,使用的是加权最小二乘法。我有一个10行4列的数据集,也就是说,每个样本有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[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中,回归函数是怎么加起来的?

逐个遍历每个样本,抓取系数并逐个相加,这就是唯一的方法吗?

假设我得到了最终的系数,我现在该如何用这些最终的系数来声明一个回归模型,以便我可以传入数据来预测值呢?

1 个回答

0

我想你是想从通过加权最小二乘法得到的方程中获取预测值。

在这种情况下,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

撰写回答