聊天視窗

數據驅動投資分析:從基礎到量化交易 - 第 3 章

第三章:統計學在投資中的應用

發布於 2026-03-04 18:16

# 第三章:統計學在投資中的應用 > 本章將從**描述性統計**、**相關分析**、**假設檢定**三個維度,說明如何量化市場行為與風險;接著深入探討**風險指標**(波動率、VaR、CVaR、Sharpe / Sortino 等)與**報酬分布**的特徵,並提供實務範例與程式碼片段,方便讀者直接落地。 ## 3.1 描述性統計 | 指標 | 定義 | 公式 | 代表意義 | |------|------|------|-----------| | 平均數(Mean) | 期望值 | \(\bar{x} = \frac{1}{n}\sum_{i=1}^{n}x_i\) | 觀測值的中心位置 | | 標準差(Std) | 離散程度 | \(s = \sqrt{\frac{1}{n-1}\sum_{i=1}^{n}(x_i-\bar{x})^2}\) | 風險大小 | | 變異係數(CV) | 相對波動 | \(CV = \frac{s}{\bar{x}}\) | 跨資產風險比較 | | 四分位數 | 分佈位置 | Q1, Q2, Q3 | 中位數與尾部厚度 | ### 實務示例:Python‑Pandas python import pandas as pd import numpy as np # 假設有 5 只股票每日收盤價 prices = pd.read_csv('prices.csv', index_col='Date', parse_dates=True) returns = prices.pct_change().dropna() # 描述性統計 summary = returns.describe().T print(summary[['mean', 'std', 'skew', 'kurtosis']]) > **注意**:在多重時間尺度(日、週、月)下,平均與標準差會有不同的解釋,投資人需視交易頻率調整。 ## 3.2 相關分析 ### 相關係數類型 | 係數 | 範圍 | 典型用途 | |------|------|-----------| | Pearson | \([-1,1]\) | 線性關係 | | Spearman | \([-1,1]\) | 排序關係 | | Kendall | \([-1,1]\) | 排序關係(更穩健) | ### 相關矩陣示例 python corr_matrix = returns.corr(method='pearson') print(corr_matrix) > **實務建議**:在構建投資組合時,過高的正相關會削弱多樣化效益;負相關則可作為風險對沖的基礎。 ## 3.3 假設檢定 | 檢定 | 目的 | 典型假設 | |------|------|-----------| | 單樣本 t‑檢定 | 檢驗平均是否等於某值 | H0: \(\mu = \mu_0\) | | 兩樣本 t‑檢定 | 比較兩群平均 | H0: \(\mu_1 = \mu_2\) | | 方差分析(ANOVA) | 多組平均比較 | H0: 所有 \(\mu_i\) 相等 | | 卡方檢定 | 觀測 vs 預期分佈 | H0: 觀測符合預期 | ### 例子:檢查股票是否超越市場平均 python from scipy import stats market_mean = returns['SPY'].mean() stock_mean = returns['AAPL'].mean() # 兩樣本 t‑檢定 t_stat, p_val = stats.ttest_ind(returns['AAPL'], returns['SPY'], equal_var=False) print(f't‑stat: {t_stat:.3f}, p‑value: {p_val:.3f}') > 若 **p‑value < 0.05**,則拒絕 H0,意味著 AAPL 的平均報酬顯著不同於市場平均。 ## 3.4 風險指標 | 指標 | 公式 | 何時使用 | |------|------|-----------| | 波動率(Volatility) | \(\sigma\) | 長期風險度量 | | 年化波動率 | \(\sigma_{ann} = \sigma_{daily}\sqrt{252}\) | 投資組合比較 | | Value at Risk (VaR) | \(VaR_{\alpha} = -\mu + z_{\alpha}\sigma\) | 風險上限估計 | | Conditional VaR (CVaR) | \(CVaR_{\alpha} = -\mu + \frac{1}{1-\alpha}\int_{0}^{\alpha} z_{u}\,du\) | 尾部風險 | | Sharpe Ratio | \(\frac{\bar{r}_p - r_f}{\sigma_p}\) | 超額報酬對波動率 | | Sortino Ratio | \(\frac{\bar{r}_p - r_f}{\sigma_{-}}\) | 只考慮負波動 | ### 1️⃣ 風險指標計算示例 python # 風險自由利率 rf = 0.01 # 日報酬 p_daily = returns['SPY'] # 1. 年化波動率 vol_ann = p_daily.std() * np.sqrt(252) # 2. 95% VaR (學生 t 分布) alpha = 0.95 k = stats.t.ppf(alpha, df=len(p_daily)-1) var_95 = -(p_daily.mean() - k*p_daily.std()) # 3. Sharpe Ratio sharpe = (p_daily.mean() - rf/252) / p_daily.std() print(f'年化波動率: {vol_ann:.2%}\n95% VaR: {var_95:.2%}\nSharpe: {sharpe:.2f}') > **實務提醒**:VaR 與 CVaR 在尾部事件敏感度上存在差異,建議同時使用以獲得更完整風險畫面。 ## 3.5 報酬分布 ### 3.5.1 正態分布假設 傳統資產定價模型(如 CAPM、Black‑Scholes)往往假設報酬為正態分布。實際上,金融報酬常顯示: - **厚尾**(高峰值) - **偏斜**(左偏或右偏) ### 3.5.2 尾部風險(Tail Risk) 使用 **Extreme Value Theory (EVT)** 或 **Historical Simulation** 來評估極端損失。 ### 3.5.3 重要性分析 | 參數 | 觀察指標 | 典型值 | |------|----------|--------| | 尾部指數 | \(\xi\) | >0 表示厚尾 | | 峰度 | \(\gamma\) | >3 表示高峰 | #### Python 範例:使用 EVT python from scipy.stats import genpareto # 取 5% 左側分位點作為閾值 threshold = np.percentile(p_daily, 5) # 過閾值的超過量 excess = p_daily[p_daily < threshold] - threshold # 擬合 GPD c, loc, scale = genpareto.fit(excess, floc=0) print(f'EVT 參數: shape={c:.3f}, scale={scale:.4f}') > **實務建議**:在建模時,若報酬分布偏離正態,需採用更靈活的分布(如 t‑分布、混合分布)以降低模型風險。 ## 小結 - **描述性統計** 為投資分析的基石,能快速了解資料特徵。 - **相關分析** 是多樣化與風險對沖的關鍵工具。 - **假設檢定** 提供了科學驗證投資信號的方法。 - **風險指標** (波動率、VaR、CVaR、Sharpe/Sortino) 使投資決策具備可度量的風險基準。 - **報酬分布** 需正視非正態性,並採用尾部風險模型以提升風險管理精準度。 > **後續預告**:第四章將帶您進入機器學習模型構建,從監督式與非監督式方法出發,學習如何在高頻資料中提煉「信號」並將其量化為可執行策略。