機器學習(machine learning)在經濟學領域是否有應用前景?

本題已收錄至知乎圓桌 ? 對弈人工智慧,更多關於李世石對戰人工智慧的解讀歡迎關注討論。


沒有人邀請我,強行來答。

我最近正在一家公司兼職,做一些「大數據」與傳統銀行業相關的事情,在這個問題上還是有很多想法的。當然,由於簽了保密協議,具體的業務內容和技術細節恕不透露。

按照我回答問題的一貫風格,在回答問題之前,先把「定義」這個問題搞清楚。什麼是大數據?

我想這個問題不同的人有不同的理解,我理解的大數據有這麼幾個層次:

1、數據量大。這個「大」也有不同層次的理解,要麼觀測數非常多,要麼乾脆直接是「全樣本」數據。這一點上,對傳統的數據存儲、計算等都提出了比較高的要求,比如分散式的存儲和計算。這是「大數據」的第一個「大」。

2、變數多,維數高。這是一個「幸福的煩惱」。對於每一個觀測,我們有很多很多維度可以描述清楚這個個體。對於每個人,在社會經濟生活中的一舉一動,都有可能被某台伺服器忠實的記錄著,這個潛在的變數規模是不可想像的。甚至,隨著文本挖掘、圖像識別等技術的進步,我們可以從各種自己想要的維度來挖掘出需要的變數。這是「大數據」的第二個「大」。

3、圍繞著海量數據、高維數據的數據分析方法。包括但不僅限於傳統的統計方法、回歸、Logistic、SVM、決策樹、聚類、PageRank、神經網路......等各種各樣正在飛速發展的數據挖掘方法。

以上的理解是我個人的理解,如果有什麼不對的地方,歡迎討論。

題主的問題是機器學習在經濟學中的應用,但是在這個答案裡面,我想更多的討論一下,「大數據」與經濟學的相互影響。

先說「大數據」對經濟學的影響吧。至少現在來看,雖然越來越多的經濟學家開始關注機器學習、大數據,但是對經濟學的影響其實有限。但是未來呢?不好說。

首先是,機器學習的很多方法本來就是經濟學家獲得數據的潛在來源。比如文本挖掘的演算法,據我所知,已經有人將其應用在了論文中(文章並未公開,所以保密)。這些海量的數據使得經濟學的很多領域,比如對社交網路的研究成為了可能。未來當經濟學家對某個問題感興趣的時候,得益於「大數據」的發展,可能更少的受到數據的制約。

與此同時,從方法論的角度來看,大數據無疑也會對經濟學形成衝擊。如果未來的經濟學不得不與「大數據」打交道,那麼相應的,方法論上必須有相應的發展。傳統的經濟學最為關注的莫過於識別問題,在「大數據」的條件下,如何仍然能得到清晰的識別?可能在理論上還存在著大量的空白。比如,在Chetty等人的這篇文章:多而無效工具變數下的識別與推斷 - EconPaper 中,討論了當IV隨著樣本量的增加而增加,且IV都無效的情況下的識別,其實這兩個問題,無論是哪一個,都是「大數據」應用在經濟學時很可能出現的問題。「大數據」對經濟學方法論的影響可能已經開始了。

其實我的這個兼職經歷讓我更想談的,是經濟學在「大數據」上的應用。

必須要認識到的是,「大數據」中的很大一部分,都是「人」在社會生活中留下的痕迹,而使用數理框架分析「人」的行為,本來就是經濟學的專長。

經濟學與「大數據」是有本質區別的,比如,經濟學更關注「因果推斷」以及「識別」問題,而「大數據」似乎對「因果」推斷並不感興趣。比如,《大數據時代》中提出,「更好:不是因果關係,而是相關關係」。

我的經驗和看法並沒有那麼的偏激,在業界的應用中,「因果關係」與「識別」並沒有那麼的重要,然而也並非「相關關係」那麼簡單。我更喜歡的說法,是《信號與雜訊》中的說法,重要的是如何剔除數據中的雜訊。

雜訊可能有很多來源,比較輕微的,比如數據質量問題。很多情況下,在「大數據」與經濟學傳統的「小數據」之間,存在著一個quantitative-qualitative tradeoff,也就是數據數量與數據質量之間的tradeoff。這種tradeoff本身就存在於經濟學中,比如工業企業資料庫量大,但是質量還是上市公司的數據質量高;人口普查數據量大,但是質量還是專門的調查質量高。在「大數據」中,為了解決某個問題,會碰到雖然手頭上數據很多,但是其實關鍵變數是缺失的,而其他變數都有不小的雜訊。

另外一個更嚴重的問題是,如果缺乏嚴謹的統計、經濟學的培訓,可能對數據生成過程(DGP)並不理解,導致結構性的失誤。這種雜訊帶來的就是系統性的誤差了。這可能不僅僅是「過擬合」,而是「誤擬合」了。

舉一個再簡單不過的例子。有個公司(並非我供職的公司)幫銀行做一個甄別理財產品潛在客戶的工作,他們使用歷史數據,看哪些人更有可能購買理財產品。很簡單的,一個Logistic回歸也許就能解決問題。銀行明確告訴他們,存款餘額5w元以下的不考慮,然而公司做出來的結果是,明明餘額在5w以下的也有可能購買產品,為啥就不要存款餘額5w以下的呢?

其實這個問題非常簡單,做這個分析的人並沒有仔細考慮清楚這個問題的數據生成過程(DGP),並沒有真正的理解數據,所以無腦的這樣做下來,這樣的結果並不奇怪。比如在這裡,我們真正關心的變數應該是這個人的「真實財富」,雖然這個人在這家銀行的存款餘額為5w以下,但是可能這個用戶之所以在這裡開了儲蓄卡,僅僅是因為持有這家銀行的信用卡。所以5w以下的客戶的確非常有可能購買產品。所以這裡的存款餘額變數,本來應該是一個「狀態變數」,但是實際上,如果仔細考慮DGP,應該是一個「結果變數」。如何排除雜訊?可能得建模開卡行為、餘額行為才可以。

實際上,以上的這些建模思路,都是計量經濟學反覆培訓的,bad control,measurement error, sample selection等等,無一不是在讓我們更仔細的思考數據生成過程。在「大數據」中,雖然不重視因果和識別,但是以上問題如果不重視,雖然得到了相關性,但是得到的更多的是被雜訊嚴重污染過的相關性。

因為關注的是如何去雜訊,而非嚴謹的因果和識別,因而很多計量上常用的方法,可能也就沒有太大必要了。但是計量經濟學的建模思路和機器學習的方法結合起來,反而可能收到奇效。比如上面的問題,一個簡單的解決思路也許就是結合聚類方法與Logistic回歸,就能將模型做的更好。實際上在我的工作過程中,就有過為了剔除雜訊,將傳統的機器學習、計量經濟學的方法重新加以組合而產生的「新方法」。

其實總結下來,更精鍊的說法就是,經濟學、計量經濟學的方法,可以在原來的模型中加入新的「結構」,結構的加入可以矯正由於人的種種行為而給數據帶來的雜訊,解決「過擬合」、「誤擬合」的問題,提高模型的精度。

所以上海財大經濟學院今年新開了一個「大數據經濟學」的專業。我並不是非常了解這個專業的具體培養方式,但是我個人覺著是個非常不錯的嘗試。

以上純屬個人看法。


轉載兩篇最近剛看到的科普文,作者是美國的「明星」經濟學家 Susan Athey。

(Source: Google DeepMind)

What will be the impact of machine learning on economics?
From Quora by Susan Athey on January 27, 2016
- Source: https://www.quora.com/What-will-be-the-impact-of-machine-learning-on-economics

The short answer is that I think it will have an enormous impact; in the early days, as used 「off the shelf,」 but in the longer run econometricians will modify the methods and tailor them so that they meet the needs of social scientists primarily interested in conducting inference about causal effects and estimating the impact of counterfactual policies (that is, things that haven』t been tried yet, or what would have happened if a different policy had been used). Examples of questions economists often study are things like the effects of changing prices, or introducing price discrimination, or changing the minimum wage, or evaluating advertising effectiveness. We want to estimate what would happen in the event of a change, or what would have happened if the change hadn』t taken place.

As evidence of the impact already, Guido Imbens and I attracted over 250 economics professors to an NBER session on a Saturday afternoon last summer, where we covered machine learning for economists, and everywhere I present about this topic to economists, I attract large crowds. I think similar things are true for the small set of other economists working in this area. There were hundreds of people in a session on big data at the AEA meetings a few weeks ago.

