盤點(diǎn):做數(shù)據(jù)分析必須學(xué)R的4個(gè)理由_第1頁
盤點(diǎn):做數(shù)據(jù)分析必須學(xué)R的4個(gè)理由_第2頁
盤點(diǎn):做數(shù)據(jù)分析必須學(xué)R的4個(gè)理由_第3頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

盤點(diǎn):做數(shù)據(jù)分析必須學(xué)R的4個(gè)理由

本文提供了一位統(tǒng)計(jì)學(xué)家CatherineDalzell對(duì)R的價(jià)值的看法。為什么選擇R?R可以執(zhí)行統(tǒng)計(jì)。您可以將它視為SASAnalytics等分析系統(tǒng)的競爭對(duì)手,更不用提StatSoftSTATISTICA或Minitab等更簡單的包。政府、企業(yè)和制藥行業(yè)中許多專業(yè)統(tǒng)計(jì)學(xué)家和方法學(xué)家都將其全部職業(yè)生涯都投入到了IBMSPSS或SAS中,但卻沒有編寫過一行R代碼。所以從某種程度上講,學(xué)習(xí)和使用R的決定事關(guān)企業(yè)文化和您希望如何工作。我在統(tǒng)計(jì)咨詢實(shí)踐中使用了多種工具,但我的大部分工作都是在R中完成的。以下這些示例給出了我使用R的原因:R是一種強(qiáng)大的腳本語言。我最近被要求分析一個(gè)范圍研究的結(jié)果。研究人員檢查了1,600篇研究論文,并依據(jù)多個(gè)條件對(duì)它們的內(nèi)容進(jìn)行編碼,事實(shí)上,這些條件是大量具有多個(gè)選項(xiàng)和分叉的條件。它們的數(shù)據(jù)(曾經(jīng)扁平化到一個(gè)Microsoft?Excel?電子表格上)包含8,000多列,其中大部分都是空的。研究人員希望統(tǒng)計(jì)不同類別和標(biāo)題下的總數(shù)。R是一種強(qiáng)大的腳本語言,能夠訪問類似Perl的正則表達(dá)式來處理文本。凌亂的數(shù)據(jù)需要一種編程語言資源,而且盡管SAS和SPSS提供了腳本語言來執(zhí)行下拉菜單意外的任務(wù),但R是作為一種編程語言編寫的,所以是一種更適合該用途的工具。R走在時(shí)代的前沿。統(tǒng)計(jì)學(xué)中的許多新發(fā)展最初都是以R包的形式出現(xiàn)的,然后才被引入到商業(yè)平臺(tái)中。我最近獲得了一項(xiàng)對(duì)患者回憶的醫(yī)療研究的數(shù)據(jù)。對(duì)于每位患者,我們擁有醫(yī)生建議的治療項(xiàng)目數(shù)量,以及患者實(shí)際記住的項(xiàng)目數(shù)量。自然模型是貝塔—二項(xiàng)分布。這從上世紀(jì)50年代就已知道,但將該模型與感興趣的變量相關(guān)聯(lián)的估算過程是最近才出現(xiàn)的。像這樣的數(shù)據(jù)通常由廣義估計(jì)方程式(generalestimatingequations,GEE)處理,但GEE方法是漸進(jìn)的,而且假設(shè)抽樣范圍很廣。我想要一種具有貝塔—二項(xiàng)R的廣義線性模型。一個(gè)最新的R包估算了這一模型:BenBolker編寫的betabinom。而SPSS沒有。集成文檔發(fā)布。R完美地集成了LaTeX文檔發(fā)布系統(tǒng),這意味著來自R的統(tǒng)計(jì)輸出和圖形可嵌入到可供發(fā)布的文檔中。這不是所有人都用得上,但如果您希望便攜異步關(guān)于數(shù)據(jù)分析的書籍,或者只是不希望將結(jié)果復(fù)制到文字處理文檔,最短且最優(yōu)雅的路徑就是通過R和LaTeX。沒有成本。作為一個(gè)小型企業(yè)的所有者,我很喜歡R的免費(fèi)特定。即使對(duì)于更大的企業(yè),知道您能夠臨時(shí)調(diào)入某個(gè)人并立即讓他們坐在工作站旁使用一流的分析軟件,也很不錯(cuò)。無需擔(dān)憂預(yù)算。R是什么,它有何用途?作為一種編程語言,R與許多其他語言都很類似。任何編寫過代碼的人都會(huì)在R中找到很多熟悉的東西。R的特殊性在于它支持的統(tǒng)計(jì)哲學(xué)。一種統(tǒng)計(jì)學(xué)革命:S和探索性數(shù)據(jù)分析140字符的解釋:R是S的一種開源實(shí)現(xiàn),是一種用于數(shù)據(jù)分析和圖形的編程環(huán)境。計(jì)算機(jī)總是擅長計(jì)算—在您編寫并調(diào)試了一個(gè)程序來執(zhí)行您想要的算法后。但在上世紀(jì)60和70年代,計(jì)算機(jī)并不擅長信息的顯示,尤其是圖形。這些技術(shù)限制在結(jié)合統(tǒng)計(jì)理論中的趨勢(shì),意味著統(tǒng)計(jì)實(shí)踐和統(tǒng)計(jì)學(xué)家的培訓(xùn)專注于模型構(gòu)建和假設(shè)測試。一個(gè)人假定這樣一個(gè)世界,研究人員在其中設(shè)定假設(shè)(常常是農(nóng)業(yè)方面的),構(gòu)建精心設(shè)計(jì)的實(shí)驗(yàn)(在一個(gè)農(nóng)業(yè)站),填入模型,然后運(yùn)行測試。一個(gè)基于電子表格、菜單驅(qū)動(dòng)的程序(比如SPSS反映了這一方法)。事實(shí)上,SPSS和SASAnalytics的第一個(gè)版本包含一些子例程,這些子例程可從一個(gè)(Fortran或其他)程序調(diào)用來填入和測試一個(gè)模型工具箱中的一個(gè)模型。在這個(gè)規(guī)范化和滲透理論的框架中,JohnTukey放入了探索性數(shù)據(jù)分析(EDA)的概念,這就像一個(gè)鵝卵石擊中了玻璃屋頂。如今,很難想像沒有使用箱線圖(boxplot)來檢查偏度和異常值就開始分析一個(gè)數(shù)據(jù)集的情形,或者沒有針對(duì)一個(gè)分位點(diǎn)圖檢查某個(gè)線性模型殘差的常態(tài)的情形。這些想法由Tukey提出,現(xiàn)在任何介紹性的統(tǒng)計(jì)課程都會(huì)介紹它們。但并不總是如此。與其說EDA是一種理論,不如說它是一種方法。該方法離不開以下經(jīng)驗(yàn)規(guī)則:只要有可能,就應(yīng)使用圖形來識(shí)別感興趣的功能。分析是遞增的。嘗試以下這種模型;根據(jù)結(jié)果來填充另一個(gè)模型。使用圖形檢查模型假設(shè)。標(biāo)記存在異常值。使用健全的方法來防止違背分布假設(shè)。Tukey的方法引發(fā)了一個(gè)新的圖形方法和穩(wěn)健估計(jì)的發(fā)展浪潮。它還啟發(fā)了一個(gè)更適合探索性方法的新軟件框架的開發(fā)。S語言是在貝爾實(shí)驗(yàn)室由JohnChambers和同事開發(fā)的,被用作一個(gè)統(tǒng)計(jì)分析平臺(tái),尤其是Tukey排序。第一個(gè)版本(供貝爾實(shí)驗(yàn)室內(nèi)部使用)于1976年開發(fā),但直到1988年,它才形成了類似其當(dāng)前形式的版本。在這時(shí),該語言也可供貝爾實(shí)驗(yàn)室外部的用戶使用。該語言的每個(gè)方面都符合數(shù)據(jù)分析的“新模型”:S是一種在編程環(huán)境操作的解釋語言。S語法與C的語法很相似,但省去了困難的部分。S負(fù)責(zé)執(zhí)行內(nèi)存管理和變量聲明,舉例而言,這樣用戶就無需編寫或調(diào)試這些方面了。更低的編程開銷使得用戶可以在同一個(gè)數(shù)據(jù)集上快速執(zhí)行大量分析。從一開始,S就考慮到了高級(jí)圖形的創(chuàng)建,您可向任何打開的圖形窗口添加功能。您可很容易地突出興趣點(diǎn),查詢它們的值,使散點(diǎn)圖變得更平滑,等等。面向?qū)ο笮允?992年添加到S中的。在一個(gè)編程語言中,對(duì)象構(gòu)造數(shù)據(jù)和函數(shù)來滿足用戶的直覺。人類的思維始終是面向?qū)ο蟮?,統(tǒng)計(jì)推理尤其如此。統(tǒng)計(jì)學(xué)家處理頻率表、時(shí)間序列、矩陣、具有各種數(shù)據(jù)類型的電子表格、模型,等等。在每種情況下,原始數(shù)據(jù)都擁有屬性和期望值:舉例而言,一個(gè)時(shí)間序列包含觀察值和時(shí)間點(diǎn)。而且對(duì)于每種數(shù)據(jù)類型,都應(yīng)得到標(biāo)準(zhǔn)統(tǒng)計(jì)數(shù)據(jù)和平面圖。對(duì)于時(shí)間序列,我可能繪制一個(gè)時(shí)間序列平面圖和一個(gè)相關(guān)圖;對(duì)于擬合模型,我可能繪制擬合值和殘差。S支持為所有這些概念創(chuàng)建對(duì)象,您可以根據(jù)需要?jiǎng)?chuàng)建更多的對(duì)象類。對(duì)象使得從問題的概念化到其代碼的實(shí)現(xiàn)變得非常簡單。一種具有態(tài)度的語言:S、S-Plus和假設(shè)測試最初的S語言非常重視Tukey的EDA,已達(dá)到只能在S中執(zhí)行EDA而不能執(zhí)行其他任何操作的程度。這是一種具有態(tài)度的語言。舉例而言,盡管S帶來了一些有用的內(nèi)部功能,但它缺乏您希望統(tǒng)計(jì)軟件擁有的一些最明顯的功能。沒有函數(shù)來執(zhí)行雙抽樣測試或任何類型的真實(shí)假設(shè)測試。但Tukey認(rèn)為,假設(shè)測試有時(shí)正合適。1988年,位于西雅圖的StatisticalScience獲得S的授權(quán),并將該語言的一個(gè)增強(qiáng)版本(稱為S-Plus)移植到DOS以及以后的Windows?中。實(shí)際認(rèn)識(shí)到客戶想要什么后,StatisticalScience向S-Plus添加了經(jīng)典統(tǒng)計(jì)學(xué)功能。添加執(zhí)行方差分析(ANOVA)、測試和其他模型的功能。對(duì)S的面向?qū)ο笮远?,任何這類擬合模型的結(jié)果本身都是一個(gè)S對(duì)象。合適的函數(shù)調(diào)用都會(huì)提供假設(shè)測試的擬合值、殘差和p-值。模型對(duì)象甚至可以包含分析的中間計(jì)算步驟,比如一個(gè)設(shè)計(jì)矩陣的QR分解(其中Q是對(duì)角線,R是右上角)。有一個(gè)R包來完成該任務(wù)!還有一個(gè)開源社區(qū)大約在與發(fā)布S-Plus相同的時(shí)間,新西蘭奧克蘭大學(xué)的RossIhaka和RobertGentleman決定嘗試編寫一個(gè)解釋器。他們選擇了S語言作為其模型。該項(xiàng)目逐漸成形并獲得了支持。它們將其命名為R。R是S的一種實(shí)現(xiàn),包含S-Plus開發(fā)的更多模型。有時(shí)候,發(fā)揮作用的是同一些人。R是GNU許可下的一個(gè)開源項(xiàng)目。在此基礎(chǔ)上,R不斷發(fā)展,主要通過添加包。R包是一個(gè)包含數(shù)據(jù)集、R函數(shù)、文檔和C或Fortran動(dòng)態(tài)加載項(xiàng)的集合,可以一起安裝并從R會(huì)話訪問。R包向R添加新功能,通過這些包,研究人員可在同行之間輕松地共享計(jì)算方法。一些包的范圍有限,另一些包代表著整個(gè)統(tǒng)計(jì)學(xué)領(lǐng)域,還有一些包含最新的技術(shù)發(fā)展。事實(shí)上,統(tǒng)計(jì)學(xué)中的許多發(fā)展最初都是以R包形式出現(xiàn)的,然后才應(yīng)用到商用軟件中。在撰寫本文時(shí),R下載站點(diǎn)CRAN上已有4,701個(gè)R包。其中,單單那一天就添加了6個(gè)R。萬事萬物都有一個(gè)對(duì)應(yīng)的R包,至少看起來是這樣。我在使用R時(shí)會(huì)發(fā)生什么?備注:本文不是一部R教程。下面的示例僅試圖讓您了解R會(huì)話看起來是什么樣的。R二進(jìn)制文件可用于Windows、MacOSX和多個(gè)Linux?發(fā)行版。源代碼也可供人們自行編譯。在Windows?中,安裝程序?qū)添加到開始菜單中。要在Linux中啟動(dòng)R,可打開一個(gè)終端窗口并在提示符下鍵入R。您應(yīng)看到類似圖1的畫面。圖1.R工作區(qū)在提示符下鍵入一個(gè)命令,R就會(huì)響應(yīng)。此時(shí),在真實(shí)的環(huán)境中,您可能會(huì)從一個(gè)外部數(shù)據(jù)文件將數(shù)據(jù)讀入R對(duì)象中。R可從各種不同格式的文件讀取數(shù)據(jù),但對(duì)于本示例,我使用的是來自MASS包的michelson數(shù)據(jù)。這個(gè)包附帶了VenablesandRipley的標(biāo)志性文本ModernAppliedStatisticswithS-Plus(參見參考資料)。michelson包含來自測量光速的流行的MichelsonandMorley實(shí)驗(yàn)的結(jié)果。清單1中提供的命令可以加載MASS包,獲取并查看michelson數(shù)據(jù)。圖2顯示了這些命令和來自R的響應(yīng)。每一行包含一個(gè)R函數(shù),它的參數(shù)放在方括號(hào)([])內(nèi)。清單1.啟動(dòng)一個(gè)R會(huì)話2+2#Rcanbeacalculator.Rresponds,correctly,with4.library("MASS")#Loadsintomemorythefunctionsanddatasetsfrom#packageMASS,thataccompaniesModernAppliedStatisticsinSdata(michelson)#Copiesthemichelsondatasetintotheworkspace.ls()#Liststhecontentsoftheworkspace.Themichelsondataisthere.head(michelson)#Displaysthefirstfewlinesofthisdataset.#ColumnSpeedcontainsMichelsonandMorleysestimatesofthe#speedoflight,less299,000,inkm/s.#MichelsonandMorleyranfiveexperimentswith20runseach.#Thedatasetcontainsindicatorvariablesforexperimentandrun.help(michelson)#Callsahelpscreen,whichdescribesthedataset.圖2.會(huì)話啟動(dòng)和R的響應(yīng)現(xiàn)在讓我們看看該數(shù)據(jù)(參見清單2)。輸出如圖3中所示。清單2.R中的一個(gè)箱線圖#Basicboxplotwith(michelson,boxplot(Speed~Expt))#Icanaddcolourandlabels.Icanalsosavetheresultstoanobject.michelson.bp=with(michelson,boxplot(Speed~Expt,xlab="Experiment",las=1,ylab="SpeedofLight-299,000m/s",main="Michelson-MorleyExperiments",col="slateblue1"))#Thecurrentestimateofthespeedoflight,onthisscale,is734.5#Addahorizontallinetohighlightthisvalue.abline(h=734.5,lwd=2,col="purple")#AddmodernspeedoflightMichelsonandMorley似乎有計(jì)劃地高估了光速。各個(gè)實(shí)驗(yàn)之間似乎也存在一定的不均勻性。圖3.繪制一個(gè)箱線圖在對(duì)分析感到滿意后,我可以將所有命令保存到一個(gè)R函數(shù)中。參見清單3。清單3.R中的一個(gè)簡單函數(shù)MyExample=function(){library(MASS)data(michelson)michelson.bw=with(michelson,boxplot(Speed~Expt,xlab="Experiment",las=1,ylab="SpeedofLight-299,000m/s",main="Michelsen-MorleyExperiments",col="slateblue1"))abline(h=734.5,lwd=2,col="purple")}這個(gè)簡單示例演示了R的多個(gè)重要功能:保存結(jié)果—boxplot()函數(shù)返回一些有用的統(tǒng)計(jì)數(shù)據(jù)和一個(gè)圖表,您可以通過類似michelson.bp=…的負(fù)值語句將這些結(jié)果保存到一個(gè)R對(duì)象中,并在需要時(shí)提取它們。任何賦值語句的結(jié)果都可在R會(huì)話的整個(gè)過程中獲得,并且可以作為進(jìn)一步分析的主題。boxplot函數(shù)返回一個(gè)用于繪制箱線圖的統(tǒng)計(jì)數(shù)據(jù)(中位數(shù)、四分位等)矩陣、每個(gè)箱線圖中的項(xiàng)數(shù),以及異常值(在圖3中的圖表上顯示為開口圓)。請(qǐng)參見圖4。圖4.來自boxplot函數(shù)的統(tǒng)計(jì)數(shù)據(jù)公式語言—R(和S)有一種緊湊的語言來表達(dá)統(tǒng)計(jì)模型。參數(shù)中的代碼Speed~Expt告訴函數(shù)在每個(gè)Expt(實(shí)驗(yàn)數(shù)字)級(jí)別上繪制Speed的箱線圖。如果希望執(zhí)行方差分析來測試各次實(shí)驗(yàn)中的速度是否存在顯著差異,那么可以使用相同的公式:lm(Speed~Expt)。公式語言可表達(dá)豐富多樣的統(tǒng)計(jì)模型,包括交叉和嵌套效應(yīng),以及固定和隨機(jī)因素。用戶定義的R函數(shù)—這是一種編程語言。R已進(jìn)入21世紀(jì)Tukey的探索性數(shù)據(jù)分析方法已成為常規(guī)課程。我們?cè)诮淌谶@種方法,而統(tǒng)計(jì)學(xué)家也在使用該方法。R支持這種方法,這解釋了它為什么仍然如此流行的原因。面向?qū)ο笮赃€幫助R保持最新,因?yàn)樾碌臄?shù)據(jù)來源需要新的數(shù)據(jù)結(jié)構(gòu)來執(zhí)行分析。InfoSphere?Streams現(xiàn)在支持對(duì)與JohnChambers所設(shè)想的不同的數(shù)據(jù)執(zhí)行R分析。R與InfoSphereStreamsInfoSphereStreams是一個(gè)計(jì)算平臺(tái)和集成開發(fā)環(huán)境,用于分析從數(shù)千個(gè)來源獲得的高速數(shù)據(jù)。這些數(shù)據(jù)流的內(nèi)容通常是非結(jié)構(gòu)化或半結(jié)構(gòu)化的。分析的目的是檢測數(shù)據(jù)中不斷變化的模式,基于快速變化的事件來指導(dǎo)決策。SPL(用于InfoSphereStreams的編程語言)通過一種范例來組織數(shù)據(jù),反映了數(shù)據(jù)的動(dòng)態(tài)性以及對(duì)快速分析和響應(yīng)的需求。我們已經(jīng)距離用于經(jīng)典統(tǒng)計(jì)分析的電子表格和常規(guī)平面文件很遠(yuǎn),但R能夠應(yīng)付自如。從3.1版開始,SPL應(yīng)用程序可將數(shù)據(jù)傳遞給R,從而利用R龐大的包庫。InfoSphereStreams對(duì)R的支持方式是,創(chuàng)建合適的R對(duì)象來接收SPL元組(SPL中的基本數(shù)據(jù)結(jié)構(gòu))中包含的信息。InfoSphereStreams數(shù)據(jù)因此可傳遞給R供進(jìn)一步分析,并將結(jié)果傳回到SPL。R需要主流硬件嗎?我在一臺(tái)運(yùn)行CrunchbangLinux的宏碁上網(wǎng)本上運(yùn)行了這個(gè)示例。R不需要笨重的機(jī)器來執(zhí)行中小規(guī)模的分析。20年來,人們一直認(rèn)為R之所以緩慢是因?yàn)樗且环N解釋性語言,而且它可以分析的數(shù)據(jù)大小受計(jì)算機(jī)內(nèi)存的限制。這是真的,但這通常與現(xiàn)代機(jī)器毫無干系,除非應(yīng)用程序非常大(大數(shù)據(jù))。R的不足之處公平地講,R也

溫馨提示

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

評(píng)論

0/150

提交評(píng)論