❶ r語言是數據分析領域比較常用的工具,它具有什麼特點
reshape2 橫向、縱向做數據變換,例如把縱向堆疊在資料庫中的證券行情數據轉換成一個按照不同證券代碼橫向排列,按照時間縱向排列收盤價的數據表
stringr 方便地用正則表達式做批量字元串操作,可做檢測、匹配、替換、計數等等
lubridate 方便地做日期/時間操作,各種標准化時間和時區的處理!
❷ 如何用r做趨勢面分析
當趨勢線的
R
平方值等於或近似於
1
時,趨勢線最可靠。用趨勢線擬合數據時,Excel
會自動計算其
R
平方值。如果需要,您可以在圖表上顯示該值。
R可以理解為相關系數,像一元線性回歸預測方法裡面也有這個R,相關系數是反映兩個變數間是否存在相關關系,以及這種相關關系的密切程度的一個統計量。越接近1關系越密切,越接近0則不存在線性關系。
R的平方則反映多元線性回歸的關系,同樣越接近1越線性相關,公式有,這里顯示不出來。希望能幫到您,O(∩_∩)O~
❸ 如何用R語言提取股票行情數據
最上邊一行菜單欄倒數第二個「高級」-「關聯任務定義」-選取最右邊從上到下第二個按鈕,找到2009年決算任務安裝路徑-確定。 然後 最上邊一行菜單欄正數第二個「錄入」-「上年數據提取」即可 提取完了,注意修改與去年不同的科目代碼!
❹ 炒股中的R指標是什麼意思在哪裡看啊
(R)威廉指標是由LarryWilliams於1973年首創的,WMS表示的是市場處於超買還是超賣狀態。WMS的計算公式是:n日WMS=(Hn-Ct)/(Hn-Ln)×100。Ct為當天的收盤價;Hn和Ln是最近n日內(包括當天)出現的最高價和最低價。WMS指標表示的涵義是當天的收盤價在過去的一段日子的全部價格範圍內所處的相對位置。如果WMS的值比較大,則當天的價格處在相對較低的位置,要注意反彈;如果WMS的值比較小,則當天的價格處在相對較高的位置,要注意回落;WMS取值居中,在50左右,則價格上下的可能性都有。
有兩個常用威廉指標,W&R威廉指標(William』s %R)和LWR威廉指標,它們與KD指標的分析思想相同。KD是相對價位指標,其數學表達式是「當前價位與分析區域中的最低價之差除以分析區域中的波動幅度」。而威廉指標的數學表達式是「分析區域中的最高價與當前價位之差除以分析區域中的波動幅度」。兩個指標的不同點在數學公式的分子上。威廉指標與KD指標的數學關系如下:
威廉指標=1-KD指標
由於KD與威廉指標都是用百分比表示的,因此在波形上,威廉指標與KD指標的波形完全對稱、上下顛倒。
一、WMS%R原理及計算
計算公式:
H-C
N日WMS%R=———×100%
H-L
式中:H——N日內的最高價;
L——N日內的最低價;
C——最後的收盤價。
從算式可看到兩點:
①它是以N日內市場空方的力道(H - c)與多空總力道(H - L)之比率,以此研判市勢。
②它是一個隨機性很強的波動指標,本質上與KDJ理論中的未成熟隨機指標RSV無異。
二、WMS%R的應用
1、0≤WMS%R≤100.由於WMS%R以研究空方力道為主,這與其它相似的振盪性指標以研究多方力道為主恰好相反,因此,WMS%R 80以上為超賣區,20以下為超買區。通常,為適應觀察者的視覺感受,在圖表的區間坐標上,將向下的方向處理為數值增大的方向。
2.由於其隨機性強的緣故,若其進入超買區時,並不表示價格會馬上回落,只要仍在其間波動,則仍為強勢。當高出超買線(WMS%R=20)時,才發出賣出信號。
3.同上理,當低過超賣線(WMS%R=80)時,才發出買入信號。
4.WMS%R=50是多空平衡線,升破或跌破此線,是穩健投資者的買賣信號。
5.公式中N的取值通常有6、12、26、等,分別對應短期、中短期、中期的分析。
一、W&R威廉指標(William』s %R)
N:14
(HHV(HIGH,N)-CLOSE)/(HHV(HIGH,N)-LLV(LOW,N))*100
請對照一下《道升隨筆:股票炒作手法與選股策略十六》文中的KD指標中的RSV,RSV的數學公式為:
N:9
RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100;
除了分析周期N的大小不同外,它們之間數學表達有如下關系:
W&R威廉指標=1-「KD指標中的RSV」
請做個小實驗,在W&R威廉指標中添加KD中的RSV表達式:
RSV:(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100;
那麼修改後的W&R威廉指標中就有兩條完全上下對稱的曲線。
在《道升隨筆:股票炒作手法與選股策略十六》中說過「如果9日內收盤價創新高,則RSV將變成100%,如果創新低將變成0。若直接使用RSV來描述相對位置,RSV很容易鈍化。RSV曲線從低位到高位(或者從高位到低位)花時較短,花在鈍化區的時間反而較長,並且曲線上有許多鈍化的盲區。」正是由於9日的分析周期太短,威廉指標中才採取了較大的分析周期14。利用RSV曲線容易在100%和0%鈍化的事實,可從中提前發現市場超買和超賣的特徵。
超買狀態:在分析周期中,如果股價創新高,進入了較高的風險區,股價隨時可能回落,RSV曲線高位鈍化,可看成進入了超買風險區,這時應該謹慎買入。
超賣狀態:在分析周期中,如果股價創新低,進入了較低的風險區,股價隨時可能反彈,RSV曲線低位鈍化,可看成進入了超賣風險區,這時應該謹慎賣出。
W&R威廉指標主要用來說明超買和超賣狀態。與KDJ相反,W&R威廉指標曲線超過80%說明是超賣,反之跌破20%是超買。
二、LWR威廉指標
數學表達式:
N:9
M1:3
M2:3
RSV:=(HHV(HIGH,N)-CLOSE)/(HHV(HIGH,N)-LLV(LOW,N))*100;
LWR1:SMA(RSV,M1,1);
LWR2:SMA(LWR1,M2,1);
請比較下列的KD隨機指標數學表達式:
N:9
M1:3
M2:3
RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100;
K:SMA(RSV,M1,1);
D:SMA(K,M2,1);
比較結果:LWR威廉指標與KD指標的中數學模型是一樣的,只是兩公式中的RSV的分子不同。在分析軟體中把這兩個指標都顯示出來,曲線完全對稱,上下顛倒。
三、小結
1、 W&R威廉指標(William』s %R)主要用於提前觀察超買和超賣現象,它的超買和超賣區域剛好與KDJ的超買和超賣區域相反。如果使用中感覺曲線反應太快,可增大分析周期。
2、 LWR威廉指標與KD指標的曲線完全對稱,上下顛倒。可使用比較熟習的KDJ曲線或者KD曲線就行了。
在沒有搞清指標的本質之前,要小心使用指標。有些指標之間的分析思想是一致的,只是微小的差別,可看成是同類指標。我們在分析問題時如果都採用同類指標來分析和判斷市場,可能會太偏頗。只有採取不同類型的指標才能保證從不同的視角來看待問題。
威廉指標又稱為威廉超買超賣指數,其作用在於從研究價位波幅出發,通過一段時間內的高低價位與收盤價之間的關系,反映市場的強弱和買賣氣勢。精髓在於通過研究價位變化中的波峰波谷,然後決定買賣時機。
威廉指標的計算公式為:R%=100-100(C-Ln)/(Hn-Ln)
其中:C(當日收盤價)、Ln(n日內最低價)、Hn(n日內最高價)
1、威廉指標是一個動態的動能指標,具有動能指標的擺動性能,它由一個極端擺動「超買點」到另外一個極端「超賣點」。從單擺的原理看,當單擺接近極端前,都有一個停頓,然後沿著原有趨勢慣性向前,才會改變原有趨勢。
2、從威廉指標的計算公式看,基期n值的數值選擇非常關鍵。n值確立後,代表了研究周期的選定,n值越小,威廉指標波動頻率越快,把握價格變化的靈敏度就越高,但據此操作投資者易陷入頻繁操作的誤圈,偶然因素的影響也會加大投資者對現有市場的判斷出錯;n值越大,威廉指標波動頻率越慢,價格變化的靈敏度降低,偶然因素對價格趨勢的影響降低。筆者對威廉指標作了5年的長期跟蹤並結合時間之窗對價格趨勢的影響,淺顯認為威廉指標可按短、中、長選取參數,短期n值選10為宜,中期選20,長期選89。這樣威廉指標在5分鍾、15分鍾、30分鍾、60分鍾、日線、周線、月線圖上均表現為3條威廉指標線,分別代表了短、中、長的擺動趨勢。
3、從威廉指標的計算公式看,在選定的基期n值范圍內,當日收盤價與n日內最低價相等時,威廉指標達到100即「超賣點」極端,注意這時還不到買賣時機,它只代表買賣時機即將來臨,這時還要考慮擺動慣性,在大幅下跌中,市場的收盤價可以連續創出收盤價新低,只有威廉指標的數值變化時才是最佳的「超賣點」極端買入時機,因此,當威廉指標達到或接近100即「超賣點」極端時,還要看下一個點的變化。在選定的基期n值范圍內,當日收盤價與n日內最高價相等時,威廉指標達到0即「超買點」極端,注意這時還不到買賣時機,它只代表買賣時機即將來臨,這時還要考慮擺動慣性,還要看下一個點的變化。日線看下一日,周線看下一周,依次類推。上述要點既包含了「漲時無頂、跌時無底」的股市常理,也包含了「逢低買入、逢高賣出」的思維方式。
4、威廉指標的數值位於0到100間,通常50為分隔的中界線,80-100為超賣線,20-0為超買線。從短、中、長3條威廉指標線看,當3條指標線重合並達到或接近100即「超賣點」極端或威廉指標達到或接近0即「超買點」極端時,其下一個威廉指標的數值變化時是投資者最應該關注的買賣時機。
❺ 股票數據分析方法
股票價格的漲跌,簡單來說,供求決定價格,買的人多價格就漲,賣的人多價格就跌。做成買賣不平行的原因是多方面的,影響股市的政策面、基本面、技術面、資金面、消息面等,是利空還是利多,升多了會有所調整,跌多了也會出現反彈,這是不變的規律。
❻ 怎麼分析股票數據
所需步驟:
1. 了解該公司。多花時間,弄清楚這間公司的經營狀況。以下是一些獲得資料的途徑:
* 公司網站
* 財經網站和股票經紀提供的公司年度報告
* 圖書館
* 新聞報道——有關技術革新和其它方面的發展情況
2. 美好的前景。你是否認同這家公司日後會有上佳的表現?
3. 發展潛力、無形資產、實物資產和生產能力。這時,你必須象一個老闆一樣看待這些問題。該公司在這些方面表現如何?
* 發展潛力——新的產品、拓展計劃、利潤增長點?
* 無形資產——知識版權、專利、知名品牌?
* 實物資產——有價值的房地產、存貨和設備?
* 生產能力——能否應用先進技術提高生產效率?
4. 比較。與競爭對手相比,該公司的經營策略、市場份額如何?
5. 財務狀況。在報紙的金融版或者財經網站可以找到有關的信息。比較該公司和競爭對手的財務比率:
* 資產的賬面價值
* 市盈率
* 凈資產收益率
* 銷售增長率
6. 觀察股價走勢圖。公司的股價起伏不定還是穩步上揚?這是判斷短線風險的工具。
7. 專業的分析。F10為個股資料,裡面的業內點評清楚地評價了公司的行業地位及發展前景,可以作為參考,還有淘股吧論壇,裡面不乏有高人分析個股的技術面與題材面。
技巧提示:
1、 潛在的行業龍頭,要重點關注。比如中國南車,剛上市就跌到了3元,作為動車組的龍頭股,肯定是低估了,中線持有必賺;
2、 低價是永恆的題材。這里所說的低價,是絕對低價,歷史上從來沒有大幅炒作過的品種,一旦有熱門的題材引發主升,往往成為黑馬。
注意事項:
每個投資者都經歷過股票套牢的滋味。這時應該保持冷靜,分析公司的基本面,確定該股票是否還值得長期持有。
❼ 如何用R語言提取股票行情數據
你好,關於股票價格有關的開盤價格,當日最高價格,當日最低價格,收盤價格,股票交易量;和調整後的價格;
DIA.Open 當日開盤價格
DIA.High 當日最高價格
DIA.Low 當日最低價格
DIA.Close 當日收盤價格
DIA.Volume 當日股票交易量
DIA.Adjusted 當日調整後的價格
❽ 如何用R 語言 建立 股票價格的時間序列
在下想用R語言對股票價格進行時間序列分析。
問題出在第一步,如何將股票價格轉換為時間序列。
我想用的語句是 pri <- ts (data, start=(), frequency= )
但是我不知道frequency 項該如何填?
因為股票的交易日是一周五天的。 那麼這個frequency 該如何設置呢?
我知道通常frequency= 12 為月度數據,frequency= 4 為季度數據,frequency= 1 為年度數據 但日數據怎麼寫我就不知道了
初學R語言,還望各位大俠多多幫助。
❾ 如何在r語言中抓取股票數據並分析論文
用quantomd包
然後getsymbols函數
分析論文 要看你研究方向
如果是看影響因素 一般回歸就行
如果看股票波動和預測 可能需要時間序列
❿ 做數據分析必須學R語言的4個理由
做數據分析必須學R語言的4個理由
R 是一種靈活的編程語言,專為促進探索性數據分析、經典統計學測試和高級圖形學而設計。R 擁有豐富的、仍在不斷擴大的數據包庫,處於統計學、數據分析和數據挖掘發展的前沿。R 已證明自己是不斷成長的大數據領域的一個有用工具,並且已集成到多個商用包中,比如 IBM SPSS? 和 InfoSphere?,以及 Mathematica。
本文提供了一位統計學家Catherine Dalzell對 R 的價值的看法。
為什麼選擇 R?
R可以執行統計。您可以將它視為 SAS Analytics 等分析系統的競爭對手,更不用提 StatSoft STATISTICA 或 Minitab 等更簡單的包。政府、企業和制葯行業中許多專業統計學家和方法學家都將其全部職業生涯都投入到了 IBM SPSS 或 SAS 中,但卻沒有編寫過一行 R 代碼。所以從某種程度上講,學習和使用 R 的決定事關企業文化和您希望如何工作。我在統計咨詢實踐中使用了多種工具,但我的大部分工作都是在 R 中完成的。以下這些示例給出了我使用 R 的原因:
R 是一種強大的腳本語言。我最近被要求分析一個范圍研究的結果。研究人員檢查了 1,600 篇研究論文,並依據多個條件對它們的內容進行編碼,事實上,這些條件是大量具有多個選項和分叉的條件。它們的數據(曾經扁平化到一個 Microsoft? Excel? 電子表格上)包含 8,000 多列,其中大部分都是空的。研究人員希望統計不同類別和標題下的總數。R 是一種強大的腳本語言,能夠訪問類似 Perl 的正則表達式來處理文本。凌亂的數據需要一種編程語言資源,而且盡管 SAS 和 SPSS 提供了腳本語言來執行下拉菜單意外的任務,但 R 是作為一種編程語言編寫的,所以是一種更適合該用途的工具。
R 走在時代的前沿。統計學中的許多新發展最初都是以 R 包的形式出現的,然後才被引入到商業平台中。我最近獲得了一項對患者回憶的醫療研究的數據。對於每位患者,我們擁有醫生建議的治療項目數量,以及患者實際記住的項目數量。自然模型是貝塔—二項分布。這從上世紀 50 年代就已知道,但將該模型與感興趣的變數相關聯的估算過程是最近才出現的。像這樣的數據通常由廣義估計方程式 (general estimating equations, GEE) 處理,但 GEE 方法是漸進的,而且假設抽樣范圍很廣。我想要一種具有貝塔—二項 R 的廣義線性模型。一個最新的 R 包估算了這一模型:Ben Bolker 編寫的 betabinom。而 SPSS 沒有。
集成文檔發布。 R 完美地集成了 LaTeX 文檔發布系統,這意味著來自 R 的統計輸出和圖形可嵌入到可供發布的文檔中。這不是所有人都用得上,但如果您希望便攜非同步關於數據分析的書籍,或者只是不希望將結果復制到文字處理文檔,最短且最優雅的路徑就是通過 R 和 LaTeX。
沒有成本。作為一個小型企業的所有者,我很喜歡 R 的免費特定。即使對於更大的企業,知道您能夠臨時調入某個人並立即讓他們坐在工作站旁使用一流的分析軟體,也很不錯。無需擔憂預算。
R 是什麼,它有何用途?
作為一種編程語言,R 與許多其他語言都很類似。任何編寫過代碼的人都會在 R 中找到很多熟悉的東西。R 的特殊性在於它支持的統計哲學。
一種統計學革命:S 和探索性數據分析
140 字元的解釋:R 是 S 的一種開源實現,是一種用於數據分析和圖形的編程環境。
計算機總是擅長計算 — 在您編寫並調試了一個程序來執行您想要的演算法後。但在上世紀 60 和 70 年代,計算機並不擅長信息的顯示,尤其是圖形。這些技術限制在結合統計理論中的趨勢,意味著統計實踐和統計學家的培訓專注於模型構建和假設測試。一個人假定這樣一個世界,研究人員在其中設定假設(常常是農業方面的),構建精心設計的實驗(在一個農業站),填入模型,然後運行測試。一個基於電子表格、菜單驅動的程序(比如 SPSS 反映了這一方法)。事實上,SPSS 和 SAS Analytics 的第一個版本包含一些子常式,這些子常式可從一個(Fortran 或其他)程序調用來填入和測試一個模型工具箱中的一個模型。
在這個規范化和滲透理論的框架中,John Tukey 放入了探索性數據分析 (EDA) 的概念,這就像一個鵝卵石擊中了玻璃屋頂。如今,很難想像沒有使用箱線圖(box plot) 來檢查偏度和異常值就開始分析一個數據集的情形,或者沒有針對一個分位點圖檢查某個線性模型殘差的常態的情形。這些想法由 Tukey 提出,現在任何介紹性的統計課程都會介紹它們。但並不總是如此。
與其說 EDA 是一種理論,不如說它是一種方法。該方法離不開以下經驗規則:
只要有可能,就應使用圖形來識別感興趣的功能。
分析是遞增的。嘗試以下這種模型;根據結果來填充另一個模型。
使用圖形檢查模型假設。標記存在異常值。
使用健全的方法來防止違背分布假設。
Tukey 的方法引發了一個新的圖形方法和穩健估計的發展浪潮。它還啟發了一個更適合探索性方法的新軟體框架的開發。
S 語言是在貝爾實驗室由 John Chambers 和同事開發的,被用作一個統計分析平台,尤其是 Tukey 排序。第一個版本(供貝爾實驗室內部使用)於 1976 年開發,但直到 1988 年,它才形成了類似其當前形式的版本。在這時,該語言也可供貝爾實驗室外部的用戶使用。該語言的每個方面都符合數據分析的 「新模型」:
S 是一種在編程環境操作的解釋語言。S 語法與 C 的語法很相似,但省去了困難的部分。S 負責執行內存管理和變數聲明,舉例而言,這樣用戶就無需編寫或調試這些方面了。更低的編程開銷使得用戶可以在同一個數據集上快速執行大量分析。
從一開始,S 就考慮到了高級圖形的創建,您可向任何打開的圖形窗口添加功能。您可很容易地突出興趣點,查詢它們的值,使散點圖變得更平滑,等等。
面向對象性是 1992 年添加到 S 中的。在一個編程語言中,對象構造數據和函數來滿足用戶的直覺。人類的思維始終是面向對象的,統計推理尤其如此。統計學家處理頻率表、時間序列、矩陣、具有各種數據類型的電子表格、模型,等等。在每種情況下,原始數據都擁有屬性和期望值:舉例而言,一個時間序列包含觀察值和時間點。而且對於每種數據類型,都應得到標准統計數據和平面圖。對於時間序列,我可能繪制一個時間序列平面圖和一個相關圖;對於擬合模型,我可能繪制擬合值和殘差。S 支持為所有這些概念創建對象,您可以根據需要創建更多的對象類。對象使得從問題的概念化到其代碼的實現變得非常簡單。
一種具有態度的語言:S、S-Plus 和假設測試
最初的 S 語言非常重視 Tukey 的 EDA,已達到只能 在 S 中執行 EDA 而不能執行其他任何操作的程度。這是一種具有態度的語言。舉例而言,盡管 S 帶來了一些有用的內部功能,但它缺乏您希望統計軟體擁有的一些最明顯的功能。沒有函數來執行雙抽樣測試或任何類型的真實假設測試。但 Tukey 認為,假設測試有時正合適。
1988 年,位於西雅圖的 Statistical Science 獲得 S 的授權,並將該語言的一個增強版本(稱為 S-Plus)移植到 DOS 以及以後的 Windows? 中。實際認識到客戶想要什麼後,Statistical Science 向 S-Plus 添加了經典統計學功能。添加執行方差分析 (ANOVA)、測試和其他模型的功能。對 S 的面向對象性而言,任何這類擬合模型的結果本身都是一個 S 對象。合適的函數調用都會提供假設測試的擬合值、殘差和 p-值。模型對象甚至可以包含分析的中間計算步驟,比如一個設計矩陣的 QR 分解(其中 Q 是對角線,R 是右上角)。
有一個 R 包來完成該任務!還有一個開源社區
大約在與發布 S-Plus 相同的時間,紐西蘭奧克蘭大學的 Ross Ihaka 和 Robert Gentleman 決定嘗試編寫一個解釋器。他們選擇了 S 語言作為其模型。該項目逐漸成形並獲得了支持。它們將其命名為 R。
R 是 S 的一種實現,包含 S-Plus 開發的更多模型。有時候,發揮作用的是同一些人。R 是 GNU 許可下的一個開源項目。在此基礎上,R 不斷發展,主要通過添加包。R 包 是一個包含數據集、R 函數、文檔和 C 或 Fortran 動態載入項的集合,可以一起安裝並從 R 會話訪問。R 包向 R 添加新功能,通過這些包,研究人員可在同行之間輕松地共享計算方法。一些包的范圍有限,另一些包代表著整個統計學領域,還有一些包含最新的技術發展。事實上,統計學中的許多發展最初都是以 R 包形式出現的,然後才應用到商用軟體中。
在撰寫本文時,R 下載站點 CRAN 上已有 4,701 個 R 包。其中,單單那一天就添加了 6 個 R 。萬事萬物都有一個對應的 R 包,至少看起來是這樣。
我在使用 R 時會發生什麼?
備註:本文不是一部 R 教程。下面的示例僅試圖讓您了解 R 會話看起來是什麼樣的。
R 二進制文件可用於 Windows、Mac OS X 和多個 Linux? 發行版。源代碼也可供人們自行編譯。
在 Windows? 中,安裝程序將 R 添加到開始菜單中。要在 Linux 中啟動 R,可打開一個終端窗口並在提示符下鍵入 R。您應看到類似圖 1 的畫面。
圖 1. R 工作區
在提示符下鍵入一個命令,R 就會響應。
此時,在真實的環境中,您可能會從一個外部數據文件將數據讀入 R 對象中。R 可從各種不同格式的文件讀取數據,但對於本示例,我使用的是來自 MASS 包的 michelson 數據。這個包附帶了 Venables and Ripley 的標志性文本 Modern Applied Statistics with S-Plus(參見 參考資料)。michelson 包含來自測量光速的流行的 Michelson and Morley 實驗的結果。
清單 1 中提供的命令可以載入 MASS 包,獲取並查看 michelson 數據。圖 2 顯示了這些命令和來自 R 的響應。每一行包含一個 R 函數,它的參數放在方括弧 ([]) 內。
清單 1. 啟動一個 R 會話
2+2 # R can be a calculator. R responds, correctly, with 4.
library(「MASS」) # Loads into memory the functions and data sets from
# package MASS, that accompanies Modern Applied Statistics in S
data(michelson) # Copies the michelson data set into the workspace.
ls() # Lists the contents of the workspace. The michelson data is there.
head(michelson) # Displays the first few lines of this data set.
# Column Speed contains Michelson and Morleys estimates of the
# speed of light, less 299,000, in km/s.
# Michelson and Morley ran five experiments with 20 runs each.
# The data set contains indicator variables for experiment and run.
help(michelson) # Calls a help screen, which describes the data set.
圖 2. 會話啟動和 R 的響應
現在讓我們看看該數據(參見 清單 2)。輸出如 圖 3 中所示。
清單 2. R 中的一個箱線圖
# Basic boxplot
with(michelson, boxplot(Speed ~ Expt))
# I can add colour and labels. I can also save the results to an object.
michelson.bp = with(michelson, boxplot(Speed ~ Expt, xlab=」Experiment」, las=1,
ylab=」Speed of Light – 299,000 m/s」,
main=」Michelson-Morley Experiments」,
col=」slateblue1″))
# The current estimate of the speed of light, on this scale, is 734.5
# Add a horizontal line to highlight this value.
abline(h=734.5, lwd=2,col=」purple」) #Add modern speed of light
Michelson and Morley 似乎有計劃地高估了光速。各個實驗之間似乎也存在一定的不均勻性。
圖 3. 繪制一個箱線圖
在對分析感到滿意後,我可以將所有命令保存到一個 R 函數中。參見清單 3。
清單 3. R 中的一個簡單函數
MyExample = function(){
library(MASS)
data(michelson)
michelson.bw = with(michelson, boxplot(Speed ~ Expt, xlab=」Experiment」, las=1,
ylab=」Speed of Light – 299,000 m/s」, main=」Michelsen-Morley Experiments」,
col=」slateblue1″))
abline(h=734.5, lwd=2,col=」purple」)
}
這個簡單示例演示了 R 的多個重要功能:
保存結果—boxplot() 函數返回一些有用的統計數據和一個圖表,您可以通過類似 michelson.bp = … 的負值語句將這些結果保存到一個 R 對象中,並在需要時提取它們。任何賦值語句的結果都可在 R 會話的整個過程中獲得,並且可以作為進一步分析的主題。boxplot 函數返回一個用於繪制箱線圖的統計數據(中位數、四分位等)矩陣、每個箱線圖中的項數,以及異常值(在 圖 3 中的圖表上顯示為開口圓)。請參見圖 4。
圖 4. 來自 boxplot 函數的統計數據
公式語言— R(和 S)有一種緊湊的語言來表達統計模型。參數中的代碼 Speed ~ Expt 告訴函數在每個 Expt (實驗數字)級別上繪制 Speed 的箱線圖。如果希望執行方差分析來測試各次實驗中的速度是否存在顯著差異,那麼可以使用相同的公式:lm(Speed ~ Expt)。公式語言可表達豐富多樣的統計模型,包括交叉和嵌套效應,以及固定和隨機因素。
用戶定義的 R 函數— 這是一種編程語言。
R 已進入 21 世紀
Tukey 的探索性數據分析方法已成為常規課程。我們在教授這種方法,而統計學家也在使用該方法。R 支持這種方法,這解釋了它為什麼仍然如此流行的原因。面向對象性還幫助 R 保持最新,因為新的數據來源需要新的數據結構來執行分析。InfoSphere? Streams 現在支持對與 John Chambers 所設想的不同的數據執行 R 分析。
R 與 InfoSphere Streams
InfoSphere Streams 是一個計算平台和集成開發環境,用於分析從數千個來源獲得的高速數據。這些數據流的內容通常是非結構化或半結構化的。分析的目的是檢測數據中不斷變化的模式,基於快速變化的事件來指導決策。SPL(用於 InfoSphere Streams 的編程語言)通過一種範例來組織數據,反映了數據的動態性以及對快速分析和響應的需求。
我們已經距離用於經典統計分析的電子表格和常規平面文件很遠,但 R 能夠應付自如。從 3.1 版開始,SPL 應用程序可將數據傳遞給 R,從而利用 R 龐大的包庫。InfoSphere Streams 對 R 的支持方式是,創建合適的 R 對象來接收 SPL 元組(SPL 中的基本數據結構)中包含的信息。InfoSphere Streams 數據因此可傳遞給 R 供進一步分析,並將結果傳回到 SPL。
R 需要主流硬體嗎?
我在一台運行 Crunchbang Linux 的宏碁上網本上運行了這個示例。R 不需要笨重的機器來執行中小規模的分析。20 年來,人們一直認為 R 之所以緩慢是因為它是一種解釋性語言,而且它可以分析的數據大小受計算機內存的限制。這是真的,但這通常與現代機器毫無干係,除非應用程序非常大(大數據)。
R 的不足之處
公平地講,R 也有一些事做不好或完全不會做。不是每個用戶都適合使用 R:
R 不是一個數據倉庫。在 R 中輸入數據的最簡單方式是,將數據輸入到其他地方,然後將它導入到 R 中。人們已經努力地為 R 添加了一個電子表格前端,但它們還沒流行起來。電子表格功能的缺乏不僅會影響數據輸入,還會讓以直觀的方式檢查 R 中的數據變得很困難,就像在 SPSS 或 Excel 中一樣。
R 使普通的任務變得很困難。舉例而言,在醫療研究中,您對數據做的第一件事就是計算所有變數的概括統計量,列出無響應的地方和缺少的數據。這在 SPSS 中只需 3 次單擊即可完成,但 R 沒有內置的函數來計算這些非常明顯的信息,並以表格形式顯示它。您可以非常輕松地編寫一些代碼,但有時您只是想指向要計算的信息並單擊滑鼠。
R 的學習曲線是非平凡的。初學者可打開一個菜單驅動的統計平台並在幾分鍾內獲取結果。不是每個人都希望成為程序員,然後再成為一名分析家,而且或許不是每個人都需要這么做。
R 是開源的。R 社區很大、非常成熟並且很活躍,R 無疑屬於比較成功的開源項目。前面已經提到過,R 的實現已有超過 20 年歷史,S 語言的存在時間更長。這是一個久經考驗的概念和久經考驗的產品。但對於任何開源產品,可靠性都離不開透明性。我們信任它的代碼,因為我們可自行檢查它,而且其他人可以檢查它並報告錯誤。這與自行執行基準測試並驗證其軟體的企業項目不同。而且對於更少使用的 R 包,您沒有理由假設它們會實際生成正確的結果。
結束語
我是否需要學習 R?或許不需要;需要 是一個感情很強烈的詞。但 R 是否是一個有價值的數據分析工具呢?當然是的。該語言專為反映統計學家的思考和工作方式而設計。R 鞏固了良好的習慣和合理的分析。對我而言,它是適合我的工作的工具。