Machine learning is a broad term; I』m going to use it fairly narrowly here. Within machine learning, there are two branches, supervised and unsupervised machine learning. Supervised machine learning typically entails using a set of 「features」 or 「covariates」 (x』s) to predict an outcome (y). There are a variety of ML methods, such as LASSO (see Victor Chernozhukov (MIT) and coauthors who have brought this into economics), random forest, regression trees, support vector machines, etc. One common feature of many ML methods is that they use cross-validation to select model complexity; that is, they repeatedly estimate a model on part of the data and then test it on another part, and they find the 「complexity penalty term」 that fits the data best in terms of mean-squared error of the prediction (the squared difference between the model prediction and the actual outcome). In much of cross-sectional econometrics, the tradition has been that the researcher specifies one model and then checks 「robustness」 by looking at 2 or 3 alternatives. I believe that regularization and systematic model selection will become a standard part of empirical practice in economics as we more frequently encounter datasets with many covariates, and also as we see the advantages of being systematic about model selection.

Sendhil Mullainathan (Harvard) and Jon Kleinberg with a number of coauthors have argued that there is a set of problems where off-the-shelf ML methods for prediction are the key part of important policy and decision problems. They use examples like deciding whether to do a hip replacement operation for an elderly patient; if you can predict based on their individual characteristics that they will die within a year, then you should not do the operation. Many Americans are incarcerated while awaiting trial; if you can predict who will show up for court, you can let more out on bail. ML algorithms are currently in use for this decision in a number of jurisdictions. Goel, Rao and Shroff presented a paper at the AEA meetings a few weeks ago using ML methods to examine stop-and-frisk laws. See also the interesting work using ML prediction methods in the session I discussed on 「Predictive Cities」: 2016 ASSA Preliminary Program where we see ML used in the public sector.

Despite these fascinating examples, in general ML prediction models are built on a premise that is fundamentally at odds with a lot of social science work on causal inference. The foundation of supervised ML methods is that model selection (cross-validation) is carried out to optimize goodness of fit on a test sample. A model is good if and only if it predicts well. Yet, a cornerstone of introductory econometrics is that prediction is not causal inference, and indeed a classic economic example is that in many economic datasets, price and quantity are positively correlated. Firms set prices higher in high-income cities where consumers buy more; they raise prices in anticipation of times of peak demand. A large body of econometric research seeks to REDUCE the goodness of fit of a model in order to estimate the causal effect of, say, changing prices. If prices and quantities are positively correlated in the data, any model that estimates the true causal effect (quantity goes down if you change price) will not do as good a job fitting the data. The place where the econometric model with a causal estimate would do better is at fitting what happens if the firm actually changes prices at a given point in time—at doing counterfactual predictions when the world changes. Techniques like instrumental variables seek to use only some of the information that is in the data – the 「clean」 or 「exogenous」 or 「experiment-like」 variation in price—sacrificing predictive accuracy in the current environment to learn about a more fundamental relationship that will help make decisions about changing price. This type of model has not received almost any attention in ML.

In some of my research, I am exploring the idea that you might take the strengths and innovations of ML methods, but apply them to causal inference. It requires changing the objective function, since the ground truth of the causal parameter is not observed in any test set. Statistical theory plays a bigger role, since we need a model of the unobserved thing we want to estimate (the causal effect) in order to define the target that the algorithms optimize for. I』m also working on developing statistical theory for some of the most widely used and successful estimators, like random forests, and adapting them so that they can be used to predict an individual』s treatment effects as a function of their characteristics. For example, I can tell you for a particular individual, given their characteristics, how they would respond to a price change, using a method adapted from regression trees or random forests. This will come with a confidence interval as well. You can search for my papers on arXiv.org e-Print archive; I also wrote a paper on using ML methods to systematically asses the robustness of causal estimates in the American Economic Review last year. I hope that some of these methods can be applied in practice to evaluate randomized controlled trials, A/B tests in tech firms, etc. in order to discover systematically heterogeneous treatment effects.

Unsupervised machine learning tools differ from supervised in that there is no outcome variable (no 「y」): these tools can be used to find clusters of similar objects. I have used these tools in my own research to find clusters of news articles on a similar topic. They are commonly used to group images or videos; if you say a computer scientist discovered cats on YouTube, it can mean that they used an unsupervised ML method to find a set of similar videos, and when you watch them, a human can see that all the videos in cluster 1572 are about cats, while all the videos in cluster 423 are about dogs. I see these tools as being very useful as an intermediate step in empirical work, as a data-driven way to find similar articles, reviews, products, user histories, etc.

Is ML "just" prediction? What can tech companies and traditional ML take from economists" focus on causal inference?
From Quora by Susan Athey on January 27, 2016
- Source: https://www.quora.com/Is-ML-just-prediction-What-can-tech-companies-and-traditional-ML-take-from-economists-focus-on-causal-inference

This is a great question. I covered a lot of this in my answer to another Quora question: What will be the impact of machine learning on economics?

I think that "just prediction" can be more important than you think in social science, but ultimately I think that methods need to modified somewhat to give the best answers for causal questions. ML methods optimize for an objective; you need to pick the RIGHT objective for your question, and minimizing mean-squared error on a test sample is often not the right one.

ML practitioners might do well to learn more about instrumental variables and other techniques for causal inference; in the small data setting, my husband Guido Imbens together with Don Rubin have a great 2015 book summarizing statistical methods for causal inference developed over the last few decades.

In tech firms, a problem like click prediction is ultimately about counterfactuals. How many clicks WOULD a link get if you put it in the top position? I think that these models might be improved by incorporating insights from the econometrics literature about how to estimate causal effects and simulate counterfactuals; although those models can"t be used off the shelf at the scale tech firms need, and further economists have a standard of "perfection" for causal inference that probably can"t be attained in practice.


