R語言中的多元統(tǒng)計之判別分析_第1頁
R語言中的多元統(tǒng)計之判別分析_第2頁
R語言中的多元統(tǒng)計之判別分析_第3頁
R語言中的多元統(tǒng)計之判別分析_第4頁
R語言中的多元統(tǒng)計之判別分析_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、判別分析(discriminantanalysis)是多元統(tǒng)計分析中較為成熟的一種分類方法,它的核心思想是分類與判斷”,即根據(jù)已知類別的樣本所提供的信息,總結(jié)出分類的規(guī)律性,并建立好判別公式和判別準則,在此基礎(chǔ)上,新的樣本點將按照此準則判斷其所屬類型。例如,根據(jù)一年甚至更長時間的每天的濕度差及壓差,我們可以建立一個用于判別是否會下雨的模型,當我們獲取到某一天(建立模型以外的數(shù)據(jù))的濕度差及壓差后,使用已建立好的模型,就可以得出這一天是否會下雨的判斷。根據(jù)判別的組數(shù)來區(qū)分,判別分析可以分為兩組判別和多組判別。接下來,我們將學(xué)習(xí)三種常見的判別分析方法,分別是: 距離判別 Bayes判別 Fishe

2、r判別一、距離判別基本理論假設(shè)存在兩個總體和門心另有尤為一個維的樣本值,計算得到該樣本到兩個總體的距離加,和成乜G),如果乩匕CJ大于也G),則認為樣本了屬于總體反之樣本則屬于總體??;若成此GJ等于外匕心),則該樣本待判。這就是距離判別法的基本思想。在距離判別法中,最核心的問題在于距離的計算,一般情況下我們最常用的是歐式距離,但由于該方法在計算多個總體之間的距離時并不考慮方差的影響,而馬氏距離不受指標量綱及指標間相關(guān)性的影響,彌補了歐式距離在這方面的缺點,其計算公式如下:尾=0-丁為總體之間的協(xié)方差矩陣二、距離判別的R實現(xiàn)(訓(xùn)練樣本)首先我們導(dǎo)入數(shù)據(jù)> 讀取SA漱據(jù)> librar

3、y(sas7bdat)> datal<-read.sas7bdat('disl01.sas7bdat')> 截取所需列數(shù)據(jù),用于計算馬氏距離> testdata<-data12:5> head(testdata,3)X1X2X3X41 -0.45-0.411.090.452 -0.56-0.311.510.163 0.060.021.010.40#計算列均值>colM<-colMeans(testdata)>colMX1X2X3X40.096304348-0.0069565222.0334782610.431739130#計

4、算矩陣的協(xié)方差>cov_test<-cov(testdata)>cov_testX1X2X3X4X10.0681838160.0277670530.14996870-0.002566763X20.0277670530.0153638650.058782510.001252367X30.1499686960.0587825121.013098740.028607150X4-0.0025667630.0012523670.028607150.033912464#樣本的馬氏距離計算>distance<-mahalanobis(testdata,colM,cov_test

5、)>head(distance,5)112.72646511.2246811.6927021.3478852.369820這樣,我們得到了距離判別中最關(guān)鍵的馬氏距離值,在此基礎(chǔ)上就可以進行進一步的判別分析了。不過我們介紹一個R的第三方包WMDB,該包的wmd()函數(shù)可以簡化我們的距離判別過程,函數(shù)將輸出樣本的分類判別結(jié)果、錯判的樣本信息以及判別分析的準確度。>library(WMDB)>head(data1,3)AX1X2X3X411-0.45-0.411.090.4521-0.56-0.311.510.16310.060.021.010.40> 提取原始數(shù)據(jù)集的A列生

6、成樣品的已知類別> testdata_group<-data1$A> 轉(zhuǎn)換為因子變量,用于wmd()函數(shù)中> testdata_group<-as.factor(testdata_group)> wmd(testdata,testdata_group)123456789101112131415161718192021222324252627blong11111111111111221112111122228293031323334353637383940414243444546blong22222212221111121221"numofwrong

7、judgement"1151620222324343839404142441"samplesdividedto"122211111111111"samplesactuallybelongsto"11112222222222Levels:121"percentofrightjudgement"10.7173913由分析結(jié)果可知,根據(jù)已知分類的訓(xùn)練樣品建立的判別規(guī)則,重新應(yīng)用于訓(xùn)練樣品后,出現(xiàn)了13個錯判樣品,擁有71.7%的準確度。三、距離判別的R實現(xiàn)(測試樣本)接著,當我們獲取到未分類的新樣本數(shù)據(jù)時,使用wmd()函數(shù),在訓(xùn)

8、練樣本的基礎(chǔ)上進行這些數(shù)據(jù)的距離判別> 導(dǎo)入數(shù)據(jù),一共10個樣本> data2<-read.sas7bdat('disldp01.sas7bdat')> 截取所需列數(shù)據(jù)> newtestdata<-data21:4> 進行判別分析> wmd(testdata,testdata_group,TstX=newtestdata)12345678910blong1111112221根據(jù)馬氏距離判別分析得到的結(jié)果,10個待判樣品中,第一類7個,第二類3個。距離判別方法簡單實用,它只要求知道總體的數(shù)字特征,而不涉及總體的分布,當總體均值和協(xié)方

