【问题标题】:Multiple Linear Regression - Determining Coefficients for 3 independent variables多元线性回归 - 确定 3 个自变量的系数
【发布时间】:2019-05-02 21:46:11
【问题描述】:

我正在努力寻找 b1、b2 和 b3 的系数。我的模型有 3 个自变量 x1、x2 和 x3 以及一个因变量 y。

x1,x2,x3,y
89,4,3.84,7
66,1,3.19,5.4
78,3,3.78,6.6
111,6,3.89,7.4
44,1,3.57,4.8
77,3,3.57,6.4
80,3,3.03,7
66,2,3.51,5.6
109,5,3.54,7.3
76,3,3.25,6.4

我想用矩阵法找出 b1、b2 和 b3 的系数。在我遵循的教程中,b1 的值为 0.0141,b2 为 0.383,b3 为 -0.607。

我不确定如何实现上述值,当我尝试对包含 x1、x2、x3 值的矩阵求逆时,出现以下错误。

raise LinAlgError('Last 2 dimensions of the array must be square')
numpy.linalg.linalg.LinAlgError: Last 2 dimensions of the array must be square

请有人帮我解决这个矩阵,以便我可以获得所需的值。

【问题讨论】:

    标签: python python-3.x statistics regression linear-regression


    【解决方案1】:

    在矩阵形式中,回归系数由下式给出

    x 是您的预测变量数据矩阵,y 是结果值向量

    在 python (numpy) 中,看起来像这样:

    import numpy as np
    
    b = np.dot(x.T, x)
    b = np.linalg.inv(b)
    b = np.dot(b, x.T)
    b = np.dot(b, y)
    

    在您的数据上使用它,您会得到以下系数:

    0.0589514 , -0.25211869,  0.70097577
    

    这些值与您的预期输出不匹配,这是因为您所遵循的教程也必须对截距进行建模。为此,我们将一列 1 添加到数据矩阵中,如下所示:

    x.insert(loc=0, column='x0', value=np.ones(10))
    
        x0   x1  x2    x3
    0  1.0   89   4  3.84
    1  1.0   66   1  3.19
    2  1.0   78   3  3.78
    3  1.0  111   6  3.89
    4  1.0   44   1  3.57
    5  1.0   77   3  3.57
    6  1.0   80   3  3.03
    7  1.0   66   2  3.51
    8  1.0  109   5  3.54
    9  1.0   76   3  3.25
    

    现在我们得到预期的回归系数(加上截距的附加值):

    6.21137766,  0.01412189,  0.38315024, -0.60655271
    

    【讨论】:

      猜你喜欢
      • 2021-12-30
      • 2020-09-03
      • 1970-01-01
      • 1970-01-01
      • 2020-03-06
      • 2023-03-25
      • 1970-01-01
      • 1970-01-01
      • 2019-01-25
      相关资源
      最近更新 更多