上個做過的案例供討論。這篇文章是working paper,幾年前寫了後就放在那裡了,是我寫的一本書的一部分(A Disaggregate Analysis of China"s Regional Development)。如果有同行在這個領域有興趣,可以看看是否摘出一部分一起寫個中文的發表。

插播:文中熱感地圖的製作請參看我的另一篇回答:怎麼在 Excel 上做數據地圖? - 錢糧衚衕的回答

聲明:本人是經濟研究領域,機器學習只能說是初學者。當時是在研究中國區域間收入不平等的時候遇到一些問題,所以考慮引用機器學習來嘗試開拓新的思路。這裡想說的是無論是機器學習或是傳統計量,模型與方法可以很複雜,但是研究的課題仍然可以很傳統。不能因為想用機器學習而用,一切研究的出發點應該是學科本身的問題,循序漸進,不能忘本。

數據:對於機器學習本身,樣本量不大,個人覺得這也是某些經濟學領域使用機器學習的限制。中國200多個地級市與區域的50個經濟,社會發展,交通,通信與金融等基礎設施的變數,時間跨度1992年到2008年。基本所有數據都可以從國家統計局獲得(數據的獲取可參考:從事經濟、金融工作的人都是通過什麼渠道獲得數據資源,運用什麼軟體來分析行業狀態和經濟走勢的? - 錢糧衚衕的回答)。

使用機器學習的原因:開始是因為想看看中國省間與省內最新的GEM指標(廣義熵,可分解),然而一方面部分學者已經做過相關的分析,同時我個人覺得局限於省級行政劃分的收入不平衡比較傳統不夠靈活而且高度概括;很多時候人們看收入 (或經濟發展程度) 的不平衡不光是跟附近城市的比較,而會說比如一個省會城市的居民,他自己的收入會跟其他省會或者直轄市的比較,看看差距在哪裡。因此,打散中國的行政劃分,以更小的行政區域為單位(比如地級市 - 因為這裡不僅追求空間單位上要盡量小,還要考慮數據的可獲得性)重新組合出不同的空間cluster,分析這些cluster間的收入差距就變得有意思了,或者說起碼結果會有一定啟發性。

於是,先做一個簡單的散點圖,看看省內地級市之間的收入差距和driver:

這張圖簡單的解釋就是:垂直虛線的左邊的城市群基本都是省會城市或單列市,而這些城市是導致省內收入不均的主要因素。

由此,我的基本假設是省間收入的不平衡是長久的話題,而省內的不同質其實已經逐漸超過省間。基於這點,我想採用神經網路 (artificial neural network) 的一種,Self-organizing Map (SOM),來幫我重新分類中國城市(盡量同質),而我不告訴這個系統我的分類標準是什麼,我需要做的只是設置學習參數,把整理乾淨 (normalized) 的數據扔進去。這個模型 (SOM-Ward-clustering, quantization error ~0.0026) 的好處是可以生成漂亮的熱感地圖,有助於分析理解,尤其是這種地理經濟類的研究。

引用網上的一個過程圖解釋SOM的演算法(龐雜的數據點逐步unfold到二維分布圖上):

最終SOM的結果

可以看到樣本城市群被分為三類,黃色代表較高發展程度的城市群,粉色代表中等,藍綠色代表較低。之後的任務就是根據每個集群的屬性特點,用經濟學解釋,編故事寫文章了。好玩的是,我們還可以把這些重新分類的城市群畫成地級市級別的中國地圖,這樣就更顯而易見,有利於經濟學分析與解釋:


我的專欄——機器學習、大數據與經濟學研究 - 大石頭路73號 - 知乎專欄


對於這個問題,經濟學大牛 Varian 已經寫論文說過了,知乎上有人給了論文鏈接,我在這裡簡單介紹一下這篇文章的內容。

Varian, 2014, Big data: New tricks for econometrics

這裡有一篇中文的介紹:

【香樟論壇】大數據:計量經濟學的新技巧

其實這篇介紹的挺詳細。但如果我全都照搬過來,豈不是很沒有創造性?所以我決定重新寫一篇。。。

論文作者是范里安(Hal Varian),學過經濟學的應該都知道這位大名鼎鼎的美國經濟學家,著有經濟學教材《微觀經濟學:現代觀點》,就算沒讀過應該也聽說過。他現在已經從加州大學伯克利分校退休,現任 Google 首席經濟學家,參與設計了 Google 廣告關鍵詞拍賣系統等項目。

范里安為 Google 設計的「AdWords Select」系統背後的經濟學原理是怎樣的? - 谷歌 (Google)
首席經濟學家范里安:谷歌搖錢樹 -- 經濟金融網 -- 傳送門

看看他在這篇論文腳註中的作者介紹,感覺還是挺酷的:

Hal Varian is Chief Economist, Google Inc., Mountain View, California, and Emeritus Professor of Economics, University of California, Berkeley, California.

不知道是不是受到 Google 程序員們的影響,范里安現在對機器學習和大數據很感興趣。

范里安認為,計算機技術現在已經深入到經濟學研究中。傳統的統計和計量方法,比如回歸分析,當然是不錯的研究方法,但如今數據量越來越大,而正好符合研究要求的數據已然有限,同時大數據量讓變數之間的關係變得更加靈活,傳統計量中的線性以及大多非線性模型可能都無法滿足這一要求,所以經濟學家需要尋找新的研究方法。范里安認為,機器學習理論中的決策樹(decision trees),support vector machines,深度學習(deep lerning)等技術,可以更加有效率的處理複雜的關係。


所以,他在文中的思路可以簡單總結為:

- 經濟學要與數據打交道,傳統分析用的是樣本等小數據

- 隨著經濟交流的日益頻繁和技術水平的提高,數據越來越大,大數據出現

- 傳統經濟學分析方法在分析大數據時顯得捉襟見肘

- 我們需要新的分析方法

- 機器學習技術可以在這方面幫助我們

這篇文章開始給讀者介紹了一些處理數據的方法和軟體,以及大型 IT 公司的處理方法,這還是挺有用的。比如在處理百萬條的大型數據時需要用到 SQL,數據清理可以用 OpenRefine 和 DataWrangler。

不過計量經濟學和機器學習當然是有區別的,作者認為:

Data analysis in statistics and econometrics can be broken down into four categories: 1) prediction, 2) summarization, 3) estimation, and 4) hypothesis testing. Machine learning is concerned primarily with prediction.
[...]
Machine learning specialists are often primarily concerned with developing high-performance computer systems that can provide useful predictions in the presence of challenging computational constraints.
[...]
Data science, a somewhat newer term, is concerned with both prediction and summarization, but also with data manipulation, visualization, and other similar tasks.

計量和統計學主要關注四個方面:預測、總結、估計和假設檢驗。機器學習主要關注預測。數據科學側重預測和總結,也涉及數據處理、可視化等。


計量經濟學關注因果關係,會遇到內生性等問題,而機器學習則會遇到「過度擬合」(overfitting)的困擾,但機器學習可以關注到計量和統計中樣本以外的數據。

那麼機器學習如何運用到經濟學中呢?作者舉了幾個例子。

一個是分類和回歸樹分析(Classification and regression trees,簡稱CART),這一方法適用於分析一件事情是否發生以及發生概率的時候,即被解釋變數是0或1。計量上通常用 logit 或 probit 回歸。

范里安這裡用的是例子是泰坦尼克號沉船事件中不同人群的死亡概率。作者用機器學習理論中的 CART 方法(R 軟體中有這個包 rpart),把船上的乘客按照艙位等級和年齡進行分類。

這是樹模型(Tree model)的分類,艙位分一、二、三等,一等最好,三等最差。然後做成樹型的樣式:

最上面一層把乘客按照艙位分開,左邊是三等艙,右邊是一等和二等。三等艙(很有可能窮人居多)死亡概率較高,501個人中有370個遇難。接下來把右邊一等和二等的乘客按照年齡分類,左邊是大於等於16歲的,右邊是小於16歲的兒童。先看兒童,這類人群的倖存概率很高,36個人中有34個都活下來了。左邊把年齡16歲及以上的人又分為兩類,左邊的二等艙和右邊的一等艙。二等艙233人中有145人遇難,一等艙276個成年人中174人倖存下來。我算了一下,四類人從左到右的倖存概率分別是26%、37%、63%和94%。所以在泰坦尼克沉船時,兒童和一等艙的人容易活下來

接下來重點關注一下乘客的年齡分布,下圖是各年齡段的倖存概率以及置信區間:

從圖中可以看出,10歲所有的兒童和60歲左右的人倖存概率更高


同時,作者又用傳統的計量方法 logit 模型回歸了一下,解釋變數是年齡,被解釋變數是倖存(1)。結果如下:

年齡(age)與倖存為顯著的負相關,即年齡越小越可能在沉船時活下來,但是係數太小,影響很弱。總結這兩種方法作者認為,是否倖存並不取決於年齡,而是乘客是否是兒童或者60歲左右的人,這一點在回歸分析中無法反映出來


類似的機器學習的方法還有一個叫conditional inference tree,這裡同樣是運用泰坦尼克的數據製作的圖:

這幅圖把乘客進行了更加細化的分類,添加了性別(sex)一項。pclass 是艙位登記,age 年齡,sibsp 為船上兄弟姐妹和配偶的數量。最下面的刻度中黑色是這一人群的倖存比例。可以得出的結論是婦女和兒童的倖存率最高。(這是因為在沉船的時候大家大喊「讓小孩和女人先走」嗎。。?)

上面這個例子比較簡單,但也足夠明了,我認為它比較清楚的解釋了機器學習和計量的差別:機器學習更加關注相關性和預測,所以得出的結論是某個年齡段的人群倖存率更高。而計量更加關注因果關係,根據上面的 logit 模型,很難說是年齡導致了倖存,很明顯還有很多其他變數沒有被考慮進去,比如個人體質等等,或許年齡根本就不是計量經濟學家在這裡主要考察的變數。而且如果加入交叉項也許會有新的結論。所以簡單的說就是模型設定的問題。具體哪種方法更好,還要看具體研究的問題是什麼。

此外,作者還舉了其他機器學習的例子,如 boosting, bagging, bootstrap, bayes,這裡就不詳細說了。文中的幾個例子挺值得一看,可以了解一下機器學習的基本方法。比如利用機器學習研究一家公司投放廣告是否有效,傳統的計量方法是需要設計實驗,設立處理組和對照組,但成本較高。


范里安認為過去幾十年計算機科學家與統計學家已經進行了許多卓有成效的合作,他對機器學習在經濟學,特別是計量經濟學和統計學的應用十分看好,所以范里安給經濟學專業的學生一條建議:

[…] my standard advice to graduate students these days is 「go to the computer science department and take a class in machine learning.

「學經濟學的都去計算機系修一下機器學習的課程吧!」


范里安一方面是傳統意義上的經濟學家,另一方面由於在 Google 工作的經歷,使得他對機器學習技術有了更深的了解,他的觀點值得一看。

