2017年11月2日 星期四

素人眼中的R


#本文為《傻瓜也會寫論文》∕《傻瓜也會跑統計》之補充資料#

說到R這個統計軟體,這幾年可以說是赫赫有名。它就像統計界的Mac;比起用一般電腦,用Mac感覺就是很高級,所以好萊塢電影中如果出現電腦,十之八九都是Mac。同樣地,「痾?你還在用SPSS啊,我現在都用R耶……」,聴到別人講出這句話時也會有一種他比較厲害的感覺。

《傻瓜也會跑統計》的作者之一鄭中平老師是R的高手,著有《R在行為科學之應用》一書;另一個作者顏志龍則是比較不學無術,直到最近才去觸碰R。因此,趁著還算是入門者時提出一些學習過程中的感受,也分享給想學習R的人參考。以下觀點是顏志龍個人的想法,不代表本粉專兩位小編的共同立場。
R具有某些特點,這些特點通常就是它的優點……但往往也是它的缺點。

(一)免費:
嚴格來說,這其實不太算是優點。因為像SPSS這類軟體的確是貴到讓人買不下手,但即使如此,大家多半都還是能弄到不用付錢的版本……我的意思是說學校有買,所以不必付費就能使用。因此R是免費的,這件事對多數人來說不算什麼大優點。

(二)輕盈:
當你安裝SPSS時,大部份統計功能都會被安裝進電腦中;R則不是這樣,它只安裝主程式,主程式包含的統計功能不多(所以R很輕盈),未來需要跑某種統計時,才去某個地方把需要的統計程式(稱之為「套件」)安裝進去。R可以想像成一艘空的航空母艦,因為它很空所以跑得很快;如果這次任務是要去暗殺某個元首,就把海豹部隊和黑鷹直昇機放上去,其它武器不帶;如果這次是要轟炸某個城市,就只帶上轟炸機,其它不帶。SPSS則是把所有形形色色的各種可能武器,不管用不用得到都帶上。只帶必要武器的R和載著一堆武器的SPSS比起來,跑得更快。因此佔用的電腦資源少、運作更有效率,這是很多人認為R的優點。
但是其實對一般人來說這差別不大。現在正常的電腦設備,灌SPSSR會多佔幾百Mb的硬碟容量,比一隻謎片來得少(這……我是聽學生說的);而如果只是執行一般的資料分析,使用SPSSR的速度不會有什麼差異。除非是某些特種行業……不對,是特殊行業,例如統計學家、計量學家,R的效率或許是重要的,否則對一般人來說這個分別應該沒什麼意義。
               此外,SPSS全包對一般人來說有它的好處,不用再另外去想(或去找)需要外掛的統計套件。反之,使用R你就得常處理這個問題;不過常用的統計套件也就是那幾個,所以熟悉後其實並不困難。

(三)自由度
R,與其說是個統計軟體,不如說是一套程式語言,就像C語言、Fortran等等一樣。因此它的自由度很高,如果熟悉這套語言,你可以創造出各種自己需要的統計程序。但這也表示它比較原始,對多數人來說並不可親。除了語法有難度外,大寫、小寫、逗號、括弧等等,一點小細節都錯不得;就像寫程式一樣,進入門檻不算容易。如果你問一般人,你願意為了跑統計而特別去學一套程式語言嗎?他可能會回答:「我只是跟鄉民進來看熱鬧的……」因此,如果你只是想要跑統計,卻要為此專程去學一套程式語言,cp值不算很高。這一點尤其對一輩子只寫一篇論文的研究生,甚至無特殊統計需求的學術專業人士來說可能都是如此;除非願意花很多精力去把R學到一種精熟的境界,如果只是學個半調子,不如使用更具親和力的統計套裝軟體來得比較實際。

(四)可以處理各種疑難雜症
這是我認為R最大的優點。SPSS雖然內建了很多統計功能,但有些進階或少見的統計功能,它就沒有提供。R則是需要時才載入統計套件,而多數統計方法都能找到它的套件;因此R可以完成很多SPSS可能作不到的統計分析。這一點我個人非常推。
        然而,這些能處理各種疑難雜症的套件是怎麼來的呢?是由全世界的好心人寫完後上傳分享給大家用的。這時候問題就來了,既然是非官方的,所以不能保證一定對,你使用某個套件來跑統計,只能選擇相信他寫得沒錯。這和SPSS不太一樣,SPSS要付費,所以它必須為程式錯誤負責,但寫出R的各種統計套件的人是免費給你用的,愛用不用你家的事,就算有錯他也不需要對你交代。
此外,由於這些套件是由不同的人寫出來的,跑R的過程中也比較可能出現各種奇奇怪怪的狀況。例如統計套件和R的程式版本之間有衝突;統計套件之間彼此有衝突;統計套件和你的電腦設定之間有衝突等等……這些都是本文作者在用R跑文字雲過程中的痛苦和經驗。

(五)我的建議
綜上所述,我個人的建議如下。除非你對寫程式很感興趣,或是將來立志要進入特種行業……是特殊行業,如資料處理的專家,否則能交給慣用統計軟體(如SPSSSAS等)作的事,還是交給慣用統計軟體,不能作的事才交給R。這樣可以避過很多R可能帶給你的困擾。
        例如,R也可以幫你作反向題轉換、加總分數,但這些事交給SPSS就好。R可以幫你跑ANOVAt檢定、探索性因素分析,但這些事SPSS也都作得到,交給SPSS就好。只有當SPSS作不到時才使用R。例如你想跑結構方式式,而基礎版的SPSS作不到。此時,就是R出場的好時機。你先用SPSS把資料整理好(能交給SPSS的都交給SPSS),再用R讀取資料進行結構方程式的分析。如果這樣作,那麼原則上R你只需要學會兩件事:(1)如何從R中讀進SPSS資料。(2)如何找到R的進階統計套件,並且寫出所需要的語法。這兩件事情都很簡單,多數R的書中都有記載。
                結論是:你可以帶著一艘裝載著常用武器的航空母艦(SPSS)出征;然後當發現這些武器不夠力時,叫出召喚獸(R)痛電對方。

PS.如果你讀完本文後,不同意我的觀點,表示你不是R的素人;請多多包涵;我說了,這只是「素人眼中的R」。

沒有留言:

張貼留言