我在http://rosettacode.org/wiki/Multiple_regression#Python上找到了這段代碼,它在python中進行了多重線性迴歸。在下面的代碼中打印b給出了x1,...,xN的係數。但是,此代碼適合通過原點的直線(即生成的模型不包含常數)。python中的多線性迴歸沒有擬合原點?
所有我想要做的是完全相同的事情,除了我不想通過原點擬合線,我需要在我的最終模型中的常量。
任何想法,如果這是做一個小修改?我已經搜索並找到了大量有關Python中多個迴歸的文檔,除非它們冗長,並且對於我所需要的過於複雜。此代碼完美無缺,除非我只需要一個適合通過攔截而非原點的模型。
import numpy as np
from numpy.random import random
n=100
k=10
y = np.mat(random((1,n)))
X = np.mat(random((k,n)))
b = y * X.T * np.linalg.inv(X*X.T)
print(b)
任何幫助,將不勝感激。謝謝。
你能否詳細說明一下? –
把你的觀察矩陣(右邊的變量,其中第一列用於第一個變量,第二列用於第二個等),並且在所有列的前面加上一列,例如'numpy.ones(N)', N'是迴歸中的觀測值數量。那麼全1列的係數將是截距項。 – ely
謝謝,這工作完美。 –