當然,這也只是他的一家之言,畢竟機器學習和計量經濟學在方法、目的上都有較大差別,機器學習是否會真的大範圍進入到經濟學領域還很難說。不過,計算機技術越來越多的被運用到經濟學研究當中已經是不爭的事實,而且也是趨勢,現在如果不懂點編程技術(至少是計量軟體),很難在經濟學這個行當走的更遠。雖然現在有不少功成名就的經濟學家和教授在寫代碼方面並不精通,但每個時代對人們的要求都有不同,當年計算機技術還沒有普及,而他們接受的教育實際上已經比之前的人有了長足進步。我想,今天這個時代對經濟學研究者的要求之一就是掌握一定的編程技術吧,雖然不用達到寫應用程序那個等級,但也得有較高的搜集數據和處理數據的能力。

所以,如果你只是打算學完經濟學就去公司當白領,那麼寫代碼技術可能不是必需的,反而用好word, excel, powerpoint 可能更有用(IT、金融等對寫代碼有一定要求的行業或崗位除外)。但假如想在學術圈待下去並且有所建樹,那麼從長遠考慮,現在就趕緊去學點編程技術,提高自己的數據處理能力吧。

現在網上這類資源很多,比如coursera上John Hopkins大學很有名的數據科學的課程

https://www.coursera.org/specializations/jhudatascience?utm_medium=courseDescripTop
大部分都帶中文字幕

我自己也在聽這個公開課。另外我也會在YouTube找一些數據處理的課程,YouTube 在這方面的優點是資源很豐富(中國的視頻網站在這方面的資源太匱乏),基本上只要你能想到的軟體教程都會有。缺點是質量參差不齊,而且有些視頻不完整,有的視頻發布者更新一段時間就停止了。相比而言,coursera 的質量和完整度都要更勝一籌。所以 coursare 和 YouTube 結合起來還是不錯的。


其他參考資料:

計量經濟學、時間序列分析和機器學習三者有什麼區別與聯繫? - 經濟學


【3月28日更新】

最近逛Quora的時候看到斯坦福的教授Jonathan Levin也被問到了這個問題,擬譯如下:

【問題】

從短期(2-5年),以及更長遠的角度來看,機器學習將如何影響經濟學?

【回答】

Machine learning methods are really powerful for fitting predictive models and for doing classification on large-scale, high-dimensional data. These are the data we increasingly use in economics. So I think there』s no doubt many machine learning methods will get used more and more often.


機器學習方法強大的地方在於擬合預測模型,還有對高維度的大數據進行分類。而這種類型的大數據,我們在經濟學中正在越來越多地應用。所以我認為毫無疑問, 機器學習方法會被越來越頻繁地使用。


One area that"s going to get a lot of attention is combining machine learning with causal inference. A big fraction of empirical microeconomics is about finding ways to exploit natural experiments, whether by using instrumental variables, regression discontinuity, matching, difference-in-difference estimators, or other methods.

未來有一個領域將會得到很多的關注,那就是將機器學習與因果推理相結合。實證微觀經濟學有很大一部分是尋找不同方法來利用自然實驗,不管是使用工具變數,回歸的不連續性,匹配,倍差法,還是別的研究方法。


Large-scale data has great advantages in terms of finding natural experiments (to take a trivial example, if you want to measure how a July 15 price change affected sales, it』s much more powerful to have daily sales data than monthly sales data). But for the most part economists trying to estimate causal models on large-scale data are using traditional methods like fixed effects linear regression. Having some easy to use alternatives would probably make a significant difference in empirical research.


而大數據的好處在於發現自然實驗。舉個簡單的例子,如果你想要測量七月十五日的價格變動如何影響銷售,那麼擁有日銷售數據就比月銷售數據更加有用。不過大多數經濟學家在使用大數據測量因果模型時,還在使用傳統的方法,比如固定效應線性回歸。 有一些易於使用的替代選項很可能會給實證研究帶來顯著的影響。


I actually think one way machine learning (or really, more data) will affect the field is that after a while it will re-energize economic theory. The reason is that we are going to generate all kinds of new interesting facts – about individual behavior, labor markets, firm productivity, the macro-economy – and having a bunch of new and possibly disconnected or contradictory facts makes a great starting point for new models and theories.


實際上,我認為機器學習(或者說,更多的數據)改變這個學科的方式之一是為經濟理論研究重新注入能量。原因是,我們能夠產生出各種新奇有趣的事實發現——關於個體行為,勞動力市場,企業生產力,宏觀經濟——而大量看似脫節甚至矛盾的發現,也可以成為新模型和新理論的出發點。

【原帖鏈接】
How will machine learning affect economics?

【原答案】
借用Hansen大神的句式,我猜Machine Learning在經濟學中的應用前景大概是:
『It allows you to do something without having to understand anything.』

註:
Lars Hansen 談起自己的研究時,往往會這樣概括:『It allows you to do something without having to do everything.』
Lars Hansen: Doing Something Without Doing Everything


機器學習在經濟學領域最大的應用前景必然是量化投資。基於大數據和機器學習的互聯網徵信固然重要,但畢竟只是一個支持性的領域,不能直接產生收益。基於大數據和機器學習的宏觀經濟分析也很重要,但也只是提供決策建議。又有什麼能比機器學習直接影響投資決策,直接控制幾十億甚至上百億的資金更有吸引力的呢?

前段時間去對外經貿大學做過一次分享,介紹了國內幾隻大數據基金的框架和原理,已經算得上機器學習和大數據在公募量化投資領域第一步的嘗試,再次跟大家分享出來,希望大家能體會一下機器學習在量化投資的應用前景。

一、模型框架

第一張介紹了傳統量化多因子選股模型個部分的組成,以及對應的機器學習工程的各個階段。

  • 全部A股:樣本空間
  • 全部A股到選樣空間:ETL過程
  • 選樣空間到初篩股票池:基於規則的樣本過濾
  • 多因子提取:特徵工程
  • 量化引擎:模型構建與訓練
  • 量化引擎到指數成分股:模型應用

可以看到多因子選股模型已經是一套比較完備的機器學習系統了,在各個階段,使用不同的模型和演算法,就成為了不同的量化模型。這裡著重介紹一下特徵工程階段所選的特徵,傳統的多因子模型所採用的因子主要包括兩大類:

  • 財務因子(市盈率、市凈率、市銷率、資產市值比、主營業務收入增長率、凈利潤增長率、EPS 增長率、總資產增長率等)
  • 市場驅動因子(選取短期收益率、長期收益率、特定波動率、交易量變化、自由流通市值)。

二、大數據基金的特點

大數據基金對於機器學習和大數據進行了進一步的應用,主要也在於特徵工程這一步,區別於傳統特徵工程中僅採用「財務因子」和「市場驅動因子」,大數據因子的範圍非常廣泛,可以說只要有能夠量化的影響一隻股票的因素,都可以抽象成大數據因子。

下面就給大家列一下國內目前幾隻大數據基金採用的非常有意思的特徵:

  • 淘寶大數據100

基於淘寶相關行業的選樣空間,博時基金與螞蟻金服生成了「聚源電商大數據因子」用於多因子量化模型的選股。其中支付寶金融信息服務平台提供網上消費類統計型趨勢特徵數據。根據所得行業投研指標,綜合考察行業的景氣度,包括:成長、價格、供需情況等,得到行業景氣度排名。進而根據景氣度對行業內股票給予相應評分,得到聚源電商大數據因子得分。

  • 百發100指數——搜索因子

對樣本空間的股票分別計算最近一個月的搜索總量和搜索增量,分別記為總量因子和增量因子;對搜索總量因子和增量因子構建因子分析模型,計算每期個股的綜合得分,記為搜索因子;

  • 雪球智選大數據100——雪球熱度因子

首先,根據第二步得到的雪球智選組合,計算待選樣本的智選組合覆蓋度;其次,根據個股的智選組合覆蓋度,對股票給予相應評分,記為個股的雪球熱度因子得分。

  • 南方新浪大數據——新浪大數據因子

新浪財經頻道下的頁面點擊量,微博的正負面文章報道、新聞報道影響。

  • 銀聯大數據指數——銀聯行業大數據因子

基於銀聯消費類統計型趨勢特徵數據經加工得到行業投研指標;其次,根據所得行業投研指標,綜合考察行業的景氣度,包括:消費金額、交易次數等,得到行業景氣度排名;最後,根據景氣度對行業內股票給予相應評分,得到行業大數據因子得分。


