• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      R語言在統(tǒng)計學(xué)教學(xué)中的運用

      2018-12-25 08:30:04金欣雪
      唐山師范學(xué)院學(xué)報 2018年6期
      關(guān)鍵詞:阜陽集上分類

      金欣雪

      ?

      R語言在統(tǒng)計學(xué)教學(xué)中的運用

      金欣雪

      (阜陽師范學(xué)院 數(shù)學(xué)與統(tǒng)計學(xué)院,安徽 阜陽 236037)

      通過比較R在bagging、隨機森林、支持向量機、最近鄰、人工神經(jīng)網(wǎng)絡(luò)等現(xiàn)代回歸方法中所發(fā)揮的不同作用,進一步說明了R語言在統(tǒng)計教學(xué)中的優(yōu)勢。

      統(tǒng)計學(xué)教學(xué);R語言;現(xiàn)代回歸分析

      1 R語言

      R語言是屬于GNU系統(tǒng)的一個自由、免費、源代碼開放的軟件,它主要用于統(tǒng)計計算和統(tǒng)計制圖[1-2]。它為許多不同領(lǐng)域的工作者提供了豐富的程序包和函數(shù),以及能夠滿足不同專家學(xué)者交流需要的強大社區(qū)資源[3]。本文通過一些經(jīng)典的例子,探討在統(tǒng)計教學(xué)過程中R語言的運用,引導(dǎo)學(xué)生掌握應(yīng)用R語言解決實際問題的方法。

      2 R語言在統(tǒng)計學(xué)教學(xué)中的應(yīng)用舉例

      2.1 數(shù)據(jù)描述

      應(yīng)用舉例中所選取的數(shù)據(jù)為美國波士頓郊區(qū)的房價數(shù)據(jù),共有506個觀測值,14個變量(13個連續(xù)性變量,1個分類變量),具體如表1所示。

      表1 變量名稱及含義

      2.1.1 描述數(shù)據(jù)集的基本信息

      首先讀入數(shù)據(jù):

      c=read.table("D:/R/housing2.data.txt",

      header=T);

      對數(shù)據(jù)集的基本信息特征進行描述:

      summary(c)

      CRIM的均值為3.61,最小值為0.006,最大值為88.98,25%的值小于0.08,中位數(shù)為0.26,75%的值小于3.68;

      RM的均值為6.29,最小值為3.56,最大值為8.78,25%的值小于5.89,中位數(shù)為6.21,75%的值小于6.62;

      LSTAT的均值為12.65,最小值為1.73,最大值為37.97,25%的值小于6.95,中位數(shù)為11.36,75%的值小于16.95;

      2.1.2 繪制變量LSTAT~CHAS,RM~CHAS的箱線圖

      圖1 箱線圖

      par(mfrow=c(1,2))

      boxplot(LSTAT~CHAS, data=c, col=c('red', 'green'), main="LSTAT~CHAS")

      boxplot(RM~CHAS, data=c, col=c('red', 'green'), main="RM~CHAS")

      從圖1可以看出,LSTAT的值在CHAS為1時,比CHAS為0時集中;RM值在CHAS為1時,比CHAS為0時分散。

      2.1.3 進一步檢驗變量間的相關(guān)性

      bb=cor(c[,-c(4)]);bb;#變量間的相關(guān)性

      symnum(cor(c[,-c(4)]));

      kappa(bb,exact=TRUE);#共線性檢驗

      從變量之間的相關(guān)程度圖中可以看出,大多數(shù)變量之間相關(guān)程度不高,但某些變量之間的相關(guān)程度很大,變量之間存在著多重共線性的影響。

      2.2 現(xiàn)代回歸與分類

      分別按10%、30%、50%分層抽樣建立訓(xùn)練集與測試集。通過對三者的比較,利用30%分層抽樣建立的訓(xùn)練集與測試集的NMSE最低。在后續(xù)的現(xiàn)代分類與回歸的方法的研究中,我們均采用30%分層抽樣建立的訓(xùn)練集與測試集。

      在建立訓(xùn)練集和測試集之前定性變量先因子化:

      c$CHAS=factor(c$CHAS)

      attach(c);summary(c)

      #建立訓(xùn)練集與測試集:

      按30%分層抽樣建立訓(xùn)練集與測試集

      m=506;

      val1 <- sample(1:m, size = round(m/3), replace = FALSE, prob = rep(1/m, m))

      wsamp3 <- c[-val1,];dim(wsamp3); #選取2/3作為訓(xùn)練集(337*14)

      wsamp3;

      wtsamp3 <- c[val1,];dim(wtsamp3)#選取1/3作為測試集(169*14)

      wtsamp3;

      2.2.1 Bagging (bootstrap aggregating)

      Bagging通過對訓(xùn)練樣本進行放回抽樣,每次抽取樣本量同樣的觀測值,所產(chǎn)生的個不同樣本生成個決策樹,在回歸時,因變量的預(yù)測值由這些樹的結(jié)果平均得出[4]。

      library(ipred)

      bagging.MEDV=bagging(wsamp3$MEDV~.,data=wsamp3)

      attributes(bagging.MEDV)

      baggingtrain=predict(bagging.MEDV,wsamp3)

      baggingpre=predict(bagging.MEDV,wtsamp3)

      baggingpre

      cat("Bagging訓(xùn)練集上的NMSE為:", mean((wsamp3$MEDV-as.numeric(baggingtrain))^2)/mean((mean(wsamp3$MEDV)- wsamp3$MEDV)^2)," ")

      #Bagging訓(xùn)練集上的NMSE為: 0.132 848 2

      cat("Bagging測試集上的NMSE為:", mean((wtsamp3$MEDV-as.numeric(baggingpre))^2)/mean((mean(wtsamp3$MEDV)-wtsamp3$MEDV)^2), " ")

      #Bagging測試集上的NMSE為: 0.275 671 7

      2.2.2 隨機森林

      隨機森林的樣本數(shù)目遠大于bagging。且樣本隨機,每棵樹、每個節(jié)點的產(chǎn)生都有很大的隨機性。隨機森林不修剪每個樹,讓其盡量增長,以此得出更精確的結(jié)果。此外,在大的數(shù)據(jù)庫中的運行很有效率,還能給出分類中各個變量的重要性[5]。

      library(randomForest)#調(diào)用randomForest包

      randomforest.MEDV=randomForest(MEDV ~ ., data=wsamp3, importance=TRUE, proximity= TRUE);

      randomforesttrain=predict(randomforest.MEDV, wsamp3)

      randomforestpre=predict(randomforest.MEDV, wtsamp3)

      cat("randomforest訓(xùn)練集上的NMSE為:", mean((wsamp3$MEDV-as.numeric(randomforesttrain))^2)/mean((mean(wsamp3$MEDV)-wsamp3$MEDV)^2), " ")

      #randomforest訓(xùn)練集上的NMSE為:0.032 230 1

      cat("randomforest測試集上的NMSE為:", mean((wtsamp3$MEDV-as.numeric(randomforestpre))^2)/mean((mean(wtsamp3$MEDV)-wtsamp3$MEDV)^2), " ")

      #randomforest測試集上的NMSE:0.123 473 3

      進一步給出分類中各個變量的重要性:

      round(importance(randomforest.MEDV),3)

      print(randomforest.MEDV);

      par(mfrow=c(1,2));

      for(iin1:2)barplot(t(importance(randomforest. MEDV))[i,],cex.names = 0.7)

      圖2中左圖是用移去一個變量時導(dǎo)致的平均精確度減少來衡量的,右圖是用均方誤差來衡量的。房間數(shù)目(RM)和較低地位人的比率(LSTAT)是最突出的。

      圖2 隨機森林

      2.2.3 最近鄰方法

      最近鄰方法基于訓(xùn)練集對測試集進行分類或回歸。在分類中,個訓(xùn)練集點中多數(shù)所歸屬類型決定了距離其最近測試點的歸類。在回歸中,離測試點最近的個訓(xùn)練集點對應(yīng)因變量值的平均值即為其預(yù)測值[6]。

      library(kknn);

      a=kknn(MEDV~.,wsamp3,wtsamp3);

      summary(a);

      kknntrain=predict(a, wsamp3)

      kknnpre=predict(a, wtsamp3)

      cat("kknn訓(xùn)練集上的NMSE為:", mean((wsamp3$MEDV-as.numeric(kknntrain))^2)/mean((mean(wsamp3$MEDV)-wsamp3$MEDV)^2), " ")

      #kknn訓(xùn)練集上的NMSE為:1.632 342

      cat("kknn測試集上的NMSE為:", mean((wtsamp3$MEDV-as.numeric(kknnpre))^2)/mean((mean(wtsamp3$MEDV)-wtsamp3$MEDV)^2), " ")

      #kknn測試集上的NMSE為:0.274 189 5

      2.2.4 人工神經(jīng)網(wǎng)絡(luò)

      人工神經(jīng)網(wǎng)絡(luò)是對自然的神經(jīng)網(wǎng)絡(luò)的模仿;可以有效解決很復(fù)雜的有大量互相相關(guān)變量的回歸和分類問題[7]。

      library(mlbench);

      library(nnet);

      dd=nnet(MEDV~., data =wsamp3, size = 2, rang = 0.1, decay = 5e-4, maxit = 1 000);

      nnettrain=predict(dd, wsamp3)

      nnetpre=predict(dd, wtsamp3)

      cat("nnet訓(xùn)練集上的NMSE為:", mean((wsamp3$MEDV-as.numeric(nnettrain))^2)/mean((mean(wsamp3$MEDV)-wsamp3$MEDV)^2), " ")

      #nnet訓(xùn)練集上的NMSE為:6.291 331

      cat("nnet測試集上的NMSE為:", mean((wtsamp3$MEDV-as.numeric(nnetpre))^2)/mean((mean(wtsamp3$MEDV)-wtsamp3$MEDV)^2), " ")

      #nnet測試集上的NMSE為:6.956 288

      圖3 人工神經(jīng)網(wǎng)路

      2.2.5 支持向量機

      支持向量機最常用的為最大間隔原則,即分隔直線或超平面兩邊的不包含觀測點的區(qū)域越寬越好[8]。

      圖4 支持向量機

      library(mlbench);

      library(e1071);

      gg=svm(MEDV ~ ., data = wsamp3, kernal= "sigmoid")

      e1071train=predict(gg, wsamp3)

      e1071pre=predict(gg, wtsamp3)

      cat("e1071訓(xùn)練集上的NMSE為:", mean((wsamp3$MEDV-as.numeric(e1071train))^2)/mean((mean(wsamp3$MEDV)-wsamp3$MEDV)^2), " ")

      e1071訓(xùn)練集上的NMSE為: 0.090 234 8

      cat("e1071測試集上的NMSE為:", mean((wtsamp3$MEDV-as.numeric(e1071pre))^2)/mean((mean(wtsamp3$MEDV)-wtsamp3$MEDV)^2), " ")

      e1071測試集上的NMSE為: 0.211 448

      2.3 綜合比較

      表2 綜合比較

      表2是采用不同方法處理時得到的NMSE值比較。從中可以看出,randomForest得到的訓(xùn)練集和測試集的NMSE最小,所以randomForest方法更精確。

      [1] TORGO L.數(shù)據(jù)挖掘與R語言[M].北京:機械工業(yè)出版社,2013:4-8.

      [2] 羌雨.基于R語言的大數(shù)據(jù)審計方法研究[J].中國管理信息化,2016,(11):46-48.

      [3] 李雄英.基于R語言的統(tǒng)計教學(xué)應(yīng)用初探[J].高教學(xué)刊, 2017,(1):50-53.

      [4] 王斌會.多元統(tǒng)計分析及R語言建模[M].廣州:暨南大學(xué)出版社,2015:176-187.

      [5] 楊霞,吳東偉.R語言在大數(shù)據(jù)處理中的應(yīng)用[J].科技資訊,2013,(23):19-20.

      [6] 吳喜之.復(fù)雜數(shù)據(jù)統(tǒng)計方法:基于R的應(yīng)用[M].北京:中國人民大學(xué)出版社,2013:195-210.

      [7] 湯銀才.R語言與統(tǒng)計分析[M].北京:高等教育出版社, 2008:135-142.

      [8] 薛毅,陳立萍.統(tǒng)計建模與R軟件[M].北京:清華大學(xué)出版社,2007:162-178.

      The Application of R Language in Statistics Teaching

      JIN Xin-xue

      (Department of Mathematics and Statistics, Fuyang Teachers College, Fuyang 236037, China)

      The paper combined with examples.discusses the application in the teaching of statistics, compares the different roles R played in bagging, randomforest, svm, kknn, nnet, etc. modern regression methods, in order to further illustrate the advantages of R language software, combined with examples.

      statistics teaching; R language; modern regression methods

      G642.0

      A

      1009-9115(2018)06-0049-05

      10.3969/j.issn.1009-9115.2018.06.011

      全國統(tǒng)計科學(xué)研究項目(2017LY63),安徽省哲學(xué)社會科學(xué)規(guī)劃項目(AHSKY2018D63),安徽省教育廳重點項目(SK2017A0454),河北省科技廳重點項目(17454701D),阜陽市政府-阜陽師范學(xué)院橫向合作項目(XDHXTD201709),阜陽師范學(xué)院人文社會科學(xué)研究重點項目(2019FSSK04ZD)

      2018-03-07

      2018-05-02

      金欣雪(1985-),女,安徽渦陽人,博士,講師,研究方向為應(yīng)用統(tǒng)計數(shù)據(jù)分析。

      (責(zé)任編輯、校對:趙光峰)

      猜你喜歡
      阜陽集上分類
      分類算一算
      第二屆淮河文化論壇在阜陽舉行
      Cookie-Cutter集上的Gibbs測度
      鏈完備偏序集上廣義向量均衡問題解映射的保序性
      合肥至霍邱至阜陽高速公路今年開建
      分類討論求坐標
      安徽阜陽潁上:“產(chǎn)業(yè)花”結(jié)出“脫貧果”
      數(shù)據(jù)分析中的分類討論
      復(fù)扇形指標集上的分布混沌
      教你一招:數(shù)的分類
      上思县| 古丈县| 府谷县| 河津市| 华坪县| 襄垣县| 鄢陵县| 施甸县| 镇安县| 松滋市| 武城县| 株洲县| 天峨县| 天镇县| 桃园县| 偏关县| 固阳县| 庐江县| 遂昌县| 定安县| 宁远县| 邵阳市| 嘉禾县| 潮安县| 偃师市| 濮阳市| 孝昌县| 沅陵县| 英超| 鄯善县| 泰来县| 勃利县| 时尚| 灵武市| 新津县| 黄冈市| 茶陵县| 鹿邑县| 五河县| 镇巴县| 高唐县|