天天看點

python多變量相關性分析_多變量相關性分析(一個因變量與多個自變量)

目錄:前言

偏相關或複相關

意義與用途

分析方法:

1、 樣本相關系數矩陣、相關系數檢驗

2、 複相關分析

3、 決定系數

python多變量相關性分析_多變量相關性分析(一個因變量與多個自變量)

(RMSE的介紹)

小結

一、前言:

繼上一篇文章,繼續探讨相關性分析,這次不再是兩個變量,而是3個或者以上的變量之間的相關關系分析。

沒讀過上篇文章請先仔細閱讀再過來,因為多變量本質上是基于雙變量的TzeSing Kong:相關性分析(兩變量)​zhuanlan.zhihu.com

python多變量相關性分析_多變量相關性分析(一個因變量與多個自變量)

二、偏相關或複相關

簡單相關:研究兩變量之間的關系

偏相關或複相關:研究三個或者以上變量與的關系

在這裡仍然是選擇最簡單的線性相關來解釋:

三、意義與用途:

有些情況下,我們隻想了解兩個變量之間是否有線性相關關系,并不想拟合建立它們的回歸模型,也不需要區分自變量和因變量,這時可用相關性分析。

四、分析方法:

1、樣本相關陣

python多變量相關性分析_多變量相關性分析(一個因變量與多個自變量)

來自正态總體

python多變量相關性分析_多變量相關性分析(一個因變量與多個自變量)

容量為

python多變量相關性分析_多變量相關性分析(一個因變量與多個自變量)

的樣本,其中每個樣本

python多變量相關性分析_多變量相關性分析(一個因變量與多個自變量)

python多變量相關性分析_多變量相關性分析(一個因變量與多個自變量)

個觀測

分别計算兩兩樣本之間的簡單相關系數

python多變量相關性分析_多變量相關性分析(一個因變量與多個自變量)

,它們構成的矩陣就是:

python多變量相關性分析_多變量相關性分析(一個因變量與多個自變量)

由于每個變量跟自己的相關系數就是

python多變量相關性分析_多變量相關性分析(一個因變量與多個自變量)

,即:

python多變量相關性分析_多變量相關性分析(一個因變量與多個自變量)

其中,

python多變量相關性分析_多變量相關性分析(一個因變量與多個自變量)

就是兩個變量的簡單相關系數。

python多變量相關性分析_多變量相關性分析(一個因變量與多個自變量)

例子:

python多變量相關性分析_多變量相關性分析(一個因變量與多個自變量)

> X <- read.table("clipboard", header = T)

> cor(X) # 相關系數矩陣

y x1 x2 x3 x4

y 1.0000000 0.9871498 0.9994718 0.9912053 0.6956619

x1 0.9871498 1.0000000 0.9907018 0.9867664 0.7818066

x2 0.9994718 0.9907018 1.0000000 0.9917094 0.7154297

x3 0.9912053 0.9867664 0.9917094 1.0000000 0.7073820

x4 0.6956619 0.7818066 0.7154297 0.7073820 1.0000000

再看看矩陣散點圖:

> pairs(X, ...) # 多中繼資料散點圖

python多變量相關性分析_多變量相關性分析(一個因變量與多個自變量)

相關系數檢驗:

> install.package('psych') # 先安裝一個'psych'的包

> library(psych)

> corr.test(X)

Call:corr.test(x = yX)

Correlation matrix

y x1 x2 x3 x4

y 1.00 0.99 1.00 0.99 0.70

x1 0.99 1.00 0.99 0.99 0.78

x2 1.00 0.99 1.00 0.99 0.72

x3 0.99 0.99 0.99 1.00 0.71

x4 0.70 0.78 0.72 0.71 1.00

Sample Size

[1] 31

Probability values (Entries above the diagonal are adjusted for multiple tests.)

y x1 x2 x3 x4

y 0 0 0 0 0

x1 0 0 0 0 0

x2 0 0 0 0 0

x3 0 0 0 0 0

x4 0 0 0 0 0