從上面大數據因子的選擇我們就可以看到,這些特徵本身都是分值類特徵,特徵生成的過程就用到了機器學習的模型,而這些因子又作為量化選股模型的輸入。


三、量化引擎的選擇

對於多因子選股模型來說,量化引擎部分當然就是我們說的機器學習模型了。選股模型既可以是一個回歸問題——在最後的成分股中選出得分最高的N支股票;也當然可以是一個分類問題——選出最接近目標的那個股票分類組。所以各種機器學習模型也都各顯神通。

  • Adaboost 當然是在這個場景中最直觀的模型了,因為各個因子本身就是一個弱分類器,大數據因子更是一個較強的分類器,如何將這些弱分類器融合在一起成為一個強分類器就是Adaboost的使命了。
  • Logistic Regression 這種萬能的演算法模型當然也是適用的,將每個因子看作一個feature,然後得到一個score這種事情,Logistic Regression是最拿手的,但對於金融數據來說,樣本量畢竟太少,更適合解決大樣本簡單問題的Logistic Regression用在選股這種實際問題中總歸還是有點naive。。
  • SVM 作為史上最強分類器,當然是解決這種小樣本複雜問題的利器,於是各家的量化選股模型確實有不少採用SVM的。

肯定還有很多人想起DNN,HMM等模型,但很遺憾,稍微分析就可以知道在量化選股這個實際問題上這類模型並不那麼適用,還是用在高頻、擇時、趨勢等問題的解決上比較好,在此就不再展開了。


以上的經驗有我在解決實際問題的一些積累,更多的還是跟金融行業的同學交流討論的結果,但更多的技術細節就不便透露了。


說了這麼多,我覺得大家肯定能夠體會到,機器學習在經濟金融領域最激動人心的應用還是在於量化投資,還是那句話,又有什麼能比機器學習直接影響投資決策,直接控制幾十億甚至上百億的資金更有吸引力的呢?

最後還是要做個廣告啊,想和我們更多交流,歡迎關注我的微信公眾號「科學投資」:kexuetouzi


最近看來發展非常迅猛,於是決定答一下這道題……

其實機器學習的一些簡單的想法早就被吸收到計量經濟學裡了,什麼splines啊,k-fold cross validation啊這些,一直有人在用。但這幾年隨著Athey和Imbens等人的力推確實吸引了越來越多人的眼球。

目前的應用主要是兩方面,計量理論上的和實證上的。理論上主要就是把預測的部分都改用機器學習來實現,典型的例子比如估計propensity score,估計工具變數的一階段。因為這些環節不涉及因果性,只要預測準確就好,所以機器學習就特別有優越性。現在比較熱門的話題是用機器學習來估計潛在結果Y(0),比如在實驗裡面通過哪些協變數來預測控制組的結果,Lasso在這個環節就大顯身手了。還有一個方向是用機器學習來看處理效應(ATE)的異質性,Athey和Imbens之前有一篇文章,普林斯頓的政治學家Imai也做過類似的工作,可以計算如何分配資源以便讓競選活動的效果最大化。

實證研究里機器學習往往是起到輔助的作用。比如Olken和他的四個合作者2012年發的一篇QJE,通過衛星照片測量印尼的森林砍伐率。方法就是先找一幫人手動把一部分照片上不同顏色的區塊歸到各個類別,基於這個訓練集估計一個regression tree,再用這個tree模型對剩下的色塊分類。再比如做文本分析的時候,先僱人進行詞語分類,再以此為標準讓機器接下去做。類似的套路已經非常常見了。

機器學習帶來實質性改變的研究,我所知道的一個是哈佛大學穆納萊森團隊的工作,他們根據美國公民病歷上顯示的初始癥狀和最終的病情,預測最優的診斷方式,發現高風險的病人往往沒有得到足夠的診斷,而低風險的病人卻進行了太多的診斷;還有一個是東北大學的政治學家做的,用推特文本來預測美國各個州的民調數據。

想到的大概是這些,今後再補充……


題目說的是經濟學中的應用前景,不是量化投資中的應用,很多人上來偏題了,經濟學和量化投資的差別顯而易見。業界賺錢即可,但我認為經濟學的意義在於解釋和制定政策。
我的觀點是有一定的應用但是非常有限,並且已經挖不出什麼東西來了。原因如下:
1. 機器學習在經濟學和金融學的學術論文里出現的越來越多了。其實如果把線性回歸,logistic回歸和簡單的神經網路也當做機器學習的話,那很早以前就有了。但是如同很多答案里寫到的,機器學習注重相關性,而經濟學往往是注重因果性的,機器學習模型並不能給出因果性。經濟學數據很多是時間序列,時間序列具有天然的因果性。

2.簡單的神經網路(2層)以及logistic回歸,都具有可解釋性的,而SVM以及深度學習這種模型都是難以解釋的。決策樹類模型雖然可以給出一個清晰的分類順序,但是第一,樹類模型往往沒找到最優解,今年informs上Bertsimas提出了optimal tree,但是第二,即便找到了最優解,決策樹給出的模型給出的分類法則也會出現匪夷所思的分類方法。

3.據我所看過的幾篇非top的論文來看(如果有關於機器學習的論文發在econ top 5上還望告知),機器學習模型在經濟學的應用存在『套』的情況,即選定一攬子模型,每個模型又有幾種kernel,在不同的參數環境上測,然後選出最好的一個模型一組參數,說你看機器學習是有用的。而傳統的經濟學論文呢?提出一個模型,然後在一個參數環境下測,結果還不錯,用其他的參數環境測試穩健性,發現穩健,說明現象存在。雖然一篇經濟學論文在前期一樣要去試模型,但是試模型的範圍要小得多,每一個模型都是有邏輯的。另外從成文的思路上看,也可以看出經濟學的邏輯和機器學習是不一樣的。

4.經濟學不光是分類和推斷。畢竟你不能指望機器學習告訴你最佳的基準儲備金率。

5.說完不適合的地方再說說我見過的應用,以下都指發出過論文的應用。首先是過去20年不斷出現的拿機器學習做交易策略的paper,這些paper有一個共同的特點,就是模型簡陋,用的數據非常敏感還裝模作樣的做cross validation...畢竟如果真能賺錢他們還發什麼paper┑( ̄Д  ̄)┍第二種是做非時序的,比如衡量資產風險,這種模型往往比較穩健。由於經濟學的論文是需要insight的,所以往往會對因子的重要程度做個排序,當然這種分析跟傳統計量的顯著性檢驗等等相比感覺沒什麼說服力。

6.所以綜上所述,其實機器學習能給出的經濟學insight很有限,大多數論文有灌水的嫌疑,而且這種灌水的機會越來越少了。今年informs上Stanford MSE的教授Kay Giesecke有一個Large-Scale Loan Portfolio Selection,已經用了深度學習+GPU計算,得出來的結果跟簡單機器學習比,在大多數情況下也就提升了3-5%的準確率吧。。。

所以我個人是很不看好機器學習在經濟學上的應用的,當然在業界管你用什麼方法賺錢呢O(∩_∩)O~


