Let me think... 咱們何時學過相關係數(Correlation)一個詞語。對了,就是驗證模型好壞的R方里面的R。在R語言裏調用也很簡單:網絡
cor(x, y)
可是,該如何理解相關係數呢?是否相關係數能夠驗證OLS模型的好壞呢?這是本篇博文所要探討的事。spa
咱們定義相關係數R爲:.net
$$R = \frac{E(XY)-E(X)E(Y)}{\sqrt{[E(X^2) - E^2(X)][E(Y^2) - E^2(Y)]}}$$3d
咱們看,這個相關係數到底表明着什麼。code
顯然,咱們能夠轉化以上的相關係數爲:blog
$$R = \frac{\frac{(x - \bar{x})}{N}}{\sigma^2_x}·\frac{\frac{(y - \bar{y})}{N}}{\sigma^2_y}$$圖片
這種方式理解的相關係數,實際上是全部點與
$$(\bar{x}, \bar{y})$$
之間的距離標準化後的值。換句話說,R方式衡量到數據中心點的距離的一個標準。ip
咱們首先回到協方差(Covariance)的定義中來。協方差的定義爲,ci
$$cov(x, y) = E[(x - \bar{x})(y - \bar{y})]$$get
這個定義是從方差(Variance,試比較二者英文間的差距)的概念來的
$$var(x) = E[(x - \bar{x})(x - \bar{x})]$$
方差是描述一維數據的疏散程度,所以,協方差則是描述二維數據的疏散程度。這是理解協方差的一種手段。
另外一種手段是以白數據(數據只是在各個方向上符合高斯分佈)的線性變換:
圖片引用自會敲鍵盤的猩猩的博客
然後,顯然,
$$R = \frac{cov(x, y)}{\sigma^2_x\sigma^2_y}$$
顯然,這就是將協方差矩陣作了一次調整,使得對角線(不是反對角線)上的數據爲1。這也就說明取消了協方差在自身變異上影響,此外,數值也被嚴格限定在了-1~1之間。
用一樣地方法,咱們也能夠作出變異係數(coefficient of variation,cv)的概念:
$$cv(x) = \frac{\sigma}{\mu}$$
這個概念相似。是標準差去量綱的結果,經過這種處理,使得咱們很容易兩組數據的疏散程度,而不用考慮到自己數據的影響,由於cv自己是去量綱並嚴格限制在-1 ~ 1之間的度量。
提示:試經過協方差引伸到PCA方法。
這裏直接使用的理解方式就是咱們通常意義上的R方。
$$R^2 = 1 - \frac{\sum{(Y - \hat{Y})^2}}{\sum{(Y - \bar{Y})^2}}= 1 - \frac{SSE}{SSTO}$$
咱們把上式中的SSTO稱爲整體方差,SSE稱爲模型偏差。
所以咱們看出
$$SSTO - SSE$$
是衡量模型好壞的方式:若是這個值很大,說明模型偏差對整體方差的貢獻較低;相反,貢獻較高。而爲了歸一化這個值,最簡單地方法就是除以SSTO使得度量值在0~1之間。
另外一個準確地描述是,R方描述的是因變量的方差有多少比例經過自變量模型所解釋。
這就是相關係數的平方爲何能衡量模型好壞的緣由。
高的R方不必定表明模型的預測能力強。R方沒法考慮過擬合。
R方並不能保證擬合效果。緣由是咱們能夠看出,R方基於的假設實際上是一個二維的高斯分佈,或者說,R方只能預測某種線性趨勢。若是遇到明顯的非線性關係,顯然R方是無效的。
咱們稱以前描述的相關係數爲Pearson相關係數。咱們看到了Pearson相關係數的種種侷限,所以,爲了不相關係數沒法解釋非線性關係這個問題,其餘種的相關係數也被髮明出來。在此介紹兩種常見的替代方案:Kendall Tau相關係數和Spearman相關係數。這兩種係數的特色是,其實都是基於順序的相關係數。
Kendall Tau相關係數的原理至關簡單,假設就是:
i) 若是x和y有同增的關係,則對於任何$$(x_i, y_i), (x_j, y_i)$$,若是$$x_i < x_j$$,則$$y_i < y_j$$
ii) 相反,若是x和y有同減的關係,則若是$$x_i < x_j$$,則$$y_i > y_j$$
所以咱們能夠檢查全部點對(Point Pairs,即兩個二維點),計算二維數據裏面符合條件i)的點對(一致點對,concordant point pairs)對數目和ii)的點對(不一致點對,discordant point pairs)數目,若是這兩個值的差值來描述關係。顯然若是兩種狀況的點數目大體至關,說明兩個維度關係至關「混亂」。
此外,咱們要講這個值歸一化,簡單地,除以點對的總數目便可,顯然點對個數爲,
$${n \choose 2} = \frac{(n-1)n}{2}$$
所以,最後計算的kendall tau相關係數爲:
$$\tau = \frac{\#concordant - \#discordant}{n(n - 1)/2}$$
固然,咱們基於這個假設,能夠很容易看出,
kendall tau相關係數的使用場景比較多,由於kendall tau不依賴於線性假說。
kendall tau相關係數描述的兩組數的單調性特徵,任何一種單調的關係均可以採用kendall tau來實現。
Spearman相關係數與Pearson相關係數很相似,只是最後計算的是兩個變量轉化爲序數(Rank)的操做。能夠參考下面的轉換:
咱們用rg(x)表示x的序數變換,d爲序數之差,所以:
$$cor_{spearman}(x, y) = \frac{cov(rg(x), rg(y))}{\sigma^2_{rg(x)}\sigma^2_{rg(y)}} = 1 - \frac{6d_i^2}{n(n^2 - 1)}$$
Spearman相關係數的優勢是顯然的:
當數據具備非線性相關時,Spearman相關係數敏感度比Pearson要好
當沒有outliers時,Spearman和Pearson結果相似
當有outliers時,Spearman比較穩健
咱們在此討論相關係數的其餘應用。
相關係數描述的是因變量與自變量的關係這個直接能夠做爲篩選特徵的一個標準。
自變量與自變量的Pearson相關係數很強也每每意味着共線性,這提示PCA降維的效果會很是好。
咱們回到相關係數的性質,相關係數描述的是兩個自變量之間的關係是否緊密,其實必定程度就是描述類似性,即兩個向量的類似性。
這提示,相關係數能夠做爲類似度(Similarity)用來建構協同過濾的推薦系統。這種方案也被叫作Pearson類似度。咱們能夠以此來比較Pearson類似度和餘弦類似度是相似模式,Pearson類似度是去中心化的餘弦類似度:
$$Sim_{cosine} = \frac{\lt x, y\gt}{||x||·||y||}$$
$$Sim_{pearson} = \frac{\lt (x - \bar{x}), (y - \bar{y})\gt}{||(x - \bar{x})||·||y - \bar{y})||}$$
首先,咱們要有一個敏感度,任何類似度均可以做爲距離的度量。而事實上,咱們常常用(1 - 歸一化後的類似度)來表示距離。
而,距離對咱們來講意味着什麼?距離意味着全部依賴距離的方法均可以運用到相關係數。
KMeans聚類是一個常見地基於距離假設的模型。能夠構想的例子是,在作用戶分類的時候,能夠把他們購買某一些商品(每每具備一類特徵的商品)的矩陣轉化爲一個相關係數的特徵,從而得到具備解釋性的模型。
網絡分析是另外一個典型的基於距離的門類,所以,基於全部用戶之間的距離(值得注意的是,相關係數造成的網絡頗有多是個全鏈接的網絡)能夠完成全部網絡分析技術(節點的中心特徵,社羣特徵等)。