To see confidence intervals of the correlations, print with the short=FALSE option

上面矩陣是相關系數的

python多變量相關性分析_多變量相關性分析(一個因變量與多個自變量)

值矩陣,下面矩陣是

python多變量相關性分析_多變量相關性分析(一個因變量與多個自變量)

值矩陣

可以看出

python多變量相關性分析_多變量相關性分析(一個因變量與多個自變量)

python多變量相關性分析_多變量相關性分析(一個因變量與多個自變量)

的關系都十分密切

相關系數

python多變量相關性分析_多變量相關性分析(一個因變量與多個自變量)

且置信度

python多變量相關性分析_多變量相關性分析(一個因變量與多個自變量)

2、複相關分析

實際分析中,一個變量(

python多變量相關性分析_多變量相關性分析(一個因變量與多個自變量)

)往往要受到多種變量(

python多變量相關性分析_多變量相關性分析(一個因變量與多個自變量)

)的綜合影響,

所謂複相關,就是研究多個變量同時與某個變量的相關關系,

度量複相關程度的名額是複相關系數

多個變量同時與某個變量的相關關系不能直接測算,隻能通過間接測算

複相關系數的計算:

設因變量

python多變量相關性分析_多變量相關性分析(一個因變量與多個自變量)

,自變量為

python多變量相關性分析_多變量相關性分析(一個因變量與多個自變量)

,構造一個線性模型為:

python多變量相關性分析_多變量相關性分析(一個因變量與多個自變量)
python多變量相關性分析_多變量相關性分析(一個因變量與多個自變量)

python多變量相關性分析_多變量相關性分析(一個因變量與多個自變量)

python多變量相關性分析_多變量相關性分析(一個因變量與多個自變量)

作相關分析,就是對

python多變量相關性分析_多變量相關性分析(一個因變量與多個自變量)

python多變量相關性分析_多變量相關性分析(一個因變量與多個自變量)

做簡單相關分析

記:

python多變量相關性分析_多變量相關性分析(一個因變量與多個自變量)

python多變量相關性分析_多變量相關性分析(一個因變量與多個自變量)

python多變量相關性分析_多變量相關性分析(一個因變量與多個自變量)

的複相關系數,

python多變量相關性分析_多變量相關性分析(一個因變量與多個自變量)

python多變量相關性分析_多變量相關性分析(一個因變量與多個自變量)

python多變量相關性分析_多變量相關性分析(一個因變量與多個自變量)

的簡單相關系數

python多變量相關性分析_多變量相關性分析(一個因變量與多個自變量)

的計算公式:

python多變量相關性分析_多變量相關性分析(一個因變量與多個自變量)

複相關系數常用于多元線性回歸分析中,我們希望知道因變量與一組自變量之間的相關程度,即複相關,複相關系數反映了一個變量與另一組變量的密切程度。

假設檢驗:

與多元回歸的方差分析一樣,是以我留在下篇文章闡述回歸分析與方差分析的時候會繼續詳細說明

綜上:

python多變量相關性分析_多變量相關性分析(一個因變量與多個自變量)

至于

python多變量相關性分析_多變量相關性分析(一個因變量與多個自變量)

python多變量相關性分析_多變量相關性分析(一個因變量與多個自變量)

還有

python多變量相關性分析_多變量相關性分析(一個因變量與多個自變量)

是什麼?

就由下篇文章闡述回歸分析的時候會詳細說明。TzeSing Kong:線性回歸——描述變量間預測關系最簡單的回歸模型​zhuanlan.zhihu.com

python多變量相關性分析_多變量相關性分析(一個因變量與多個自變量)

3、決定系數

python多變量相關性分析_多變量相關性分析(一個因變量與多個自變量)

(coefficient of determination)

在複相關系數中,根号裡面的比值

python多變量相關性分析_多變量相關性分析(一個因變量與多個自變量)

其實說明了回歸平方和與總離差平方和的比值,反應了回歸貢獻的百分比

把複相關系數兩邊平方一下就能得到決定系數