作為從業人員且來灌個水,應該說Fintech是這兩年很火的概念,在Fintech里很重要的一部分就是利用機器學習進行大數據風控----至少在你能看到的互聯網金融企業里大半部分都是這麼標榜的。所以我就從這個領域切入來回答下這個問題吧。
其實把機器學習、大數據、風險控制這幾個字組合在一起的時候,我是在發出低沉的笑:大家都只是想看到自己想看到的信息,不管它對與錯,不管自己懂不懂。就像知乎點贊一樣,我相對多的部分贊給了我完全不懂的天體物理,不懂,沒法驗證信息的真偽,只知道看起來很牛逼。互聯網金融企業給公眾的介紹的時候當然也有類似的效應:風控是金融企業的核心之一,大數據又是極其時髦的字眼,機器學習更是在AlphaGo之後為公眾所熟知,結合在一起給投資者滿滿地信心。但拉句仇恨的說,這每一個詞背後都是極其專業的學科,大部分投資人看得懂個屁!鄙人做了七年風控,但不敢說自己精於風控;做了兩年數據,覺得還沒入門!
很多人是不是覺得大數據風控,就是在一堆海量數據的基礎上,用上最時髦的演算法,然後就可以把風控做好了。不排除很多同行招了一堆數據科學家,也在實驗新的機器學習的演算法。但是在絕大部分風控場景里,幾乎沒有領導會因為某個機器學習演算法的AUC高就直接採用它。雖然GBDT和LR融合的效果很不錯,但是我們的很大部分時間都在做特徵工程。雖然我們自己私下裡會去嘗試著用SVM去做分類,很多大數據風控比賽也有用神經網路,但是在實際業務中我們還是會回到LR,不說部署的問題,把SVM的超平面距離轉化成預測的概率就是個難題,ScikitLearn里的輸出的Probability也是基於一篇實驗性的論文而已,而傳統的邏輯回歸不但可以輸出概率,而且可以進行刻度轉換,得到每一個變數每一個分組對最後score的影響,從業務上說很好解釋,也很好發現問題。
如果上一段是在說機器學習演算法發展和實際應用的不同步,那麼下面就來說說機器學習本身的局限性。我不確定是否有一天銀行可以做到機器學習來控制放款,但至少可以肯定,我的的工作暫時還不會全部被CS專業的人搶走,modelor光有演算法還不夠,風控的業務經驗還能作為老本吃幾年。舉個例子,假設有個變數叫夜生活頻繁程度,在統計量看,IV很高,而且表現出良好的單調性,用還是不用。我相信我的大部分同行在搞清楚它背後所有包含的信息之前是不會貿然讓它進模型的。是這群人交際廣業務繁忙?是這群人年輕喜歡夜夜笙歌?是這群人有很大部分特殊從業?和地區交叉看一看?和收入交叉看一看?在業務層面總會有很多的思考,而不是靠機器學習給出個結論說,這群人就是越多夜生活越bad。
所以回到題主的問題,這個領域當然有得發展了,但是我的想法是,既然是作用於經濟,那你要意識到經濟的主體永遠是人,人的行為人的決策人的動機,當我們用機器學習去擬合人的行為的時候,一定不要迷信演算法,人是Bias,人是Variance。
最後說句中性的話,前途是光明的,道路是漫長的。


用Python和機器學習炒股賺錢,想想是個挺誘人的應用

瑞士日內瓦的一位金融數據顧問 Ga?tan Rickter 發表過一篇文章,介紹了他利用 Python 和機器學習來幫助炒股的經驗,其最終成果的收益率跑贏了長期處於牛市的標準普爾 500 指數。雖然這篇文章並沒有將他的方法完全徹底公開,但已公開的內容或許能給我們帶來如何用人工智慧炒股的啟迪。機器之心對本文進行了編譯介紹,代碼詳情請訪問原文,地址在此。

我終於跑贏了標準普爾 500 指數 10 個百分點!聽起來可能不是很多,但是當我們處理的是大量流動性很高的資本時,對沖基金的利潤就相當可觀。更激進的做法還能得到更高的回報。

這一切都始於我閱讀了 Gur Huberman 的一篇題為《Contagious Speculation and a Cure for Cancer: A Non-Event that Made Stock Prices Soar》的論文。該研究描述了一件發生在 1998 年的涉及到一家上市公司 EntreMed(當時股票代碼是 ENMD)的事件:

「星期天《紐約時報》上發表的一篇關於癌症治療新葯開發潛力的文章導致 EntreMed 的股價從周五收盤時的 12.063 飆升至 85,在周一收盤時接近 52。在接下來的三周,它的收盤價都在 30 以上。這股投資熱情也讓其它生物科技股得到了溢價。但是,這個癌症研究方面的可能突破在至少五個月前就已經被 Nature 期刊和各種流行的報紙報道過了,其中甚至包括《泰晤士報》!因此,僅僅是熱情的公眾關注就能引發股價的持續上漲,即便實際上並沒有出現真正的新信息。」

在研究者給出的許多有見地的觀察中,其中有一個總結很突出:

「(股價)運動可能會集中於有一些共同之處的股票上,但這些共同之處不一定要是經濟基礎。」

我就想,能不能基於通常所用的指標之外的其它指標來劃分股票。我開始在資料庫裡面挖掘,幾周之後我發現了一個,其包含了一個分數,描述了股票和元素周期表中的元素之間的「已知和隱藏關係」的強度。

我有計算基因組學的背景,這讓我想起了基因和它們的細胞信號網路之間的關係是如何地不為人所知。但是,當我們分析數據時,我們又會開始看到我們之前可能無法預測的新關係和相關性。

選擇出的涉及細胞可塑性、生長和分化的信號通路的基因的表達模式

和基因一樣,股票也會受到一個巨型網路的影響,其中各個因素之間都有或強或弱的隱藏關係。其中一些影響和關係是可以預測的。

我的一個目標是創建長的和短的股票聚類,我稱之為「籃子聚類(basket clusters)」,我可以將其用於對沖或單純地從中獲利。這需要使用一個無監督機器學習方法來創建股票的聚類,從而使這些聚類之間有或強或弱的關係。這些聚類將會翻倍作為我的公司可以交易的股票的「籃子(basket)」。

首先我下載了一個數據集:http://54.174.116.134/recommend/datasets/supercolumns-elements-08.html,這個數據集基於元素周期表中的元素和上市公司之間的關係。

然後我使用了 Python 和一些常用的機器學習工具——scikit-learn、numpy、pandas、matplotlib 和 seaborn,我開始了解我正在處理的數據集的分布形狀。為此我參考了一個題為《Principal Component Analysis with KMeans visuals》的 Kaggle Kernel

import numpy as np
import pandas as pd
from sklearn.decomposition
import PCA
from sklearn.cluster
import KMeans
import matplotlib.pyplot as plt
import seaborn as sb

np.seterr(divide="ignore", invalid="ignore")
# Quick way to test just a few column features

# stocks = pd.read_csv("supercolumns-elements-nasdaq-nyse-otcbb-general-UPDATE-2017-03-01.csv", usecols=range(1,16))

stocks = pd.read_csv("supercolumns-elements-nasdaq-nyse-otcbb-general-UPDATE-2017-03-01.csv")

print(stocks.head())

str_list = []
for colname, colvalue in stocks.iteritems():
if type(colvalue[1]) == str:
str_list.append(colname)
# Get to the numeric columns by inversion

num_list = stocks.columns.difference(str_list)

stocks_num = stocks[num_list]

print(stocks_num.head())

輸出:簡單看看前面 5 行:

概念特徵的皮爾遜相關性(Pearson Correlation)。在這裡案例中,是指來自元素周期表的礦物和元素:

stocks_num = stocks_num.fillna(value=0, axis=1)

X = stocks_num.values
from sklearn.preprocessing import StandardScaler
X_std = StandardScaler().fit_transform(X)

f, ax = plt.subplots(figsize=(12, 10))
plt.title("Pearson Correlation of Concept Features (Elements Minerals)")
# Draw the heatmap using seaborn

sb.heatmap(stocks_num.astype(float).corr(),linewidths=0.25,vmax=1.0, square=True, cmap="YlGnBu", linecolor="black", annot=True)
sb.plt.show()

輸出:(這個可視化例子是在前 16 個樣本上運行得到的)。看到元素周期表中的元素和上市公司關聯起來真的很有意思。在某種程度時,我想使用這些數據基於公司與相關元素或材料的相關性來預測其可能做出的突破。

測量「已解釋方差(Explained Variance)」和主成分分析(PCA)

已解釋方差=總方差-殘差方差(explained variance = total variance - residual variance)。應該值得關注的 PCA 投射組件的數量可以通過已解釋方差度量(Explained Variance Measure)來引導。Sebastian Raschka 的關於 PCA 的文章對此進行了很好的描述,參閱:http://sebastianraschka.com/Articles/2015_pca_in_3_steps.html

# Calculating Eigenvectors and eigenvalues of Cov matirx

mean_vec = np.mean(X_std, axis=0)
cov_mat = np.cov(X_std.T)
eig_vals, eig_vecs = np.linalg.eig(cov_mat)
# Create a list of (eigenvalue, eigenvector) tuples

eig_pairs = [ (np.abs(eig_vals[i]),eig_vecs[:,i]) for i in range(len(eig_vals))]
# Sort from high to low

eig_pairs.sort(key = lambda x: x[0], reverse= True)
# Calculation of Explained Variance from the eigenvaluestot = sum(eig_vals)
var_exp = [(i/tot)*100 for i in sorted(eig_vals, reverse=True)]
cum_var_exp = np.cumsum(var_exp)
# Cumulative explained variance# Variances plot

max_cols = len(stocks.columns) - 1plt.figure(figsize=(10, 5))
plt.bar(range(max_cols), var_exp, alpha=0.3333, align="center", label="individual explained variance", color = "g")
plt.step(range(max_cols), cum_var_exp, where="mid",label="cumulative explained variance")
plt.ylabel("Explained variance ratio")
plt.xlabel("Principal components")
plt.legend(loc="best")
plt.show()

