R語言——QR分解的幾個式子

看不懂啊看不懂,一碰到某些問題,我覺著自己的線性代數就算再回爐重造個八百遍都不一定有用

R語言——QR分解的幾個式子

做線性迴歸過程中碰到了一個很超出我理解能力的東西,QR分解

按照從別處看來的概念來說,它的主要作用是把一個矩陣分解成一個正交矩陣外乘一個上三角矩陣

舉個例子:

Data

R語言——QR分解的幾個式子

為啥特地用lm而不直接用qr函數呢?是因為線性迴歸過程並沒有直接使用x&y的組合,當咱用qr.X把這個QR分解還原到源數據時,可以看到,它其實增加了一個全部為1的Intercept列

R語言——QR分解的幾個式子

而分解出來的結果可以用qr.Q和qr.R來查看,其中Q是正交矩陣,R是上三角矩陣

#正交矩陣,其轉置和本身外乘得單位矩陣I

Q1

R語言——QR分解的幾個式子

#上三角矩陣(即主對角線下方為0)

R1

R語言——QR分解的幾個式子

分解前數據為Q和R外乘

R語言——QR分解的幾個式子

那這樣一個分解,到底能幫上線性迴歸什麼忙呢?私以為,是因為這樣比較方便求逆矩陣

記得在挺久挺久之前,我在Excel篇收尾的時候曾經試過一個用向量化計算線性迴歸係數的公式:

R語言——QR分解的幾個式子

按這個公式的邏輯,一步步操作下來:

XX

solve(XX) %*% t(X1) %*% Data$y

coef(lm(y~x, Data))

R語言——QR分解的幾個式子

嗯,能對的上,而係數coef一出來,後邊計算別的什麼就都方便了

R語言——QR分解的幾個式子

我大概也就能理解到這裡了吧


分享到:


相關文章: