天天看點

應用統計學與R語言實作學習筆記(十一)——判别分析Chapter 11 Discriminant Analysis

Chapter 11 Discriminant Analysis

筆者最近任務繁重,斷更了一頓時間,最近會開始慢慢把這個系列寫完。本篇是第十一章,内容是判别分析。 這篇部落格的完整内容包含各類數學表達。可以見我CSDN和hexo搭的個人部落格。 CSDN部落格

hexo的個人部落格

1 判别分析應用

判别分析(Discriminant Analysis)——判别分析的目的是對已知分類的資料建立由數值名額構成的分類規則,然後把這樣的規則應用到未知分類的樣本中去分類,以識别未知樣本所屬的類别。判别分析是多中繼資料分析的重要方法之一。通常解決被解釋變量是非數值變量,解釋變量是數值變量的情形。 事實上地學領域應用判别分析最多的是在哪裡呢?其實是遙感影像的地物分類,通常遙感導論中無論Erdas或者ENVI在做完監督分類之後,其實就是用标注的樣本去訓練判别函數,然後用判别函數完成整幅影像的判别分析,就可以分出不同的地物類型,這種方法就是我們最普遍使用的極大似然法。而這裡的被解釋變量就是地物類型,解釋變量(多元)就是遙感影像不同波段的DN值,或者是輻射率。

  • 聚類分析和判别分析差異 在聚類分析中,人們一般事先并不知道應該分成幾類及哪幾類,全根據資料确定。 在判别分析中,至少有一個已經明确知道類别的“訓練樣本”,并利用該樣本來建立判别準則,并通過預測變量來為未知類别的觀測值進行判别。 通常實際問題中,可以先聚類以得知類型,再進行判别。 用機器學習的話來說,聚類分析是非監督學習,判别分析屬于監督學習。 判别分析的資料結構 對比聚類分析的資料結構,事實上就是多了最後一列的Y。
  • 個體由x1,x2,……,xp變量描述。
  • 有分類變量Y明确對個體分類。
  • 問題:建立Y與x1,x2,……,xp變量間關系的函數。根據函數将新個體進行分類。

誤判率 誤判率的高低有下面兩個因素決定:

  • 主觀因素:分界線的位置要正确。
  • 客觀因素:均值,方差——通過選擇名額來控制:一般來說,次元高一點,可以使分辨率高一些,但在許多情況下,名額太多,不僅不能提高分辨率,還增加計算量(需要豐富的實際經驗和試算);在做判别分析前,要做假設檢驗。在兩個總體的均值有顯著差異的情況下,再做判别分析。

判别分析的假設

  • 每一個判别變量(解釋變量)不能是其他判别變量的線性組合——不符合該假設的話,無法估計判别函數,變量間高度相關或一變量與其他變量的線性組合高度相關時,參數估計的标準誤差将很大。
  • 判别變量之間具有多元正态分布——可精确的計算顯著性檢驗值和歸屬機率。
  • 如要采用線性判别函數,還要求各組協方差距陣相等——線性判别函數使用起來最友善、在實際中使用最廣。

2 判别分析方法

2.1 距離判别法

兩總體情況 距離常選用馬氏距離—— 馬氏距離的好處是可以克服變量之間的相關性幹擾,并且消除各變量量綱的影響。 判别規則: W(x)為判别函數(discriminant function),α為判别系數。

兩總體協方差不等 判别函數為二次函數 多總體情況
  • 多總體情況:協方差相同
  • 多總體情況:協方差不等
  • 若總體不服從正态分布,直接從馬氏距離來做判别分析,失去了機率意義,僅僅是一直覺的經驗判斷而已,可能偏誤較大。

2.2 Fisher判别法

Fisher判别法的思想就是投影,将k組p維資料投影到某一個方向,使得它們的投影組與組之間盡可能的分開。考慮隻有兩個(預測)變量的判别問題。假定隻有兩類。資料中的每個觀測值是二維空間的一個點。這裡隻有兩種已知類型的訓練樣本。一 類 有 38 個 點 ( 用“o”表示),另一類有44個點(用“*”表示)。按原來變量(橫坐标和縱坐标),很難将這兩種點分開。

應用統計學與R語言實作學習筆記(十一)——判别分析Chapter 11 Discriminant Analysis

但是沿着圖上的虛線方向朝和這個虛線垂直的一條直線進行投影會使得這兩類分得最清楚。可以看出,如果向其他方向投影,判别效果不會比這個好。有了投影之後,再用前面講到的距離遠近的方法得到判别準則。這種先投影的判别方法就是Fisher判别法。 Fisher判别法

  • 不要求總體分布類型;
  • 工作原理就是對原資料系統進行坐标變換,尋求能夠将總體盡可能分開的方向;
  • a為Rp中的任一向量,點x在以a為法方向的投影為a'x;
  • 各組資料的投影
  • 這些資料正好組成一進制方差分析的資料。