輸出:

從這個圖表中我們可以看到大量方差都來自於預測主成分的前 85%。這是個很高的數字,所以讓我們從低端的開始,先只建模少數幾個主成分。更多有關分析主成分合理數量的信息可參閱:http://setosa.io/ev/principal-component-analysis

使用 scikit-learn 的 PCA 模塊,讓我們設 n_components = 9。代碼的第二行調用了 fit_transform 方法,其可以使用標準化的電影數據 X_std 來擬合 PCA 模型並在該數據集上應用降維(dimensionality reduction)。

pca = PCA(n_components=9)
x_9d = pca.fit_transform(X_std)

plt.figure(figsize = (9,7))
plt.scatter(x_9d[:,0],x_9d[:,1], c="goldenrod",alpha=0.5)
plt.ylim(-10,30)
plt.show()

輸出:

這裡我們甚至沒有真正觀察到聚類的些微輪廓,所以我們很可能應該繼續調節 n_component 的值直到我們得到我們想要的結果。這就是數據科學與藝術(data science and art)中的「藝術」部分。

現在,我們來試試 K-均值,看看我們能不能在下一章節可視化任何明顯的聚類。

K-均值聚類(K-Means Clustering)

我們將使用 PCA 投射數據來實現一個簡單的 K-均值。

使用 scikit-learn 的 KMeans() 調用和 fit_predict 方法,我們可以計算聚類中心並為第一和第三個 PCA 投射預測聚類索引(以便了解我們是否可以觀察到任何合適的聚類)。然後我們可以定義我們自己的配色方案並繪製散點圖,代碼如下所示:

# Set a 3 KMeans clustering

kmeans = KMeans(n_clusters=3)
# Compute cluster centers and predict cluster indices

X_clustered = kmeans.fit_predict(x_9d)# Define our own color map

LABEL_COLOR_MAP = {0 : "r",1 : "g",2 : "b"}
label_color = [LABEL_COLOR_MAP[l] for l in X_clustered]
# Plot the scatter digram

plt.figure(figsize = (7,7))
plt.scatter(x_9d[:,0],x_9d[:,2], c= label_color, alpha=0.5)
plt.show()

輸出:

這個 K-均值散點圖看起來更有希望,好像我們簡單的聚類模型假設就是正確的一樣。我們可以通過這種顏色可視化方案觀察到 3 個可區分開的聚類。

當然,聚類和可視化數據集的方法還有很多,參考:https://goo.gl/kGy3ra

使用 seaborn 方便的 pairplot 函數,我可以以成對的方式在數據框中自動繪製所有的特徵。我們可以一個對一個地 pairplot 前面 3 個投射並可視化:

# Create a temp dataframe from our PCA projection data "x_9d"

df = pd.DataFrame(x_9d)
df = df[[0,1,2]]
df["X_cluster"] = X_clustered
# Call Seaborn"s pairplot to visualize our KMeans clustering on the PCA projected data

sb.pairplot(df, hue="X_cluster", palette="Dark2", diag_kind="kde", size=1.85)
sb.plt.show()

輸出:

構建籃子聚類(Basket Clusters)

你應該自己決定如何微調你的聚類。這方面沒有什麼萬靈藥,具體的方法取決於你操作的環境。在這個案例中是由隱藏關係所定義的股票和金融市場。

一旦你的聚類使你滿意了,你就可以設置分數閾值來控制特定的股票是否有資格進入一個聚類,然後你可以為一個給定的聚類提取股票,將它們作為籃子進行交易或使用這些籃子作為信號。你可以使用這種方法做的事情很大程度就看你自己的創造力以及你在使用深度學習變體來進行優化的水平,從而基於聚類或數據點的概念優化每個聚類的回報,比如 short interest 或 short float(公開市場中的可用股份)。

你可以注意到了這些聚類被用作籃子交易的方式一些有趣特徵。有時候標準普爾和一般市場會存在差異。這可以提供本質上基於「信息套利(information arbitrage)」的套利機會。一些聚類則和谷歌搜索趨勢相關。

看到聚類和材料及它們的供應鏈相關確實很有意思,正如這篇文章說的一樣:https://www.fairphone.com/en/2017/05/04/zooming-in-10-materials-and-their-supply-chains/

我僅僅使用該數據集操作了 Cobalt(鈷)、Copper(銅)、Gallium(鎵)和 Graphene(石墨烯)這幾個列標籤,只是為了看我是否可能發現從事這一領域或受到這一領域的風險的上市公司之間是否有任何隱藏的聯繫。這些籃子和標準普爾的回報進行了比較。

通過使用歷史價格數據(可直接在 Quantopian、Numerai、Quandl 或 Yahoo Finance 使用),然後你可以匯總價格數據來生成預計收益,其可使用 HighCharts 進行可視化:

我從該聚類中獲得的回報超過了標準普爾相當一部分,這意味著你每年的收益可以比標準普爾還多 10%(標準普爾近一年來的漲幅為 16%)。我還見過更加激進的方法可以凈掙超過 70%。現在我必須承認我還做了一些其它的事情,但因為我工作的本質,我必須將那些事情保持黑箱。但從我目前觀察到的情況來看,至少圍繞這種方法探索和包裝新的量化模型可以證明是非常值得的,而其唯一的缺點是它是一種不同類型的信號,你可以將其輸入其它系統的流程中。

生成賣空籃子聚類(short basket clusters)可能比生成買空籃子聚類(long basket clusters)更有利可圖。這種方法值得再寫一篇文章,最好是在下一個黑天鵝事件之前。

如果你使用機器學習,就可能在具有已知和隱藏關係的上市公司的寄生、共生和共情關係之上搶佔先機,這是很有趣而且可以盈利的。最後,一個人的盈利能力似乎完全關乎他在生成這些類別的數據時想出特徵標籤(即概念(concept))的強大組合的能力。

我在這類模型上的下一次迭代應該會包含一個用於自動生成特徵組合或獨特列表的單獨演算法。也許會基於近乎實時的事件,這可能會影響那些具有隻有配備了無監督學習演算法的人類才能預測的隱藏關係的股票組。

文章發佈於微信公眾號:機器之心(almosthuman2014),如需轉載,請私信聯繫,感謝。


1. 引用身邊一位經濟學PhD對ML乃至現在廣泛流行的data science的概括:
"data scientist is the modern fengshui master."
我估計大多數嚴肅的經濟學者會贊成這個觀點。(但不屑歸不屑,這並不妨礙他們學ML,畢竟業界喜歡簡單暴力的prediction而非據說表現了casual inference的conceptional toys,這也反映出兩者本質差別)

2. 但兩者卻有交叉部分,這個部分恰恰不是在實證領域,如 Learning and Expectations in Macroeconomics (豆瓣),尤其在最近幾年,關於information friction的討論,大量的宏觀經濟論文使用了social learning來取代rational expectation,認為經濟主體是個「學習者」,某些具體的learning algorithm估計ML實踐者們會有點熟悉。


目前好像還看不到前景。畢竟ML注重的是預測,而經濟學要找的是因果關係,本身的出發點就不太一樣。


作為一個在金融服務類公司從事AI開發工作的人,我想談談人工智慧對於經濟學可能有什麼影響。當然,機器學習只是人工智慧下的一個分支,雖然名字一直在變但都脫不了統計學習的外殼,自古有之。

先上一個我不成熟的結論:

經濟學是一個複雜的理論學科,在短時間內,很難有AI大規模發揮的空間。從金融學角度來看,在利潤率較高、數據結構化較好、問題定義明確的一些金融模型方面,AI會大行其道。不同於金融學領域更加偏嚮應用,經濟學更加側重理論,直接產生利潤的機會較低,直接應用的機會較少,所以在利用AI上可能發展相對比較緩慢。

然而機會在於,在金融領域使用AI探索數據的過程中,有很高的可能性發現系統性的規律或者違反規律的地方,從而反哺經濟學。因此答主大膽的推測,大的金融公司在人工智慧研究中可能發現/證實/證偽一些經濟學規律。隨著整個人工智慧生態環境的逐步進步,機器學習或是其他人工智慧手段,如自然語言處理,能夠更好的服務於經濟學發展。

(以下部分內容節選自我在其他問題下的回答)

答主覺得利用機器學習來為推動經濟學發展,現階段主要面臨三個主要問題:

