多元線性回歸的基本原理和基本計算過程與一元線性回歸相同,但由於自變數個數多,計算相當麻煩,一般在實際中應用時都要借助統計軟體。介紹多元線性回歸的一些基本問題。但由於各個自變數的單位可能不一樣,比如說乙個消費水平的關係式中,工資水平、受教育程度、職業、地區、家庭負擔等等因素都會影響到消費水平,而這些影響因素(自變數)的單位顯然是不同的,因此自變數前係數的大小並不能說明該因素的重要程度,更簡單地來說,同樣工資收入,如果用元為單位就比用百元為單位所得的回歸係數要小,但是工資水平對消費的影響程度並沒有變,所以得想辦法將各個自變數化到統一的單位上來。前面學到的標準分就有這個功能,具體到這裡來說,就是將所有變數包括因變數都先轉化為標準分,再進行線性回歸,此時得到的回歸係數就能反映對應自變數的重要程度。這時的回歸方程稱為標準回歸方程,回歸係數稱為標準回歸係數,表示如下:
zy= β1z*1 + β2z*2 + … + βkz*k
多元線性方程,一般採用矩陣來表示,因此在求多元線性方程的最小化函式時,就需要對矩陣進行求導,這個求導過程,ng已經給出了,如下:
最終求出來的公式如下:
這個公式也叫正規方程,它需要求解矩陣,所以資料比較多時,就比較慢。下面來給出乙個計算簡單線性回歸的矩陣求法,假如資料:
(1,6), (2,5),(3,7)和(4, 10)
計算**如下:
import numpy as np
import matplotlib.pyplot as plt
input = np.array([
[1, 6],
[2, 5],
[3, 7],
[4, 10]
])m = len(input)
x = np.array([np.ones(m), input[:, 0]]).t
y = np.array(input[:, 1]).reshape(-1, 1)
betahat = np.linalg.inv(x.t.dot(x)).dot(x.t).dot(y)
print(betahat)
plt.figure(1)
xx = np.linspace(0, 5, 2)
yy = np.array(betahat[0] + betahat[1] * xx)
plt.plot(xx, yy.t, color='b')
plt.scatter(input[:, 0], input[:, 1], color='r')
plt.show()
輸出結果:
可見矩陣計算方法比較快,不需要迭代,一步就可以計算出來。
多元線性回歸
from numpy import genfromtxt 用來讀取資料轉化為矩陣 from sklearn import linear model 含有回歸的模型 datapath r c users qaq desktop delivery dummy.csv 路徑 deliverydata ge...
多元線性回歸
比如有乙個住房 的資料集,可能會有多個不同的模型用於擬合,選擇之一像是這種二次模型 0 1x 2x2,因為直線並不能很好的擬合這些資料。但是現在如果用二次函式去考慮,可能會想到二次函式在最高點之後會下降,但是 並不會下降,並不合理,那我們可以用 0 1x 2x2 3x3這樣的三次模型。如果像這樣選擇...
多元線性回歸
設 n為特徵數量,m為樣本數量,x i 為向量,就是乙個樣本的所有特徵 現在我們的特徵數量變多了,式自然也改變了 變為 則 唯度都為n 1 那麼 公式就為 代價函式為 我們約定x 0 1,那麼當特徵數量 n 1 時,我們進行下面這個公式進行梯度下降,直到收斂 但是這樣有的時候我們會遇到麻煩,在特徵的...