9、差未知時,就用樣本的均值和協(xié)方差矩陣來估計,因此距離判別沒有考慮到每個總體出現(xiàn)的機會大小,即先驗概率,沒有考慮到錯判的損失。因此,我們進一步學(xué)習(xí)貝葉斯判別法。一、貝葉斯判別基本理論貝葉斯判別法的前提是假定我們已經(jīng)對所要分析的數(shù)據(jù)有所了解(比如數(shù)據(jù)服從什么分別,各個類別的先驗概率等),根據(jù)各個類別的先驗概率求得新樣本屬于某類的后驗概率。該算法應(yīng)用到經(jīng)典的貝葉斯公式,該公式為:假設(shè)有兩個總體G1和分別具有概率密度函數(shù),11門和府,并且根據(jù)以往的統(tǒng)計分析,兩個總體各自出現(xiàn)的先驗概率為班和先,當一個樣本事發(fā)生時,求該樣本屬于某一類的概率,計算公式為:這樣,我們得到了該樣本屬于兩類總體的概率,分別為尸&

10、amp;1和巴公島),屬于哪一類總體的概率值大,我們則將樣本劃分到該類中。二、貝葉斯判別的R實現(xiàn)在R中,我們使用klaR包中的NaiveBayes()函數(shù)實現(xiàn)貝葉斯判別分析,函數(shù)調(diào)用公式如下:# NaiveBayes(formula,data,.,subset,na.action=na.pass)# formula指定參與模型計算的變量,以公式形式給出,類似于y=x1+x2+x3# na.action指定缺失值的處理方法,默認情況下不將缺失值納入模型計算,也不會發(fā)生報錯信息,當設(shè)為“na.omit”時則會刪除含有缺失值的樣本# 數(shù)據(jù)準備,使用R內(nèi)置數(shù)據(jù)集iris# 通過抽樣建立訓(xùn)練樣本(70%

11、)和測試樣本(30%)# index<-sample(2,size=nrow(iris),replace=TRUE,prob=c(0.7,0.3)# train_data<-irisindex=1,# test_data<-irisindex=2,# 載入所用包# library(klaR)# 構(gòu)建貝葉斯模型# Bayes_model<-NaiveBayes(Species.,data=train_data)# 進行預(yù)測# Bayes_model_pre<-predict(Bayes_model,newdata=test_data,1:4)# 生成實際與預(yù)判交叉表

12、>table(test_data$Species,Bayes_model_pre$class)setosaversicolorvirginicasetosa2000versicolor0170virginica037從上表生成的交叉表中,我們可以看到在該模型中錯判了3個。#生成預(yù)判精度>sum(diag(table(test_data$Species,Bayes_model_pre$class)+/sum(table(test_data$Species,Bayes_model_pre$class)10.9361702三、Fisher判別基本理論Fisher判別法的基本思想是投影”,

13、將K組尸維的數(shù)據(jù)向低維空間投影,使其投影的組與組之間的方差盡可能的大,組內(nèi)的方差盡可能的小。因此,F(xiàn)isher判別法的重點就是選擇適當?shù)耐队拜S”。判別函數(shù)為什=心”,接下來我們以兩類總體舉例。首先我們將樣本點投影到一維空間,旋轉(zhuǎn)坐標軸至總體單位盡可能分開的方向,此時分類變量被簡化為一個,判別函數(shù)履=。得;如果劃分的效果不理想,可以考慮投影到二維空間(廿=以4+的的),以此類推。上圖為二維空間的Fisher判別,從圖中可以看到,無論我們把總體3和0投影到11還是北軸,都不能很好的把兩類總體區(qū)分出來。為此,我們需要尋找一條合適的投影線,使得兩類總體向該線投影后的區(qū)分程度達到最大,線性判別函數(shù)學(xué)二門

14、心F小門即為該投影線的表達形式(這里我們僅介紹Fisher判別的基本原理,不涉及參數(shù)的具體推導(dǎo)和求解,這些都可用R程序求得)四、Fisher判別的R實現(xiàn)在R中,我們使用MASS包中的lda()函數(shù)實現(xiàn)Fisher判別分析,函數(shù)調(diào)用公式如下:# lda(formula,data,.,subset,na.action)# formula:指定參與模型計算的變量,以公式形式給出,類似于y=x1+x2+x3# na.action:指定缺失值的處理方法,默認情況下,缺失值的存在使算法無法運行,當設(shè)置為“na.omit”時則會刪除含有缺失值的樣本# 數(shù)據(jù)準備,使用R內(nèi)置數(shù)據(jù)集iris# 通過抽樣建立訓(xùn)練樣

15、本(70%)和測試樣本(30%)> index<-sample(2,size=nrow(iris),replace=TRUE,prob=c(0.7,0.3)> train_data<-irisindex=1,> test_data<-irisindex=2,> 載入所用包> library(MASS)> 構(gòu)建Fisher判別模型> fisher_model<-lda(Species.,data=train_data)> 進行預(yù)測> fisher_model_pre<-predict(fisher_model,n

16、ewdata=test_data,1:4)> 生成實際與預(yù)判交叉表>table(test_data$Species,fisher_model_pre$class)setosaversicolorvirginicasetosa2000versicolor0141virginica0018> 生成預(yù)判精度>sum(diag(table(test_data$Species,fisher_model_pre$class)+/sum(table(test_data$Species,fisher_model_pre$class)10.9811321在判別分析的實際應(yīng)用中,對復(fù)雜的數(shù)

17、據(jù)使用線性判別可能無法得到理想的效果。為此,我們需要使用類似于二次判別函數(shù)的非線性分類方法,將樣本點投影到若干種二次曲面中,實現(xiàn)理想的判別效果。在R中,非線性判別使用MASS包的qda()函數(shù)來實現(xiàn),調(diào)用公式為:> qda(formula,data,.,subset,na.action)> 使用lda()函數(shù)同樣的數(shù)據(jù)集> fisher_model_2<-qda(Species.,data=train_data)> fisher_model_pre_2<-predict(fisher_model_2,newdata=test_data,1:4)> table(test_data$Species,fisher_model_pre_2$class)setosaversicolorvirginicasetosa2000versicolor0141virgi

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論