F應充分大,即希望找到a使得SSG盡可能大而SSE盡可能小。 在有些問題中,僅用一個線性判别函數不能很好差別各個總體,可取第二個、第三個,以此類推。 據此來确定選擇多少判别函數。 判别準則 選擇i使得代價函數的值最小 Fisher判别法實質

  • 選幾個新的綜合性名額,代替原來的p個名額。
  • 構成新的綜合性名額的條件: (1)不同類的均值差距盡可能大; (2)各類中的方差盡可能小。

Fisher判别法的依據不是x屬于哪個總體的機率的大小,而是類别之間具有最大的可分性,也沒有考慮錯判帶來的損失大小(錯報台風登陸vs.漏報台風登陸)。

2.3 Bayes判别法

  • 不用判别式,而是比較新給樣品屬于各個總體的條件機率p(g|x)的大小,将新樣品判歸為來自條件機率最大的總體。
  • 先給出 k 個總體的先驗機率(實踐中通常把頻率作為先驗機率)。如各總體密度為,則後驗機率可計算。
  • 當且僅當P(h|x)= maxgP(g|x),判x來自第h總體。
  • 也可以用使錯判的損失最小的準則來判别。
  • Bayes判别法就是要選擇劃分D使得ECM(D)最小。

3 建立判别函數的方法

與多元回歸類似,變量選擇的好壞直接影響判别分析的效果。 常遇問題:(1)忽略最主要的名額;(2)引入太多名額,計算量既大又幹擾分析。

  • 全模型法(SPSS系統預設方法)
  • 前向選擇法 從沒有變量的模型開始 每一部逐漸把對判别函數貢獻最大的變量加入模型,直到模型外沒有一個變量 符合條件為止。當希望有較多變量進入判别函數時,選用此方法(在Syntax中實作)。選擇使威爾克斯統計量最小且顯著的變量加入。
  • 後向選擇法 從包含使用者指定的所有變量的模型開始。每一部逐漸把對判别函數貢獻最小的變量從模型中剔除出去,直到留在模型中的變量都符合條件為止。當希望判别函數含有較少變量時,選用此方法。選擇使威爾克斯統計量最大且不顯著的變量剔除。
  • 逐漸選擇法 前向選擇和後向選擇的結合。從沒有變量的模型開始。每一部逐漸把對判别函數貢獻最大的變量加入模型,同時,對模型中的變量進行檢驗,把不符合條件的變量從模型中删除。是一種較好的方法。選擇使威爾克斯統計量最小且顯著的變量加入。選擇使威爾克斯統計量最大且不顯著的變量剔除。

4 判别分析的步驟及注意事項

判别分析的步驟

  • 第1步:确定研究的問題與目的 判别分析适合将個體歸類的問題,特别适合一個定性的被解釋變量和多個定量的解釋變量的情形。
  • 第2步:判别分析研究設計 解釋變量與被解釋變量的選擇:被解釋變量的組數可以是兩個或更多,但必須互斥和完備。 樣本容量:判别分析對樣本量與預測變量的比率敏感。 總樣本量:建議比率為每個解釋變量20個觀測,最小的總樣本量為每個變量5個觀測。最小的組的大小必須超過解釋變量的個數,建議每組至少有20個觀測,還要注意組的相對大小(大的組有不相稱的高的分類機會)。 樣本分割:需要将樣本分割為兩個子樣本,一個用于估計判别函數,另一個用于驗證。随機分組,最常見的是随機分為兩半。通常各組比率相同。
  • 第3步:判别分析的假定 多元正态性,如不滿足建議使用Logistic回歸。Box’s Test 檢驗各組協方差陣是否相等,不等的協方差矩陣可能會負面影響分類過程,觀測會被“過度歸類”到大的協方差陣組中。解釋變量的多重共線性。
  • 第4步:估計判别模型和評估整體拟和統計顯著性: Wilks’ Lambda, Hotelling迹和Pillai評估判别函數的判别效力的顯著性。 評估整體拟和:計算每個觀測的判别Z得分,檢驗各組在判别Z得分上的差異,評估組,關系的預測精度。
  • 第5步:結果的解釋 解釋判别分析中每個解釋變量的相對重要性。 标準化判别權重(判别系數):如存在多重共線性時不合适,可能不穩定。 判别載荷,又稱結構相關系數,是每個解釋變量與判别函數的簡單相關系數,也可能不穩定。 偏F值。 能力指數:當保留多個判别函數時。
  • 第6步:結果的驗證 分隔樣本或交叉驗證法。

