我為什麼要在Excel和R之間徘徊——數據分析者的基本修養

這兩天興緻上頭,暫時把數據分析的學習拋諸腦後,竟然去寫Calligraphy的文章去了。

但是,我也沒有偷懶。就在這幾天之內,我想了一些問題。

其中有一個很重要的,就是對於立志成為Data Scientist的朋友而言(或者有志於投研、量化、諮詢這些會間接接觸數據分析的朋友),他們究竟需要怎樣的知識結構?

一、知識結構:Data Scientist的能力值

就像FIFA裡面球員的能力值雷達圖一樣,每個人的能力都有所側重。

圖片是網上隨便找來的。可以看出這是一位進攻強,速度快,技術與身體都很不錯的球員。與此相對的,其防守和意識是明顯的短板。我們甚至可以推測:他應該是一名鋒線球員。

不得不說,每個球員都希望像C羅一樣,六項能力近乎全滿。然而畢竟人的精力與天賦都有邊界,不是每個人都能夠達到完美。所以更多的人會成為角色球員,側重於一種或幾種能力。畢竟足球講究團隊合作,各種專精於單項的角色球員相互配合,每個人能力互補,才是實現球隊實力最大化的最佳策略。

在數據分析當中,也有幾項基本能力,可以組成類似的雷達圖。我在此借鑒一下Rachel Schutt《數據科學實戰》的說法,把數據科學家的能力分成七大塊,分別是:數據可視化,機器學習,數學,統計學,計算機科學,溝通技巧,領域知識。為了方便,我們乾脆把數據可視化和統計學歸在一起,統稱為統計學,這樣就變成了六項能力——

機器學習,數學,統計學,計算機科學,溝通技巧,領域知識

  • 機器學習:機器學習是計算機科學裡的一個分支,與人工智慧密切相連。我們憑藉自己的智慧進行統計分析時,無非是通過各種手段來尋找數據的規律和其中內蘊的邏輯。而這些方法可以統統教給計算機,讓計算機代替人腦進行很多繁重的工作。

  • 數學能力:應該主要指的是「提供演算法的能力」。也就是說,當實際問題被提出之後,精通數學的數據科學家應當能夠提出一套完整的演算法,讓問題得以量化,並能夠順利地交給計算機解決。比如提出目標「依據上市公司財務指標,建立一個有效的選股模型」,那麼數據科學家們應當合力建立基本的假設,指定每項指標對於選股結果的可能影響,再由數學家們分別量化,建立演算法,開始模型回測和改善。

  • 統計學能力:這應該是所有數據科學家必須具備的能力。統計學包括描述統計推斷統計兩大塊,描述統計主要包括實驗設計、調查設計、探索性數據分析和數據可視化等內容,而推斷統計內容比較複雜,內容很難統一概括,只能概括為回歸分析、時序分析、最優化分析等等模塊化的內容。

    描述統計
    的知識大多很直觀。相對應的,在實務當中,描述統計一般用來實現複雜數據分析系統和簡單外界的對接。具體來講,通過實驗/調查設計,獲取第一手數據;通過探索性數據分析,探索數據的基本特徵(均值、離散程度等),並尋找分析的切入點;通過數據可視化,把數據分析結果以簡單易懂的方式呈現出來。

    推斷統計
    的知識則抽象、艱深、模塊化。除掉參數估計、假設檢驗之類基礎性的內容,其餘的回歸分析、方差分析、時序分析之類,都是基於基本的原理之下的固定套路,分別構成獨立的模塊。但他們的根本目標都是一致的:探索數據內或數據間的相關、因果、差異或是特定規律。正因為推斷統計的可量化性,所以大數據分析會更加離不開它。正因為其抽象性,所以必須有艱深的數學知識和完善的計算機知識輔助推斷統計的開展。
  • 計算機科學:計算機是當前幾乎所有工業和商業項目最重要的生產工具。基於數學和統計學的任何構想,都必須藉由計算機科學加以實現。而用於數據分析的計算機工具也是五花八門,包括但不限於R, Python, SAS, SPSS, Stata, Excel。