python多變量相關性分析_多變量相關性分析(一個因變量與多個自變量)

決定系數用于評價多元回歸方程、變量選擇、曲線回歸方程拟合的好壞程度中,常常用到。

【注意】

python多變量相關性分析_多變量相關性分析(一個因變量與多個自變量)

是相關性的度量,并不是準确性的度量!!!

python多變量相關性分析_多變量相關性分析(一個因變量與多個自變量)

依賴于

python多變量相關性分析_多變量相關性分析(一個因變量與多個自變量)

的波動程度(樣本方差),這會使得我們看待模型的好壞有着巨大影響,例如,假設測試集

python多變量相關性分析_多變量相關性分析(一個因變量與多個自變量)

的方差是

python多變量相關性分析_多變量相關性分析(一個因變量與多個自變量)

,如果一個模型的

python多變量相關性分析_多變量相關性分析(一個因變量與多個自變量)

python多變量相關性分析_多變量相關性分析(一個因變量與多個自變量)

大緻為

python多變量相關性分析_多變量相關性分析(一個因變量與多個自變量)

,但是另一個測試集

python多變量相關性分析_多變量相關性分析(一個因變量與多個自變量)

的方差是

python多變量相關性分析_多變量相關性分析(一個因變量與多個自變量)

(分母小了,

python多變量相關性分析_多變量相關性分析(一個因變量與多個自變量)

小了),

python多變量相關性分析_多變量相關性分析(一個因變量與多個自變量)

則變為

python多變量相關性分析_多變量相關性分析(一個因變量與多個自變量)

。變成了模型好壞取決于測試集的波動程度,是以這個十分不靠譜

不明白上面的話,可以再看一個例子,如果我們建立了一個模型預測廣州房價,如果測試集中廣州房屋售價的波動範圍較大——方差較大(40萬-幾千萬),因為方差大,是以很可能導緻

python多變量相關性分析_多變量相關性分析(一個因變量與多個自變量)

也比較大(假設

python多變量相關性分析_多變量相關性分析(一個因變量與多個自變量)

),但

python多變量相關性分析_多變量相關性分析(一個因變量與多個自變量)

可能十萬,這對于廣州房價預測來說是一個很糟糕的預測範圍。

具體用法,留在回歸分析中詳細闡述。TzeSing Kong:線性回歸——描述變量間預測關系最簡單的回歸模型​zhuanlan.zhihu.com

python多變量相關性分析_多變量相關性分析(一個因變量與多個自變量)

在 線性回歸 中的 3.4 決定系數

# 先建立多元線性回歸模型

> fm = lm(y~x1+x2+x3+x4,data = X)

計算多元線性回歸模型決定系數

> R2 = summary(fm)$r.sq

> R2

[1] 0.9997162

計算複相關系數

> R = sqrt(R2)

> R

[1] 0.9998581

【補】

什麼是RMSE?

RMSE是回歸問題的性能名額,衡量的是 預測值

python多變量相關性分析_多變量相關性分析(一個因變量與多個自變量)

與 真實值

python多變量相關性分析_多變量相關性分析(一個因變量與多個自變量)

間的差距

是測量預測誤差的标準差

python多變量相關性分析_多變量相關性分析(一個因變量與多個自變量)

舉例子:RMSE 等于 50000,根據【

python多變量相關性分析_多變量相關性分析(一個因變量與多個自變量)

準則】意味着:

大約 68% 的預測值位于真實值的 50000元(

python多變量相關性分析_多變量相關性分析(一個因變量與多個自變量)

)以内,

大約 95% 的預測值位于真實值的 100000元 (

python多變量相關性分析_多變量相關性分析(一個因變量與多個自變量)

)以内,

大約 99.7% 的預測值位于真實值的 150000元内 (

python多變量相關性分析_多變量相關性分析(一個因變量與多個自變量)

)以内

五、小結:

可以看出多變量相關分析跟回歸分析的關系很密切,多變量相關分析能為回歸分析服務,因為要具有相關性才有做線性回歸拟合的價值