判别分析注意事項

  • 解釋變量(判别變量)必須是可測量的。
  • 每一個判别變量不能是其它判别變量的線性組合(不能提供新的資訊,無法估計判别函數)。
  • 判别變量不能高度相關,否則導緻估計的标準誤差很大。
  • 訓練樣本中必須包含所有要判别的類型,分類必須清楚(在判别分析前最好應當做假設檢驗,确定各個類的有關變量的均值是顯著不同的)。
  • 要選擇好可能用于判别的預測變量。判别分析是為了正确地分類,但同時也要注意使用盡可能少的預測變量來達到這個目的。使用較少的變量意味着節省資源和易于對結果作解釋。
  • 檢驗結果(在SPSS選項中選擇Wilks’ Lambda、Rao’s V、 The Squared Mahalanobis Distance或The Sum of Unexplained Variations等檢驗的計算機輸出),以确定是否分類結果僅由于随機因素。
  • 對于多個判别函數,要弄清各自的重要性。
  • 注意訓練樣本的正确和錯誤分類率。研究被誤分類的觀測值,看是否能找出原因。

5 R語言中判别分析實作

正如上文提到的,我們以一個簡單的地物分類的例子來進行實踐。 原始的遙感影像如圖所示(高分一号衛星16 m資料)。

應用統計學與R語言實作學習筆記(十一)——判别分析Chapter 11 Discriminant Analysis

高分一号衛星有四個波段,分别顯示如下:

應用統計學與R語言實作學習筆記(十一)——判别分析Chapter 11 Discriminant Analysis

我們随機在區域内生成了55個樣本點,并根據目視解譯做了分類,由于所處研究區位于新城且僅作測試,用地類型僅選擇了兩類:建設用地/不透水面和植被。前面已經用4,3,2顯示了原始影像,紅色部分即為植被。植被為類型1,建設用地/不透水面為類型2。

應用統計學與R語言實作學習筆記(十一)——判别分析Chapter 11 Discriminant Analysis

另外我們随機在區域内還生成了10個樣本點作為驗證點。

應用統計學與R語言實作學習筆記(十一)——判别分析Chapter 11 Discriminant Analysis

接着下來我們讀取資料并且利用三種不同的判别分析方法進行判别分析地物類别。 判别分析可以自己通過dist函數計算距離得到。現在已經有對應的包可以直接分析。 這裡推薦兩個包(WMDB和MASS)。 WMDB可以實作權重馬氏距離判别分析和Bayes判别分析,MASS可以實作Fisher判别分析。 距離判别分析的函數為wmd。具體參數如下:

wmd(Trnx,TrnG,Tweight=NULL,Tstx=NULL,var.equal=F)
           

Trnx是訓練樣本資料。TrnG為分類結果,Tweight為指定權重,可以根據主成分貢獻計算或者取相等(原始的判别分析法),Tstx為待測樣本資料,var.equal指定協方差矩陣是否相等。 Fisher判别分析的函數為lda。具體參數如下:

lda(formula,data,……,subset,na.action)
           

formula形如groups~x1+x2+……的形式,data為資料集,subset指定訓練樣本,na.action指定有缺失值處理方式。 Bayes判别分析的函數為dbayes。具體參數如下:

dbayes(Trnx,TrnG,p=rep(1,length(levels(TrnG))),Tstx=NULL,var.equal=F)
           

Trnx是訓練樣本資料。TrnG為分類結果,p為指定先驗機率的向量,Tstx為待測樣本資料,var.equal指定協方差矩陣是否相等。 接下來就是基于高分影像的四個波段進行訓練和判别分析。 距離判别分析結果。

應用統計學與R語言實作學習筆記(十一)——判别分析Chapter 11 Discriminant Analysis

Fisher判别分析結果。

應用統計學與R語言實作學習筆記(十一)——判别分析Chapter 11 Discriminant Analysis

列聯表分析及判别準确率。

應用統計學與R語言實作學習筆記(十一)——判别分析Chapter 11 Discriminant Analysis
應用統計學與R語言實作學習筆記(十一)——判别分析Chapter 11 Discriminant Analysis

Bayes判别分析結果。

應用統計學與R語言實作學習筆記(十一)——判别分析Chapter 11 Discriminant Analysis

從樣本資料來看,Fisher結果是最好的。 接下來即按照訓練好的判别規則進行分類。這裡發現WMDB包的兩個函數并沒有提供預測功能,這裡選用了另一個包klaR來做貝葉斯分類(樸素貝葉斯)。 分類結果對比:

應用統計學與R語言實作學習筆記(十一)——判别分析Chapter 11 Discriminant Analysis

為了驗證準确率,這裡利用随機生成的10個驗證點進行精度驗證。

應用統計學與R語言實作學習筆記(十一)——判别分析Chapter 11 Discriminant Analysis

由于選取驗證點較少,準确率都達到了100%。從實際影像對比來看,似乎Bayes方法将更多細小的植被提取出來了,但是也有一部分道路錯分。Fisher方法少提取了一部分,但錯分的部分幾乎沒有。 這部分的代碼和資料後面會一起放出來。

版權聲明:本文為CSDN部落客「weixin_34168700」的原創文章,遵循CC 4.0 BY-SA版權協定,轉載請附上原文出處連結及本聲明。

原文連結:https://blog.csdn.net/weixin_34168700/article/details/92279731