股投資者情緒面板數(shù)據(jù)構(gòu)建思路(2007-2024))
研究個(gè)股橫截面收益的時(shí)候我長(zhǎng)期被一個(gè)問題卡住市場(chǎng)整體情緒指數(shù)能解釋大盤的瘋狂和恐慌可一旦落到為什么這兩只基本面差不多的公司一只天天漲停有人搶另一只無人問津傳統(tǒng)情緒指標(biāo)就完全失靈了。后來我花了一段時(shí)間系統(tǒng)整理了A股2007到2024年的個(gè)股交易數(shù)據(jù)用代理指標(biāo)加主成分分析的思路構(gòu)建了一套上市公司投資者情緒2007-2024面板數(shù)據(jù)算是把公司層面的情緒這個(gè)變量真正落到了可計(jì)算的層面。這套數(shù)據(jù)覆蓋了近18年的歷史跨度包含A股正常交易股票在日頻和月頻兩個(gè)粒度的情緒評(píng)分可以用在行為金融學(xué)術(shù)研究、個(gè)股異象分析、多因子模型診斷等場(chǎng)景中。如果你也在做類似的量化研究或者對(duì)情緒怎么度量這個(gè)問題感興趣這篇文章會(huì)把我的完整構(gòu)建思路、指標(biāo)選型、清洗細(xì)節(jié)、主成分合成過程、有效性驗(yàn)證以及踩過的坑都攤開講清楚。1. 為什么非要做公司層面而不是繼續(xù)用市場(chǎng)情緒指數(shù)1.1 市場(chǎng)情緒解決不了個(gè)股定價(jià)差異如果你看過Baker和Wurgler在2006年那篇經(jīng)典論文一定會(huì)對(duì)市場(chǎng)層面的情緒指數(shù)印象深刻。它把封閉基金折價(jià)、換手率、IPO首日收益、新股發(fā)行數(shù)量等指標(biāo)壓縮成一個(gè)時(shí)間序列用來解釋整個(gè)市場(chǎng)的情緒周期。這個(gè)思路很優(yōu)雅但用到個(gè)股上就尷尬了同一時(shí)刻所有股票共享同一個(gè)市場(chǎng)情緒值完全沒有橫截面上的區(qū)分度?,F(xiàn)實(shí)情況卻是A股的情緒分布極度不均衡。2017年那輪極端分化的行情里大市值藍(lán)籌穩(wěn)步上行小市值公司卻持續(xù)陰跌兩個(gè)群體內(nèi)部的交易熱度、投資者關(guān)注度完全是兩個(gè)世界。再比如2021年前后的賽道股行情新能源和半導(dǎo)體板塊內(nèi)部的情緒溫度可以和銀行地產(chǎn)差出好幾條街。如果你只能用一個(gè)全局情緒變量根本無法刻畫這種結(jié)構(gòu)性的情緒冷熱。行為金融里的很多經(jīng)典異象本身就發(fā)生在公司層面高換手率的彩票型股票未來收益偏低、散戶追捧的股票崩盤風(fēng)險(xiǎn)更高、極端收益后的反轉(zhuǎn)效應(yīng)……這些問題都需要一個(gè)能夠區(qū)分哪只股票情緒高、哪只股票情緒低的個(gè)體度量而不是一個(gè)統(tǒng)一的市場(chǎng)讀數(shù)。這是我做這套數(shù)據(jù)的第一個(gè)動(dòng)機(jī)。1.2 2007-2024這個(gè)樣本區(qū)間的含金量在哪選定2007到2024年并不是隨意劃的而是因?yàn)檫@段區(qū)間幾乎包含了一個(gè)研究情緒所必需的全部極端場(chǎng)景。首先是2007年末到2008年市場(chǎng)從亢奮到崩潰的完整周期這是檢驗(yàn)情緒指標(biāo)是否能在極端樂觀和極端恐慌之間快速切換的絕佳樣本。接著是2014到2015年成交額和杠桿資金快速放大隨后出現(xiàn)劇烈調(diào)整情緒指標(biāo)的波動(dòng)劇烈程度在整個(gè)樣本里都數(shù)一數(shù)二。2016到2017年的分化行情、2019到2021年的結(jié)構(gòu)性行情、2024年初小微盤的流動(dòng)性沖擊這些場(chǎng)景對(duì)情緒指數(shù)來說都是天然的壓力測(cè)試。簡(jiǎn)單說一個(gè)情緒指標(biāo)如果在這段區(qū)間里還能保持合理的行為模式——暴漲時(shí)沖高、急跌時(shí)探底、分化時(shí)拉開個(gè)股差異——那它大概率是可靠的。如果它只在平穩(wěn)行情里表現(xiàn)正常一到極端情況就失真那這套數(shù)據(jù)就沒有實(shí)用價(jià)值。樣本夠長(zhǎng)、夠極端是這套數(shù)據(jù)最重要的底氣。2. 情緒代理指標(biāo)的選型哪些指標(biāo)真正刻畫了情緒而不是價(jià)值情緒是潛變量根本沒法直接觀測(cè)所以必須找代理。我這里的出發(fā)點(diǎn)是所有代理指標(biāo)必須在個(gè)股層面可得、日度或周度高頻、且與投資者的非理性交易行為直接相關(guān)?;谶@三條標(biāo)準(zhǔn)我篩掉了問卷類數(shù)據(jù)只有市場(chǎng)層面、資金流數(shù)據(jù)2010年前覆蓋太差、機(jī)構(gòu)倉(cāng)位數(shù)據(jù)頻率太低且滯后嚴(yán)重最終留下了五個(gè)核心候選。2.1 換手率偏離最便宜也最有效的情緒溫度計(jì)換手率是情緒研究里最經(jīng)典的代理之一邏輯很直接情緒高亢時(shí)人更愛交易換手率自然放大。但我沒有直接用換手率絕對(duì)值而是用了異常換手率——當(dāng)日換手率減去過去一段時(shí)間我用的120個(gè)交易日的滾動(dòng)均值再除以滾動(dòng)標(biāo)準(zhǔn)差。為什么用偏離值而不是絕對(duì)值因?yàn)锳股不同行業(yè)、不同市值區(qū)間的換手率天然差異很大銀行股常年低換手題材股常年高換手絕對(duì)值的橫截面差異早就被流動(dòng)性屬性污染了。但偏離值捕捉的是這只股票相對(duì)于常態(tài)今天突然活躍了多少這才是情緒沖擊的部分。Baker和Stein2004討論流動(dòng)性作為情緒代理時(shí)也強(qiáng)調(diào)過這個(gè)角度實(shí)操中偏離值的效果確實(shí)比絕對(duì)值干凈不少。2.2 收益偏度彩票偏好的一面鏡子第二個(gè)指標(biāo)是過去60個(gè)交易日收益分布的偏度也叫已實(shí)現(xiàn)偏度realized skewness。行為金融里有個(gè)很成熟的概念叫彩票偏好很多散戶投資者愿意買入收益分布極度右偏、有極小概率暴漲的彩票型股票為此不惜承擔(dān)大概率虧錢的風(fēng)險(xiǎn)。而這種股票恰恰是情緒推動(dòng)的重災(zāi)區(qū)。偏度的計(jì)算不復(fù)雜用日收益率序列的三階矩除以標(biāo)準(zhǔn)差的立方即可。之所以放進(jìn)情緒代理是因?yàn)楦咂裙善痹谇榫w高亢期更容易被資金追捧而情緒退潮時(shí)這類股票的殺跌也往往更猛。它捕捉的是投機(jī)性偏好的強(qiáng)弱和換手率提供的是互補(bǔ)信息。2.3 杠桿資金活躍度2010年之后的情緒放大器融資融券在2010年3月才開始正式交易所以兩融類指標(biāo)天然只能覆蓋后半段樣本。我用的是融資買入額占當(dāng)日成交額的比例以及融資余額的變化率。邏輯也不難理解愿意加杠桿買入的資金通常對(duì)后市有比較強(qiáng)的樂觀預(yù)期杠桿資金的活躍度越高說明交易者的情緒溫度越高。這個(gè)指標(biāo)的短板很明顯在2010年之前完全沒有而且只有兩融標(biāo)的池內(nèi)的股票才有數(shù)據(jù)。不過它的長(zhǎng)處是干凈——杠桿資金比普通散戶更敏感它的進(jìn)場(chǎng)和離場(chǎng)往往領(lǐng)先于價(jià)格變化是情緒放大器角色。我在做主成分時(shí)把它作為2010年后的穩(wěn)健性驗(yàn)證變量而不是核心變量后面會(huì)說原因。2.4 分析師調(diào)整與文本情緒兩個(gè)補(bǔ)充視角分析師評(píng)級(jí)調(diào)整方向上調(diào)次數(shù)減下調(diào)次數(shù)再除以覆蓋分析師數(shù)代表機(jī)構(gòu)端的情緒溫度。它的優(yōu)點(diǎn)是頻率適中、覆蓋面在2010年后逐漸擴(kuò)大缺點(diǎn)是早期分析師覆蓋太少樣本偏差大。它衡量的是專業(yè)投資者的預(yù)期修正和散戶情緒是不同維度但兩者會(huì)互相傳染。文本情緒股吧帖子、新聞標(biāo)題是最貼近情緒本身的指標(biāo)但它的成本實(shí)在太高了2015年之前的文本數(shù)據(jù)覆蓋率低、清洗難度大、真假評(píng)論混雜直接作為主成分基礎(chǔ)變量會(huì)讓數(shù)據(jù)面板嚴(yán)重殘缺。所以我的處理策略是文本情緒不做基礎(chǔ)代理只做交叉驗(yàn)證的參照系。后面驗(yàn)證部分會(huì)提到怎么用。3. 2007-2024的面板數(shù)據(jù)工程口徑、缺失值和幸存者偏差的取舍很多人拿到數(shù)據(jù)后直接開始算指標(biāo)但我的經(jīng)驗(yàn)是面板數(shù)據(jù)的質(zhì)量控制決定了最終結(jié)果的可信度。這一節(jié)可能是全篇最不性感但最值得認(rèn)真看的部分。3.1 換手率的三套口徑從2007到2024怎么統(tǒng)一A股換手率在數(shù)據(jù)庫(kù)里通常有三個(gè)口徑總股本口徑、流通股本口徑、自由流通股本口徑。不同口徑下同一只股票同一時(shí)期的換手率差異非常大尤其2007到2010年很多公司的限售股尚未完全解禁流通股本占總股本的比例很低流通口徑的換手率會(huì)異常偏高。我最后的選擇是2007到2012年用流通股本口徑2013年以后逐步切換到自由流通股本口徑并在銜接處做了倍數(shù)對(duì)齊。具體做法是以2013年兩類口徑都完整可得的股票為樣本計(jì)算兩個(gè)口徑的中位數(shù)比值用這個(gè)比值對(duì)早期數(shù)據(jù)做了整體校準(zhǔn)。這個(gè)方法不完美但比不加處理直接用一套口徑硬算要可靠得多。有條件的同行可以直接購(gòu)買帶自由流通口徑的數(shù)據(jù)庫(kù)但多數(shù)情況下還是得自己做一次手工校準(zhǔn)。3.2 停牌、漲跌停和ST哪些日子必須被剔除這一塊是最容易踩坑的地方。停牌股票的換手率天然為0但它是無法交易的0不是沒人關(guān)注的0直接納入計(jì)算會(huì)把情緒分?jǐn)?shù)壓出假低谷。一字漲停或一字跌停日同理當(dāng)天成交極少但這恰恰是情緒極端高漲或恐慌的表現(xiàn)簡(jiǎn)單用換手率偏離去刻畫會(huì)把它們誤判成冷清。我的清洗規(guī)則是停牌日直接剔除一字漲跌停日標(biāo)記為極端情緒值但不參與換手率偏離的計(jì)算ST股票的常規(guī)交易日單獨(dú)建立樣本標(biāo)記在部分驗(yàn)證場(chǎng)景里會(huì)把ST整體剔除避免退市風(fēng)險(xiǎn)偏好污染情緒分?jǐn)?shù)。這些判斷看起來都是細(xì)節(jié)但你如果直接跑一套數(shù)據(jù)出來會(huì)發(fā)現(xiàn)情緒指數(shù)里混進(jìn)大量假冷清日和真實(shí)市場(chǎng)感受嚴(yán)重背離。3.3 幸存者偏差構(gòu)建當(dāng)期股票池的細(xì)節(jié)這是面板數(shù)據(jù)里我最在意的問題。如果只用截至2024年仍然存續(xù)的股票去回溯2007年以來的交易記錄早期樣本就只剩下了后來的幸存者那些在2010年退市的股票、2015年之后被ST多次的股票全都會(huì)被漏掉——但這批股票的極端情緒恰恰是研究中最有信息量的部分。正確處理方式其實(shí)不復(fù)雜在每個(gè)報(bào)告期我按月切分記錄當(dāng)期交易狀態(tài)正常的全部股票代碼形成一個(gè)當(dāng)期股票池所有指標(biāo)都在當(dāng)期股票池內(nèi)計(jì)算。退市股票要保留到它實(shí)際退市前的最后一個(gè)交易月這樣情緒指數(shù)的下跌段才能真實(shí)覆蓋這個(gè)群體的完整情緒變化。數(shù)據(jù)庫(kù)里下載數(shù)據(jù)時(shí)如果直接按股票代碼篩選大概率會(huì)帶回幸存者偏差這一點(diǎn)必須自己處理。3.4 極端值清洗MAD比Z-score更抗造換手率、偏度這類指標(biāo)的分布是高度重尾的用均值加標(biāo)準(zhǔn)差的Z-score方法做縮尾很容易被極端值拖著走。我自己在試算時(shí)發(fā)現(xiàn)直接用Z-score處理2015年高峰期的換手率很多正常活躍股的得分會(huì)被壓到負(fù)數(shù)——因?yàn)樯贁?shù)天量股票的極值把標(biāo)準(zhǔn)差拉得過大。后來?yè)Q成了MAD中位數(shù)絕對(duì)偏差縮尾以中位數(shù)為基準(zhǔn)超過中位數(shù)加減k倍MAD的值截?cái)噙@個(gè)辦法在重尾分布下穩(wěn)健得多??s尾比例我用的1%和99%分位數(shù)但底層檢驗(yàn)用的是MAD邏輯。具體操作時(shí)先做橫截面分位數(shù)縮尾再做時(shí)序列標(biāo)準(zhǔn)化順序不要反。4. 主成分情緒指數(shù)從5個(gè)代理變成1個(gè)分?jǐn)?shù)的全流程數(shù)據(jù)清洗做完就到了核心合成步驟。我的目標(biāo)是把多個(gè)代理變量綜合成一個(gè)可解釋、可復(fù)現(xiàn)、且沒有前視偏差的個(gè)股情緒分?jǐn)?shù)。4.1 為什么不用等權(quán)平均而用主成分最簡(jiǎn)單的做法當(dāng)然是把幾個(gè)標(biāo)準(zhǔn)化后的代理變量做個(gè)平均省事直觀。但問題在于代理指標(biāo)之間存在信息重疊換手率抬高的時(shí)候偏度大的股票通常也在被資金追捧杠桿資金活躍的時(shí)候換手率也差不了等權(quán)平均等于把這些共同成分反復(fù)計(jì)算放大了重復(fù)信息。主成分分析的意義在于把變量之間的共同變異提取出來第一主成分恰好就對(duì)應(yīng)著多個(gè)情緒指標(biāo)共同變化的那個(gè)驅(qū)動(dòng)力也就是我們真正想要的情緒成分。它允許代理指標(biāo)各自貢獻(xiàn)不同權(quán)重而不是一視同仁。實(shí)踐中第一主成分的解釋率大概在30%到45%之間這個(gè)水平足夠說明它提取到了一個(gè)穩(wěn)定且真實(shí)的共同因子又不會(huì)高到讓人覺得是重復(fù)計(jì)算。4.2 滾動(dòng)PCA防前視偏差的實(shí)操細(xì)節(jié)這里有一個(gè)新手很容易踩的大坑如果直接用全樣本數(shù)據(jù)做PCA得到的載荷矩陣其實(shí)包含了未來的全部信息。用這個(gè)載荷去計(jì)算歷史某個(gè)時(shí)點(diǎn)的情緒分?jǐn)?shù)相當(dāng)于用未來數(shù)據(jù)給過去打分——這在學(xué)術(shù)研究里是致命的前視偏差回測(cè)出來的結(jié)果完全不可信。正確做法是滾動(dòng)窗口PCA。我在每個(gè)月末只用截至當(dāng)月末為止的過去36個(gè)月數(shù)據(jù)重新擬合載荷矩陣然后用這個(gè)載荷計(jì)算當(dāng)月每個(gè)股票的情緒分?jǐn)?shù)。窗口長(zhǎng)度我反復(fù)試過24個(gè)月、36個(gè)月和60個(gè)月24個(gè)月載荷太毛糙換一個(gè)極端月份結(jié)果就跳一次60個(gè)月反應(yīng)太慢市場(chǎng)結(jié)構(gòu)從2015年的高頻交易時(shí)代切換到2018年后的機(jī)構(gòu)化時(shí)代時(shí)舊載荷已經(jīng)跟不上新結(jié)構(gòu)36個(gè)月是相對(duì)折中的選擇。4.3 核心計(jì)算流程與Python實(shí)現(xiàn)要點(diǎn)具體的計(jì)算分四步走對(duì)五個(gè)代理變量做行業(yè)中性化再在橫截面內(nèi)標(biāo)準(zhǔn)化減均值除以標(biāo)準(zhǔn)差。行業(yè)中性化這一步很重要因?yàn)殂y行和醫(yī)藥的換手率基準(zhǔn)完全不同不處理的話情緒分?jǐn)?shù)里會(huì)混入行業(yè)屬性。在36個(gè)月滾動(dòng)窗口內(nèi)計(jì)算代理變量間的相關(guān)矩陣做特征值分解。提取第一主成分對(duì)應(yīng)的特征向量作為載荷并做符號(hào)對(duì)齊——確保載荷方向和理論預(yù)期一致下面細(xì)說。用當(dāng)期個(gè)股的代理值乘以載荷得到情緒得分再在橫截面上標(biāo)準(zhǔn)化為均值0、標(biāo)準(zhǔn)差1的分?jǐn)?shù)。用Python表達(dá)核心邏輯大概是這樣的def rolling_pca_sentiment(panel, proxies, window36): # panel是MultiIndex DataFrame: (trade_date, stock_code) scores {} for month_end in month_ends: hist panel.loc[:month_end].tail(window * 21) # 1. 行業(yè)中性化 橫截面標(biāo)準(zhǔn)化 z hist[proxies].apply(lambda x: (x - x.mean()) / x.std()) # 2. 相關(guān)矩陣的PCA corr z[proxies].corr() eigenvalues, eigenvectors np.linalg.eigh(corr) loading eigenvectors[:, -1] # 第一主成分載荷 # 3. 符號(hào)對(duì)齊保證與理論方向一致 loading align_sign(loading, theoretical_direction) # 4. 當(dāng)期情緒分?jǐn)?shù) cur_z panel.loc[month_end][proxies].apply(...) scores[month_end] cur_z loading return scores實(shí)際工程里還要處理月度內(nèi)交易日不足10天就直接置空、代理指標(biāo)缺失過多的股票不進(jìn)PCA擬合、全市場(chǎng)只有兩融標(biāo)的有margin變量的處理方式等雜活。整體框架不復(fù)雜真正花時(shí)間的都是這些邊界條件和清洗邏輯。4.4 符號(hào)方向、載荷解釋和解釋率判斷PCA第一主成分的方向不是唯一的特征向量乘以負(fù)一同樣是合法解。如果不做處理可能跑出來第一主成分在換手率上是正載荷、在偏度上是負(fù)載荷方向飄忽不定情緒分?jǐn)?shù)忽高忽低根本沒法用。我的處理方法是預(yù)先設(shè)定理論方向高情緒時(shí)換手率偏離為正、偏度為正、杠桿活躍度為正、分析師調(diào)整為正樂觀修正。然后看第一主成分載荷在這幾個(gè)變量上的平均正負(fù)方向如果和理論方向一致就保留否則整體乘負(fù)一。這是個(gè)非常樸素但重要的步驟很多人直接從sklearn里拿結(jié)果就用跑出來符號(hào)反復(fù)橫跳還不知道為什么。關(guān)于解釋率我的觀察是如果第一主成分的解釋率低于25%說明代理指標(biāo)之間共同信息太少情緒成分太弱這時(shí)候要先回頭檢查代理變量清洗環(huán)節(jié)如果高于60%就要警惕是不是某些指標(biāo)其實(shí)在重復(fù)度量同一件事比如換手率和杠桿活躍度相關(guān)性太高導(dǎo)致共同因子被單一維度主導(dǎo)。5. 有效性驗(yàn)證情緒指數(shù)究竟是不是在刻畫情緒合成完指數(shù)只是第一步最關(guān)鍵的問題是這個(gè)指數(shù)真的有行為金融學(xué)意義上的有效性嗎我從兩個(gè)方向做了驗(yàn)證。5.1 極端市場(chǎng)場(chǎng)景的橫向?qū)φ瞻讶袌?chǎng)個(gè)股情緒分?jǐn)?shù)的月度均值拉成一條時(shí)間序列和幾個(gè)公認(rèn)的極端市場(chǎng)節(jié)點(diǎn)做對(duì)照2008年下半年全球金融危機(jī)沖擊下的A股市場(chǎng)市場(chǎng)平均情緒分快速下探到全樣本極低分位大量個(gè)股情緒分?jǐn)?shù)進(jìn)入個(gè)位數(shù)百分位區(qū)間。2015年市場(chǎng)成交和杠桿資金快速放大的階段市場(chǎng)平均情緒分在2015年上半年沖到了樣本內(nèi)的極高位置三季度劇烈調(diào)整期間又快速回落到低分位情緒分?jǐn)?shù)的拐點(diǎn)基本和市場(chǎng)的階段高低點(diǎn)同步甚至略微領(lǐng)先。2017年到2018年的大盤藍(lán)籌與小市值分化階段市場(chǎng)平均情緒分變化不大但情緒分?jǐn)?shù)的橫截面離散度明顯拉大——大市值股票情緒分中性偏低小市值股票情緒分波動(dòng)劇烈。這個(gè)現(xiàn)象恰恰說明公司層面的情緒數(shù)據(jù)和市場(chǎng)整體情緒是有本質(zhì)區(qū)別的。2024年初小微盤流動(dòng)性沖擊階段小市值群體的情緒分?jǐn)?shù)迅速塌陷之后又經(jīng)歷明顯修復(fù)整個(gè)走勢(shì)完整捕捉到了流動(dòng)性收縮與恢復(fù)的過程。這些場(chǎng)景對(duì)照雖然沒有嚴(yán)格的統(tǒng)計(jì)檢驗(yàn)但方向上的吻合說明這套數(shù)據(jù)確實(shí)捕捉到了情緒的應(yīng)有表現(xiàn)——在極端樂觀和極端悲觀之間切換、在分化行情中拉開個(gè)股差異。5.2 分位分組的月收益差異再來看橫截面預(yù)測(cè)能力。我用最樸素的方法每個(gè)月末按情緒分?jǐn)?shù)把全市場(chǎng)股票分成5組Q1最低情緒Q5最高情緒計(jì)算各組下個(gè)月的等權(quán)平均收益。在我的樣本里整體規(guī)律是高情緒組Q5未來一個(gè)月的平均收益明顯低于低情緒組Q1差值大致在每月0.3%到0.8%的范圍內(nèi)而且在情緒指數(shù)全樣本高分位時(shí)這個(gè)利差會(huì)更加明顯。這個(gè)結(jié)果本身并不新穎它和大量文獻(xiàn)里高情緒股票未來收益偏低的結(jié)論是一致的。但對(duì)我而言它的意義在于驗(yàn)證了數(shù)據(jù)質(zhì)量——如果連這個(gè)經(jīng)典規(guī)律都跑不出來說明前面的構(gòu)建過程一定有問題。還要加一句重要的提醒這只是一個(gè)統(tǒng)計(jì)規(guī)律不是可以直接交易的策略信號(hào)。高情緒組里大量是小市值、高換手的股票實(shí)盤交易的沖擊成本和流動(dòng)性約束往往遠(yuǎn)超這個(gè)收益差直接拿去做多空策略很容易被交易成本吞干凈。5.3 在學(xué)術(shù)和策略研究里的正確打開方式這套數(shù)據(jù)最適合的場(chǎng)景是作為行為金融模型的解釋變量。比如研究崩盤風(fēng)險(xiǎn)時(shí)控制基本面和流動(dòng)性的基礎(chǔ)上看看高情緒股票的崩盤風(fēng)險(xiǎn)是否更高研究異質(zhì)波動(dòng)率異象時(shí)把情緒作為調(diào)節(jié)變量看看異質(zhì)波動(dòng)率溢價(jià)是不是只在情緒高的時(shí)候出現(xiàn)。也可以用來做條件分析把樣本按情緒高低切成兩個(gè)子樣本檢驗(yàn)?zāi)承┮蜃釉谇榫w期的表現(xiàn)差異。很多橫截面因子的有效性其實(shí)是隨情緒周期變化的用這套數(shù)據(jù)就能很方便地切出市場(chǎng)亢奮期和市場(chǎng)低迷期分別回測(cè)這正是市場(chǎng)整體情緒指數(shù)做不到的。驗(yàn)證里還有一個(gè)重要步驟是相關(guān)性診斷把情緒指數(shù)和個(gè)股換手率、特質(zhì)波動(dòng)率、非流動(dòng)性指標(biāo)做Pearson相關(guān)。如果相關(guān)性高到0.8以上說明這個(gè)情緒分?jǐn)?shù)本質(zhì)上就是換手率的換殼沒有獨(dú)立信息增量。我的樣本里情緒分?jǐn)?shù)與換手率的相關(guān)系數(shù)大致在0.5到0.7之間說明有相關(guān)但不完全重合還有一部分是偏度、杠桿活躍度等其他維度提供的增量信息這個(gè)結(jié)果可以接受。6. 情緒指數(shù)不是萬能鑰匙邊界、誤用和幾個(gè)真實(shí)教訓(xùn)6.1 代理變量永遠(yuǎn)是代理這套情緒指數(shù)說到底是從交易數(shù)據(jù)里反推出來的合成情緒它和真實(shí)的投資者心理情緒之間隔著一層透鏡。換手率偏離里既有情緒成分也有流動(dòng)性成分偏度里既有投機(jī)偏好也有基本面彩票屬性分析師調(diào)整里則更多反映專業(yè)投資者的理性預(yù)期。所以嚴(yán)格來說這個(gè)分?jǐn)?shù)應(yīng)該被理解為情緒與投機(jī)性交易的綜合度量而不是純粹的心理學(xué)意義上的情緒。如果寫作論文我建議在表述上留有余地叫情緒-投機(jī)綜合指數(shù)speculative sentiment index或者明確說明它是基于交易行為的代理情緒。別人問起來的時(shí)候直接說這是投資者情緒的綜合代理指標(biāo)比拍胸脯說這就是情緒本身要嚴(yán)謹(jǐn)?shù)枚嘁步?jīng)得起推敲。6.2 市場(chǎng)結(jié)構(gòu)漂移會(huì)影響時(shí)序可比性A股參與者結(jié)構(gòu)在過去18年變化太大了。2010年之前以散戶為主換手率里情緒含量天然高2015年以后程序化交易和量化資金占比上升換手率的邊際含義已經(jīng)變了2020年以來社交平臺(tái)的信息擴(kuò)散速度和范圍又明顯改變了個(gè)股情緒的傳播路徑。同一個(gè)換手率偏離值在2009年可能在說散戶情緒高漲到2023年可能包含了不少算法交易和套利資金的貢獻(xiàn)。滾動(dòng)窗口PCA在一定程度上吸收了這種結(jié)構(gòu)變化但不能完全消除。最穩(wěn)妥的做法是在使用這套數(shù)據(jù)做回歸時(shí)加入時(shí)間固定效應(yīng)或者分段做穩(wěn)健性檢驗(yàn)——比如2010年之前、2010到2015年、2015年之后各跑一遍看看結(jié)論是否一致。如果跨區(qū)間的結(jié)論差異太大就要考慮是不是情緒度量本身的結(jié)構(gòu)變化造成的。6.3 文本情緒作為交叉驗(yàn)證參照系前面說過我沒有把文本情緒放進(jìn)主成分基礎(chǔ)變量但它不該被閑置。我的做法是取2019年以后的數(shù)據(jù)用個(gè)股股吧帖子情緒和新聞?wù)?fù)面情緒分別構(gòu)造月度文本情緒分?jǐn)?shù)再和主成分情緒分?jǐn)?shù)做相關(guān)性和分組對(duì)照。結(jié)果上兩者相關(guān)系數(shù)大致在0.3到0.5之間方向上一致但又不是完全同步。文本情緒的優(yōu)勢(shì)在于它更貼近真實(shí)心理而主成分情緒的優(yōu)勢(shì)在于覆蓋更長(zhǎng)的歷史區(qū)間。如果你有足夠的文本數(shù)據(jù)預(yù)算我的建議是把兩者結(jié)合起來——用文本情緒對(duì)主成分情緒做殘差修正可能得到一個(gè)更純粹的情緒偏離基本面交易行為的成分。這一塊我還在嘗試但方向是對(duì)的。6.4 幾個(gè)值得記住的教訓(xùn)最后分享幾個(gè)我在構(gòu)建過程中真實(shí)踩過的坑供同行參考第一不要跳過行業(yè)中性化直接PCA。我第一版跑出來的情緒分?jǐn)?shù)里行業(yè)屬性占了很大權(quán)重銀行股整體情緒永遠(yuǎn)偏低電子股整體情緒永遠(yuǎn)偏高。行業(yè)中性化之后這個(gè)偏差才基本消除。第二符號(hào)對(duì)齊一定要做。有一版我偷懶沒做結(jié)果情緒分?jǐn)?shù)和市場(chǎng)極端節(jié)點(diǎn)完全反著走還以為是數(shù)據(jù)源出了問題最后發(fā)現(xiàn)就是第一主成分的方向選反了。第三滾動(dòng)窗口不要偷懶用全樣本。如果你只是自己看一下趨勢(shì)可能問題不大但任何涉及歷史回測(cè)的研究全樣本PCA就是前視偏差審稿人一眼就能看穿。第四注意退市樣本的處理。保留到退市前最后一個(gè)月還是提前剔除會(huì)對(duì)高情緒組的未來收益產(chǎn)生不小的影響。我的建議是保留并在論文穩(wěn)健性檢驗(yàn)里說明兩種處理方式的差異。我把這套數(shù)據(jù)公開放在了我的開源項(xiàng)目里數(shù)據(jù)文件按照月份分片存儲(chǔ)月度情緒分?jǐn)?shù)為均值0、標(biāo)準(zhǔn)差1的標(biāo)準(zhǔn)化值同時(shí)附帶了情緒分?jǐn)?shù)構(gòu)建的全套說明和復(fù)現(xiàn)代碼。如果你發(fā)現(xiàn)某個(gè)行業(yè)、某個(gè)時(shí)間段的情緒分?jǐn)?shù)和你的體感偏差很大歡迎私下交流——數(shù)據(jù)這種東西越多的人挑毛病它才越可靠。