【问题标题】:Multiple linear regression python多元线性回归python
【发布时间】:2013-07-17 16:02:53
【问题描述】:

我使用多元线性回归,我有一个因变量(var)和几个自变量(varM1, varM2,...) 我在 python 中使用这段代码:

z=array([varM1, varM2, varM3],int32)
n=max(shape(var))
X = vstack([np.ones(n), z]).T
a = np.linalg.lstsq(X, var)[0]

如何使用 python 计算每个变量的 R 平方变化?如果我添加或删除预测变量,我想看看回归如何变化。

【问题讨论】:

  • var 变量是什么?
  • 它是因变量。就我而言,这是一种专注

标签: python numpy linear-regression


【解决方案1】:

如果沿途广播是正确的,下面应该给你相关系数R

R = np.sqrt( ((var - X.dot(a))**2).sum() )

多变量回归的一个完整示例:

import numpy as np

x1 = np.array([1,2,3,4,5,6])
x2 = np.array([1,1.5,2,2.5,3.5,6])
x3 = np.array([6,5,4,3,2,1])
y = np.random.random(6)

nvar = 3
one = np.ones(x1.shape)
A = np.vstack((x1,one,x2,one,x3,one)).T.reshape(nvar,x1.shape[0],2)

for i,Ai in enumerate(A):
    a = np.linalg.lstsq(Ai,y)[0]
    R = np.sqrt( ((y - Ai.dot(a))**2).sum() )
    print R

【讨论】:

  • 没有这种可变形状,所以这个实现没有运行。
  • @rjurney 它确实运行。 shape 其实不是变量而是ndarray 对象的一个​​属性...检查你是否有这样的对象...
  • shape 告诉你数组的大小
猜你喜欢
  • 2016-10-15
  • 1970-01-01
  • 2010-11-23
  • 2014-05-20
  • 1970-01-01
  • 2020-03-14
  • 2020-10-04
  • 2013-07-14
  • 2017-06-21
相关资源
最近更新 更多