回想一下我們的題目,為什麼要把R和Excel進行對立?我們待會開始說明。

  • 溝通技巧:掌握溝通技巧,意味著你的客戶跟你的交流會愉悅而高效,也意味著你能夠有效地把信息在團隊內部進行傳遞。畢竟一方面,客戶對於數據分析必然不如你的團隊了解,你對於客戶也不會知根知底;另一方面,團隊里的碼農和數學家可能都是nerds,彼此聊天會產生牛頭不對馬嘴的感覺。所以,溝通技巧是串聯團隊的重要技巧,也是與客戶深入接觸、共謀成事的專業能力。

  • 領域知識:任何數據分析,都必須首先基於合理的邏輯。例如,我們一般不會拿企業的資產對負債和所有者權益的時間序列數據進行回歸,因為任何稍有財務常識的人都知道資產=負債+所有者權益,這樣的回歸分析往往無法產生任何有意義的結果。

每一個Data Scientist都不可能全知全能。在做到具體項目的時候,每項具體數據的解讀可能會成為巨大的難題,需要該領域內的專家來闡述它們之間的內在邏輯。否則,數據分析很可能會生產出毫無意義的結果,甚至是錯誤的結果。

六項能力解釋完了。但值得一提的是

首先這六項能力的重要性並不一致。就像球員的進攻能力和防守能力,究竟哪個比較重要?我們無法回答這個問題。

其次,六項能力之間有很多交叉。例如,球員的進攻能力和速度,毫無疑問是相關的,速度更快的球員往往進攻能力會更強。對於Data Scientist而言,數學能力更強,往往意味著統計學能力也會更強。

最後,六項能力很難量化。我們需要耗費很多精力,才能定下一個考評體系,給每一位Data Scientist的每項能力進行精確的打分。譬如,John的數據可視化能力為什麼要給70分?他比數據可視化得到65分的Mike強在哪裡?所以說,更多時候,這六項能力只是一個大致的參考。

舉例說明。我心目中,數據分析團隊的Leader應該是這樣的:

各項能力都趨近完美,才能成為Leader。而尤其突出的溝通技巧,保證了Leader在客戶面前能夠表現出色,也能很好地為下屬分配任務。對於領域知識的高度理解加上出色的統計學知識,讓Leader能夠輕鬆理解項目的數據邏輯,不至於帶領團隊誤入歧途。略遜的機器學習、計算機科學和數學能力,可以讓團隊中的數學家和高級程序員們加以補足。

理想的高級程序員,則往往沒有Leader那樣完美的數據。但他們必須擁有完美的機器學習和計算機科學能力,從而能夠獨立擔當起任何演算法的實現。而作為理科生,他們的數學和統計學也不能太差。至於領域知識和溝通技巧,反倒不是那麼重要了。(沒有黑的意思。。)

我也給自己做了一個主觀評分,大致如下圖:

得益於還算豐富的實習經歷,所以我的溝通技巧還可以。而統計學是我的專業,相對不會太差。關於領域知識,由於本科學習的是金融學,所以也只限於金融領域。至於計算機科學和機器學習能力,由於剛開始學習不久,基本還是荒原狀態。

能力值分布,很大程度上決定了你在數據分析團隊內可能所處的位置。

我反思自己的能力值:目前來講短板非常嚴重。如果要進入數據分析團隊,可能也只能打打雜,或者在培訓之後成為客戶經理。毫無疑問,如果我想改變這一處境,就必須付出大量針對性的努力。

目前來看,對我而言最合適的方向是成為團隊內的客戶經理。這意味著我必須把溝通技巧、領域知識和數據可視化能力進一步提高,同時補上機器學習和計算機科學的短板。而若能夠進一步提高,也許終有一日,能夠勝任leader。

二、我為什麼要把R和Excel對立起來?

經過剛剛的分析,大家可能發現,我們是在用能力值建立模型。模型指向的目標,則是一個非常重要的話題:Data Scientist的職業規劃。