1. 機器學習模型的可解釋性低

舉個例子,機器學習在工業界最流行的模型就是logistic regression和random forest,是因為這兩個模型的準確度/表現最好么?不是,因為這兩個模型具有可解釋性和可視化。對於管理者/監管者來說太重要了。同樣,在經濟學領域模型的可解釋化也很重要,畢竟經驗科學很難被當做理論來證明。現階段的大部分ML模型都面臨效果不錯解釋不得的問題。越來越多的論文在嘗試提高模型的可解釋性,比如 "Why Should I Trust You?": Explaining the Predictions of Any Classifier,就嘗試證明了通過通用手段來證明機器學習模型的正確性。僅當這個領域繼續發展以後,我們才不單單把機器學習當做應用,而是探索理論發展的工具。

2. 機器學習模型的定義難

現階段比較被商業化廣泛應用的機器學習還是監督學習,而監督學習要求有明確的問題定義。現在看起來很有希望的強化學習,遷移學習等還並不能大規模普及應用。

以簡單的監督學習為例,如果你想建立一個模型來預測企業併購是否會影響公司股價,那麼你需要提供大量併購數據,以及併購後股價是否發生了變動。理想情況下,在收集足夠多的併購消息和股價變動信息後,做自然語言分析後提取特徵放到機器學習模型裡面就大功告成了。

然而在實際情況中:我們無法給出明確的問題定義和邊界。如果想用AI來來制定一個股票交易策略,那麼需要考慮進去多少因素?僅僅只考慮併購消息就夠了么?越多的相關的因素越可以提高模型的擬合性和準確性。如宏觀政策和微觀的具體情況都會影響到股價的波動,漏掉其中哪一個都會造成一定的影響,往往是多多益善。在這種情況下,每個問題都需要大量人和數據來支撐,這也是為什麼大量用AI來預測股票走勢的探索都無疾而終的原因。

現階段或者可預見的未來,在很多經濟學問題上不大可能出現這種明確的定義和範圍。

3. 數據的結構化程度差

機器學習模需要結構化的數據,至少是電子數據。金融領域的大數據化,甚至是數據結構化都還有很長的路的要走。以審計為例,很多公司還有大量的票據都不能無紙化,更不要提AI能夠消化的電子數據了。前一陣子我司開發一個面試AI,但是並沒有原始數據可以直接使用。於是我們讓12個剛入職的員工花了一周時間把我們保留的面試視頻逐字逐句的轉譯到文字+特徵,整個過程苦不堪言。

因此利用機器學習來進行經濟學研究,獲得乾淨的結構化數據難度是很高的。作為一門理論基礎學科,缺乏足夠多的科研經費會成為購買數據的阻礙,而往往手握這些數據的大金融公司是不會隨便出借/銷售寶貴的數據,畢竟這是個數據為王的時代:)

--------------------------------------------------------------------------------------

更多有關人工智慧和金融、經濟學之間的分析,可以移步......

金融學如何應對人工智慧和大數據? - 知乎用戶的回答 - 知乎

隨著人工智慧的進步,財務工作者會大批失業么?該如何應對? - 金融 - 知乎


機器學習和人工智慧(簡稱ML/AI)將對經濟學產生深遠影響。

ML/AI在實際應用中的成功,會倒逼經濟學在工程性上與時俱進。

商學院在這點上走在了經濟系的前面。很大程度上是因為商學院的評價體系和價值取向更容易鼓勵實際應用問題導向的研究。金融、會計領域的頂級期刊上已經有很多利用文本挖掘、自然語言處理、語音識別等技術來從文本、音頻等非結構化數據中提取信息,來預測上市公司財務舞弊、預測股價的研究。當然,這些發表在頂級期刊上的論文自然也是能夠聯繫到經濟理論、金融會計理論的基本問題上來的(例如資本市場有效性、媒體對市場的影響、會計披露對市場的影響等等)。文獻綜述可以看這兩篇:Textual Analysis in Accounting and Finance: A Survey (https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2504147) 以及 Speech Analysis in Financial Markets (http://www.nowpublishers.com/article/Details/ACC-024).

當真正有重要的應用問題需要解決的時候,才更容易催生務實的價值取向:不管黑貓白貓,逮到耗子才是好貓。搜索引擎關鍵詞廣告競價拍賣的巨大商業價值催生了一批非常高質量的交叉學科研究和學術社區。ACM Economics and Computation是非常有聲譽的頂級學術會議。舉一個發表在ACM EC的具體的研究:Econometrics for Learning Agents (http://sticerd.lse.ac.uk/seminarpapers/em11122015.pdf). 這篇論文研究的對象是一個非常經典的拍賣實證問題:如何從賣拍的報價數據推斷競拍者對拍賣標的的真實估值。但是作者並不依賴拍賣結果是納什均衡的假設,而假設競拍者是不斷地在學習最好的競拍策略。這對於搜索引擎關鍵詞競價拍賣這個高頻率並且拍賣利益巨大應用場景是很貼切的。

對於「機器學習不講因果關係只會膚淺地預測」的刻板印象,我建議研讀一下2013年Journal of Machine Learning Research上的論文:Counterfactual Reasoning and Learning Systems: The Example of Computational Advertising (http://jmlr.org/papers/volume14/bottou13a/bottou13a.pdf). 因果問題對於一個實際的機器學習系統非常重要。

先挖個坑,等贊到100再補充。


Summer Institute 2015 Methods Lectures
這是NBER 今年夏天的一個講座,主要是斯坦福的Susan Athey和Guido Imbens搞的,專門給經濟學家介紹ML的


先放一篇博文,算是基本回答了題主的問題。
http://www.bloombergview.com/articles/2015-09-01/economics-has-a-math-problem
主要應用領域在於計量經濟學。
另外,除了前面推薦的15年的講座,再推薦個13年的。
Summer Institute 2013 Econometric Methods for High-Dimensional Data
演講者Matthew Taddy是芝加哥大學的教授。這個講座沒有直接回答你的問題,它關注的都是具體的技術。不過對於只有計量背景的人來說還是很開腦洞的。
計量模型里通常感興趣的只有一兩個變數。其他大量的變數都是起控制作用。但是最終確定哪些變數有趣時,總要有個預選擇的過程,尤其是你有大量的備選變數且沒有現成的經濟理論可供指導時。所以ML提供了一個很好的選擇變數的方案(選擇帶有pattern的變數)。在此基礎上,可以為這些觀測到的pattern尋求更嚴格的因果解釋。
另外,推薦樓主翻翻歐美各大名校的計量課程的syllabus(各個教授的)。有些學校已經將regression tree作為計量課的一個章節講授了。
其實回答這個問題的最好方法,是遍歷一遍頂級的經濟學期刊,篩選出其中與machine learning有關的問題。本人才疏學淺,這方面的閱讀經驗是零。期待有相關經驗的大神能給科普下。


有意向奔向此坑。過來先把flag立好。三年到五年後回來看。


我已經決定奔向此坑了,就這個。
我也囂張一把,就讓這FLAG在這高高掛起。


經濟學之其實很mei友di好xian準則:
1.只要假設允許,方法論隨意使用。
2.反向使用統計潛規則,隨意證明或證偽任何經濟學理論。

ps
1.機器學習可以真真正正站在工具理性的角度用來迭代大規模的博弈模型啊!你們難道不知道這意味著什麼嗎?
2.想來「解釋變數」和「被解釋變數」的名字還是優於「自變數」和「因變數」:因果和邏輯未必就有關。
3.我還小,統計學並不敢信多少,節操還是想留給概率論。
4.請用粗糙的chaos大膽蹂躪光滑的經濟模型世界。
5.看漲看空,沒有投入其實沒有意義。


哈?沒有么?


講真,我一直分不清機器學習和演化博弈論。


機器學習模擬的是人腦思考方式,是可以連續模擬計算幾百萬年的人腦。

行業並非機器學習的方向。

圍棋程序和跳舞,是一個性質。


推薦閱讀:

從事經濟、金融工作的人都是通過什麼渠道獲得數據資源,運用什麼軟體來分析行業狀態和經濟走勢的?
調參這事兒,為什麼越干越覺得像老中醫看病?
有什麼好的模型可以做高精度的時間序列預測呢?
機器學習中的Bias(偏差),Error(誤差),和Variance(方差)有什麼區別和聯繫?
如何迅速成長成為一名數據分析師?

TAG:金融學 | 人工智慧 | 數據挖掘 | 機器學習 | 經濟學 |