模型中,Data Scientist的不同「方向」被區分開來、對立起來。碼農和客戶經理走的不會是同一條路,它們的能力值側重點也就截然相反。

這就是我今天一直在思考的內容:R和Excel的對立,不僅是數據分析工具的對立,也是數據分析「方向」的對立

對於資深的Data Scientist而言,R和Excel的區別早就瞭然於心。R和Python,Javascript等「寫代碼」的數據分析工具,註定是要被貼上這樣的標籤:後台的、抽象的、艱深的、專業化的。而Excel,作為處於鄙視鏈最底端的工具,它的標籤應該是:直觀的,易於上手的,應用廣泛的,便於交流的

我的職業領域偏向於金融。只要看一看金融領域的招聘、實習信息,就能知道這個行業的風向是怎樣。

隨便在這幾天推送的實習信息里截了幾張圖。這絕對不是有偏樣本,因為所有提到了軟體Skill方面要求的,我全都截過來了。

當然,由於現在不是校招高峰期,所以沒有找到相關的招聘信息。(其實就是懶的去找)

很顯然,Excel能力才是真正的基本能力,乃至於根本能力。而R,SAS這些逼格滿滿的神器,可能只被當做是「附加能力」了。

三、既然Excel這麼重要,我為什麼還要徘徊於R和Excel之間?

這就是一個技能樹的問題了。

我們的職業規劃,需要參照的方向非常之多。比如,2015年高考之際,正值牛市轉熊、千股跌停的關頭。7月家長們填志願的時候,估計在看到財經類院校的時候,心裡都會咯噔一下,依稀想起上天台的恐怖。雖然沒有數據支持,但是講道理,財經類院校的分數理應比往年會有一定的下降。

雖然我們都知道,我國牛熊大致7年一循環。也就是說,在2015年高考的少年少女們讀完本科+研究生,畢業實習的當口,正好能趕上下一波牛市。但是大部分普通人並不會有這樣的考慮。

我們以上帝視角來看,會說這些沒有遠見的人們「目光短淺」。但是誰也不比誰強,這恰恰是我們每天也在犯的錯誤——

是否Excel在當下火爆、好用,就只學習Excel呢?是否R能力在畢業之際,無法產生一票勝訴的壓倒性優勢,就不學習R呢?

很顯然,最終的答案,還是一片混沌。R能力在職業規劃的道路上,終究是有一席之地的。終有一天,我們要脫離每日只和Excel打交道的日子,轉而對著Rstudio敲起代碼(或者對著SAS,對著Python界面等等)。這種時候,我們也許已經成為了數據分析團隊中的Leader,或是高級程序員之類。

一切都要取決於職業規劃。

還是搬出自己的例子。雖然我學了一段時間的R(明明才一個多月。。),然而我明顯地發現,現在這個時間節點上,提高Excel能力,會對我有更多的幫助。理性人考慮邊際量,我應該會選擇短期內補一補Excel。

但長期而言,R的學習並沒有必要中斷。通過在項目和日常的數據分析情境中,以R的思維進行思考,外加閑暇時讀一讀R的書籍和專欄文章,能夠讓我的R能力有長足的提升。

寫這一篇文章呢,也是希望每一位學習數據分析的朋友,要從結果出發看問題。不要盯著一項技能不放,而要參照自己的真實需要。一切學習都不是盲目的,而要服從於自己的職業規劃。或者我們放到更高層次來說,任何時候,「應該學習什麼知識」都是一件需要多動腦子的事情。

如果文章的觀點對你有用,麻煩點個贊吧~

歡迎持續關注我的數據分析學習筆記,目錄在下面——

關於數據分析學習筆記的計劃(以及目錄)


推薦閱讀:

簡單數據分析
【數據獲取】文件讀取與R數據集
創建你自己的模型演算法-Gradient Descent
Learn R | 交互可視化之Plotly包(三)
R語言流量結構分布圖——炫酷和弦圖

TAG:数据分析 | R编程语言 | MicrosoftExcel |