Skip to content

第6章 金融数据分析与计量经济学

金融数据是计量经济学分析的基石。与一般经济数据相比,金融数据具有独特的时间维度、频率维度和结构维度特征,理解这些特征是正确选择分析方法的前提。

金融数据按照不同维度可划分为以下类型:

数据类型典型示例核心特征
截面数据某一时点各银行ROE无时间维度,仅有个体维度
时间序列某银行2000–2025年月度股价单一个体,时间连续
面板数据50家银行2010–2024年年度财务指标个体×时间双维度
高频数据毫秒级交易记录超高频率、海量观测
文本数据年报管理层讨论与分析非结构化、需NLP处理
网络数据银行间拆借关系图谱节点与边的拓扑结构

其中,面板数据是金融实证研究中最常用的数据类型,它同时包含个体异质性和时间动态性,信息量远大于纯截面或纯时序数据。本节后续内容及第1.2{reference-type=“ref” reference=“sec:panel”}节将重点围绕面板数据展开。

金融数据具有区别于一般经济数据的四大典型特征,这些特征直接影响模型的选择与设定。

金融收益率分布的峰度(Kurtosis)通常远大于3(正态分布的峰度值),呈现”尖峰厚尾”形态。这意味着极端事件(暴跌、暴涨)发生的概率远高于正态分布的预测。例如,2008年金融危机期间标普500单日跌幅超过9%的事件,在正态假设下几乎不可能发生,但实际市场中并不罕见。

Jarque-Bera检验可形式化检验正态性:

JB=n6(S2+(K3)24)χ2(2)JB = \frac{n}{6}\left(S^2 + \frac{(K-3)^2}{4}\right) \sim \chi^2(2)

其中SS为偏度,KK为峰度,nn为样本量。在金融数据中,JB统计量几乎总是显著拒绝正态假设。

金融收益率的波动率具有”集聚性”:大幅波动之后往往跟随大幅波动,平静期之后跟随平静期。Engle(1982)提出的自回归条件异方差(ARCH)模型首次系统刻画了这一现象:

σt2=α0+i=1qαiεti2\sigma_t^2 = \alpha_0 + \sum_{i=1}^{q} \alpha_i \varepsilon_{t-i}^2

Bollerslev(1986)将其推广为GARCH模型:

σt2=α0+i=1qαiεti2+j=1pβjσtj2\sigma_t^2 = \alpha_0 + \sum_{i=1}^{q} \alpha_i \varepsilon_{t-i}^2 + \sum_{j=1}^{p} \beta_j \sigma_{t-j}^2

金融时间序列普遍存在自相关现象。股价收益率的一阶自相关虽弱,但收益率的平方绝对值往往呈现显著的高阶自相关,这正是ARCH效应的体现。Ljung-Box Q检验可用于序列相关性的联合检验:

Q=n(n+2)k=1mρ^k2nkχ2(m)Q = n(n+2)\sum_{k=1}^{m}\frac{\hat{\rho}_k^2}{n-k} \sim \chi^2(m)

金融时间序列常因政策变革、金融危机或制度变迁而发生结构性断裂。例如,中国利率市场化改革前后,银行净息差的均值和波动率均可能发生显著变化。忽略结构突变会导致伪回归和参数估计不一致。Chow检验和Zivot-Andrews检验是检测结构突变的常用方法。

高质量的数据预处理是实证研究可信性的保障。金融数据预处理通常包含以下三个核心步骤。

缺失值产生的原因包括:银行未披露某些财务指标、数据采集过程中的技术故障、新上市银行缺少历史数据等。处理方法包括:

方法适用场景优缺点
删除法缺失比例<`<`5%简单直接,但浪费信息
均值/中位数插补随机缺失保留样本量,但低估方差
线性插值时序连续缺失对趋势数据效果好
多重插补(MI)系统性缺失统计性质最优,但计算量大

在Stata中,多重插补的实现如下:

// 多重插补( chained 方式 )
mi set wide
mi register imputed roe npl_ratio car
mi impute chained (regress) roe npl_ratio car = loan_growth log_asset, add(20)

金融数据中的异常值可能来源于数据录入错误,也可能是真实的极端事件(如金融危机期间的异常波动)。常见检测方法:

IQR法:以四分位距(IQR)为基准,超过Q11.5×IQRQ_1 - 1.5 \times IQRQ3+1.5×IQRQ_3 + 1.5 \times IQR的观测值标记为异常。

Z-score法:标准化后绝对值超过3(或2.576)的观测标记为异常。

Isolation Forest:基于随机森林的异常检测算法,无需假设数据分布,适合高维金融数据。

# Isolation Forest 异常检测
from sklearn.ensemble import IsolationForest
import pandas as pd
df = pd.read_csv("bank_panel.csv")
clf = IsolationForest(contamination=0.05, random_state=42)
df["outlier"] = clf.fit_predict(df[["roe", "npl_ratio", "car", "loan_growth"]])
print(df[df["outlier"] == -1].head())

金融变量量纲差异大(如资产规模以亿元计,比率以百分比计),需要进行标准化或变换:

  • 对数变换ln(Asset)\ln(\text{Asset}),压缩右偏分布,使回归系数可解释为弹性

  • Box-Cox变换y(λ)=(yλ1)/λy^{(\lambda)} = (y^\lambda - 1)/\lambda,λ由极大似然估计确定

  • 缩尾处理(Winsorize):将极端值截断到指定百分位(如1%和99%),保留观测数量同时降低异常值影响

// Stata 缩尾处理
// 安装 winsor2 命令
ssc install winsor2
winsor2 roe, cuts(1 99) replace

面板数据(Panel Data)同时包含个体维度和时间维度,是金融实证研究的主力数据结构。本节系统讲解面板数据回归的三种经典模型及其选择方法。

相较于纯截面数据或纯时间序列数据,面板数据具有三方面优势:

  1. 控制个体异质性:面板数据允许控制不可观测的、不随时间变化的个体特征(如银行的公司文化、地域优势),从而缓解遗漏变量偏误

  2. 更多信息量NN个个体× TT期提供NTNT个观测值,增大自由度,提高估计效率

  3. 减少共线性:个体内变异与个体间变异的结合,降低了多重共线性风险

面板数据的基本模型可写为:

yit=αi+xitβ+εit,i=1,,N;  t=1,,Ty_{it} = \alpha_i + \mathbf{x}_{it}'\boldsymbol{\beta} + \varepsilon_{it}, \quad i=1,\ldots,N;\; t=1,\ldots,T

其中αi\alpha_i为个体效应(个体异质性),xit\mathbf{x}_{it}为解释变量向量,β\boldsymbol{\beta}为待估参数向量,εit\varepsilon_{it}为随机扰动项。对αi\alpha_i的不同假设形成了三种经典模型。

混合OLS假设所有个体具有相同的截距项(αi=α\alpha_i = \alpha),将面板数据当作一个大样本进行回归:

yit=α+xitβ+εity_{it} = \alpha + \mathbf{x}_{it}'\boldsymbol{\beta} + \varepsilon_{it}

适用条件:个体间不存在不可观测的异质性,或异质性与解释变量不相关。

局限性:若个体效应αi\alpha_i确实存在且与xit\mathbf{x}_{it}相关,忽略αi\alpha_i会导致估计偏误------这正是面板数据模型选择的核心问题。

// 混合OLS回归
reg roe npl_ratio car loan_growth log_asset, robust
est store ols

固定效应模型假设个体效应αi\alpha_i与解释变量xit\mathbf{x}_{it}相关,因此必须控制αi\alpha_i才能获得一致的估计。FE的核心思想是:利用”组内变异”(within variation)消除个体效应。

对模型进行组内去均值变换:

yityˉi=(xitxˉi)β+(εitεˉi)y_{it} - \bar{y}_i = (\mathbf{x}_{it} - \bar{\mathbf{x}}_i)'\boldsymbol{\beta} + (\varepsilon_{it} - \bar{\varepsilon}_i)

个体效应αi\alpha_i在差分中被消去,OLS估计该变换后的模型即可得到组内估计量β^FE\hat{\boldsymbol{\beta}}_{FE}

另一种等价方法是引入NN个个体虚拟变量直接估计:

yit=j=1NαjDj,it+xitβ+εity_{it} = \sum_{j=1}^{N}\alpha_j D_{j,it} + \mathbf{x}_{it}'\boldsymbol{\beta} + \varepsilon_{it}

NN较大时,LSDV计算量大,但与组内估计量数值等价。

// 固定效应模型(两种等价命令)
// 方式一:xtreg
xtset bank_id year
xtreg roe npl_ratio car loan_growth log_asset, fe robust
est store fe
// 方式二:reghdfe(推荐,支持多维固定效应)
reghdfe roe npl_ratio car loan_growth log_asset, absorb(bank_id year) robust
est store fe2

随机效应模型(Random Effects, RE)

Section titled “随机效应模型(Random Effects, RE)”

随机效应模型假设个体效应αi\alpha_i与解释变量xit\mathbf{x}_{it}不相关,即:

Cov(αi,xit)=0\text{Cov}(\alpha_i, \mathbf{x}_{it}) = 0

在此假设下,αi\alpha_i可被视为随机扰动项的一部分,模型变为:

yit=α+xitβ+uit,uit=αi+εity_{it} = \alpha + \mathbf{x}_{it}'\boldsymbol{\beta} + u_{it}, \quad u_{it} = \alpha_i + \varepsilon_{it}

复合扰动项uitu_{it}的方差结构为:

Var(uit)=σα2+σε2,Cov(uit,uis)=σα2  (ts)\text{Var}(u_{it}) = \sigma_\alpha^2 + \sigma_\varepsilon^2, \quad \text{Cov}(u_{it}, u_{is}) = \sigma_\alpha^2 \;(t \neq s)

RE模型使用广义最小二乘法(GLS)估计,通过部分组内变换(quasi-demeaning)实现:

yitθ^yˉi=(1θ^)α+(xitθ^xˉi)β+扰动项y_{it} - \hat{\theta}\bar{y}_i = (1-\hat{\theta})\alpha + (\mathbf{x}_{it} - \hat{\theta}\bar{\mathbf{x}}_i)'\boldsymbol{\beta} + \text{扰动项}

其中\thetâ为变换参数,取值介于0(OLS)和1(FE)之间。

// 随机效应模型
xtreg roe npl_ratio car loan_growth log_asset, re robust
est store re

三种模型的选择依赖于严格的统计检验,形成一套递进的检验逻辑:

原假设H0H_0: 所有个体效应αi\alpha_i均相等(即α1=α2==αN\alpha_1 = \alpha_2 = \cdots = \alpha_N)。F统计量为:

F=(RFE2ROLS2)/(N1)(1RFE2)/(NTNK)F(N1,NTNK)F = \frac{(R_{FE}^2 - R_{OLS}^2)/(N-1)}{(1-R_{FE}^2)/(NT-N-K)} \sim F(N-1, NT-N-K)

若拒绝原假设,说明个体效应存在,应使用FE而非OLS。

Hausman检验:固定效应 vs 随机效应

Section titled “Hausman检验:固定效应 vs 随机效应”

Hausman检验的核心问题是:个体效应αi\alpha_i是否与解释变量相关?

原假设H0H_0: Cov(αi,xit)=0\text{Cov}(\alpha_i, \mathbf{x}_{it}) = 0(RE成立)

检验统计量:

H=(β^FEβ^RE)[Var(β^FE)Var(β^RE)]1(β^FEβ^RE)χ2(K)H = (\hat{\boldsymbol{\beta}}_{FE} - \hat{\boldsymbol{\beta}}_{RE})'[\text{Var}(\hat{\boldsymbol{\beta}}_{FE}) - \text{Var}(\hat{\boldsymbol{\beta}}_{RE})]^{-1}(\hat{\boldsymbol{\beta}}_{FE} - \hat{\boldsymbol{\beta}}_{RE}) \sim \chi^2(K)

HH显著(p<0.05p < 0.05),拒绝原假设,选择FE;否则选择RE。

Breusch-Pagan Lagrange Multiplier检验判断个体效应的方差σα2\sigma_\alpha^2是否为零。

原假设H0H_0: σα2=0\sigma_\alpha^2 = 0(不存在个体效应,OLS适用)

// 完整的模型选择检验流程
// Step 1: 估计FE和RE
xtreg roe npl_ratio car loan_growth log_asset, fe robust
est store fe
xtreg roe npl_ratio car loan_growth log_asset, re robust
est store re
// Step 2: Hausman检验(FE vs RE)
hausman fe re
// Step 3: BP-LM检验(OLS vs RE)
xttest0
// Step 4: 输出三列回归表
esttab ols fe re using reports/ch07_panel_reg.rtf, ///
b(3) se(3) star(* 0.1 ** 0.05 *** 0.01) ///
mtitles("OLS" "FE" "RE") ///
scalars(N r2_a) replace

当模型包含因变量的滞后项(如yi,t1y_{i,t-1})作为解释变量时,FE和RE估计量均不一致(Nickell偏误)。Arellano和Bond(1991)提出的差分GMM估计量通过使用滞后水平值作为差分方程的工具变量来解决这一问题:

Δyit=βΔyi,t1+Δxitγ+Δεit\Delta y_{it} = \beta \Delta y_{i,t-1} + \Delta \mathbf{x}_{it}'\boldsymbol{\gamma} + \Delta \varepsilon_{it}
// Arellano-Bond 差分GMM
xtabond roe l.roe npl_ratio car loan_growth, ///
lags(1) twostep robust
// Sargan/Hansen 过度识别检验
estat sargan
estat ar1, artests(2)
estat ar2, artests(2)

时间序列预测是金融数据分析的核心任务之一,广泛应用于股价走势判断、利率预测、消费趋势分析等场景。本节从经典统计方法到深度学习方法进行递进讲解。

任何时间序列YtY_t可分解为三个组分:

Yt=Tt+St+RtY_t = T_t + S_t + R_t

其中TtT_t趋势分量(长期方向),StS_t季节分量(周期性波动),RtR_t残差分量(随机扰动)。

  • 加法分解Yt=Tt+St+RtY_t = T_t + S_t + R_t,适用于季节波动幅度相对恒定

  • 乘法分解Yt=Tt×St×RtY_t = T_t \times S_t \times R_t,适用于季节波动幅度随趋势增大

# STL 分解( Python 实现 )
from statsmodels.tsa.seasonal import STL
import pandas as pd
df = pd.read_csv("bank_card_spending.csv", parse_dates=["date"], index_col="date")
stl = STL(df["amount"], period=12)
res = stl.fit()
res.plot()

SARIMA(Seasonal Autoregressive Integrated Moving Average)是经典时间序列预测的标杆模型,表示为SARIMA(p,d,q)(P,D,Q)s(p,d,q)(P,D,Q)_s

AR(自回归)模型:当前值由过去值的线性组合加噪声决定:

Yt=c+ϕ1Yt1+ϕ2Yt2++ϕpYtp+εtY_t = c + \phi_1 Y_{t-1} + \phi_2 Y_{t-2} + \cdots + \phi_p Y_{t-p} + \varepsilon_t

MA(移动平均)模型:当前值由过去噪声的线性组合决定:

Yt=c+εt+θ1εt1+θ2εt2++θqεtqY_t = c + \varepsilon_t + \theta_1 \varepsilon_{t-1} + \theta_2 \varepsilon_{t-2} + \cdots + \theta_q \varepsilon_{t-q}

ARIMA模型:在ARMA基础上引入差分操作,处理非平稳序列。dd阶差分:

ΔdYt=(1B)dYt\Delta^d Y_t = (1-B)^d Y_t

其中BB为滞后算子。d=1d=1为一阶差分:ΔYt=YtYt1\Delta Y_t = Y_t - Y_{t-1}

SARIMA模型:在ARIMA基础上增加季节差分和季节自回归/移动平均项:

ΦP(Bs)ϕp(B)(1B)d(1Bs)DYt=ΘQ(Bs)θq(B)εt\Phi_P(B^s)\phi_p(B)(1-B)^d(1-B^s)^D Y_t = \Theta_Q(B^s)\theta_q(B)\varepsilon_t

其中ΦP\Phi_PΘQ\Theta_Q为季节多项式,ss为季节周期(月度数据s=12s=12)。

SARIMA的定阶需要确定6个参数(p,d,q)(P,D,Q)s(p,d,q)(P,D,Q)_s,主要方法包括:

  1. ACF/PACF图:自相关函数(ACF)和偏自相关函数(PACF)的截尾/拖尾特征可初步判断(p,q)(p,q)
- ACF拖尾 + PACF$p$阶截尾 ⇒ AR($p$)
- ACF$q$阶截尾 + PACF拖尾 ⇒ MA($q$)
  1. AIC/BIC准则:在候选模型中选择信息准则最小的模型
- AIC$= -2\ln L + 2k$,偏好复杂模型
- BIC$= -2\ln L + k\ln n$,惩罚更强,偏好简约模型
  1. 网格搜索:遍历(p,d,q)(P,D,Q)(p,d,q)(P,D,Q)组合,比较AIC/BIC
# SARIMA 自动定阶与预测
import pmdarima as pm
import pandas as pd
df = pd.read_csv("bank_card_spending.csv", parse_dates=["date"])
model = pm.auto_arima(

df[“amount”], seasonal=True, m=12, # 月度数据,季节周期12 d=1, D=1, # 一阶差分 + 一阶季节差分 max_p=3, max_q=3, # 非季节部分最大阶数 max_P=2, max_Q=2, # 季节部分最大阶数 information_criterion=“aic”, trace=True

)
print(model.summary())
# 预测未来30天
forecast, conf_int = model.predict(n_periods=30, return_conf_int=True)

长短期记忆网络(Long Short-Term Memory, LSTM)是Hochreiter和Schmidhuber于1997年提出的循环神经网络变体,专门解决长序列学习中的梯度消失问题。

循环神经网络(RNN)通过隐藏状态hth_t传递历史信息:

ht=σ(Whhht1+Wxhxt+bh)h_t = \sigma(W_{hh}h_{t-1} + W_{xh}x_t + b_h)

RNN的核心问题是梯度消失:在反向传播中,梯度随时间步指数级衰减,导致无法学习长期依赖关系。

LSTM通过精心设计的门控机制解决梯度消失问题:

  1. 遗忘门(Forget Gate):决定从细胞状态中丢弃哪些信息
$f_t = \sigma(W_f \cdot [h_{t-1}, x_t] + b_f)$
  1. 记忆门(Input Gate):决定哪些新信息写入细胞状态
$i_t = \sigma(W_i \cdot [h_{t-1}, x_t] + b_i)$
$\tilde{C}_t = \tanh(W_C \cdot [h_{t-1}, x_t] + b_C)$
  1. 输出门(Output Gate):决定输出哪些信息
$o_t = \sigma(W_o \cdot [h_{t-1}, x_t] + b_o)$
$h_t = o_t \cdot \tanh(C_t)$

细胞状态更新规则:

Ct=ftCt1+itC~tC_t = f_t \odot C_{t-1} + i_t \odot \tilde{C}_t

将时间序列转换为监督学习问题需要”窗口滑动”方法:用过去ww个时间步的值预测下一个时间步的值。

# LSTM 时间序列预测
import numpy as np
import torch
import torch.nn as nn
# 窗口滑动构建序列
def create_sequences(data, window=12):

X, y = [], [] for i in range(len(data) - window): X.append(data[i:i+window]) y.append(data[i+window]) return np.array(X), np.array(y)

# 定义 LSTM 模型
class BankLSTM(nn.Module):

def init(self, input_size=1, hidden_size=64, num_layers=2): super().init() self.lstm = nn.LSTM(input_size, hidden_size, num_layers, batch_first=True, dropout=0.2) self.fc = nn.Linear(hidden_size, 1)

def forward(self, x): out, _ = self.lstm(x) return self.fc(out[:, -1, :])

# 训练
model = BankLSTM()
criterion = nn.MSELoss()
optimizer = torch.optim.Adam(model.parameters(), lr=0.001)

Prophet是Facebook(现Meta)开发的开源时间序列预测工具,基于加法分解模型:

y(t)=g(t)+s(t)+h(t)+εty(t) = g(t) + s(t) + h(t) + \varepsilon_t

其中g(t)g(t)为趋势函数(分段线性或逻辑增长),s(t)s(t)为季节函数(傅里叶级数),h(t)h(t)为节假日效应,εt\varepsilon_t为残差。

Prophet的优势在于:

  • 自动检测趋势变化点

  • 灵活处理多重季节性(年/周/日)

  • 内置节假日效应建模

  • 无需专业调参,适合业务指标快速预测

# Prophet 预测
from prophet import Prophet
import pandas as pd
df = pd.read_csv("bank_card_spending.csv")
df = df.rename(columns={"date": "ds", "amount": "y"})
model = Prophet(

yearly_seasonality=True, weekly_seasonality=True, changepoint_prior_scale=0.05

)
model.fit(df)
# 预测未来30天
future = model.make_future_dataframe(periods=30)
forecast = model.predict(future)
model.plot(forecast)
model.plot_components(forecast)

时间序列预测模型的性能评估使用以下指标:

指标公式含义
RMSE1nt=1n(yty^t)2`\sqrt{\frac{1}{n}\sum_{t=1}^{n}(y_t - \hat{y}_t)^2}`均方根误差,单位与原数据一致
MAE$`\frac{1}{n}\sum_{t=1}^{n}y_t - \hat{y}_t
MAPE$`\frac{100%}{n}\sum_{t=1}^{n}\left\frac{y_t - \hat{y}_t}{y_t}\right

相关关系不等于因果关系。金融研究中,我们关心的核心问题往往是因果性的:降低存款准备金率是否导致贷款增加?数字金融是否导致银行效率提升?本节介绍金融领域最常用的四种因果推断方法。

双重差分法(Difference-in-Differences, DID)

Section titled “双重差分法(Difference-in-Differences, DID)”

双重差分法是政策评估中最常用的因果推断方法,通过比较处理组和对照组在政策前后的变化差异来识别因果效应。

政策前政策后差分
处理组Yˉ00T`\bar{Y}_{00}^T`Yˉ11T`\bar{Y}_{11}^T`ΔT=Yˉ11TYˉ00T`\Delta_T = \bar{Y}_{11}^T - \bar{Y}_{00}^T`
对照组Yˉ00C`\bar{Y}_{00}^C`Yˉ11C`\bar{Y}_{11}^C`ΔC=Yˉ11CYˉ00C`\Delta_C = \bar{Y}_{11}^C - \bar{Y}_{00}^C`
DIDδ^=ΔTΔC`\hat{\delta} = \Delta_T - \Delta_C`

DID估计量可由回归方程得到:

Yit=α+βTreati+γPostt+δ(Treati×Postt)+εitY_{it} = \alpha + \beta \cdot \text{Treat}_i + \gamma \cdot \text{Post}_t + \delta \cdot (\text{Treat}_i \times \text{Post}_t) + \varepsilon_{it}

其中δ即为DID估计量,表示政策的平均处理效应(ATT)。

DID有效性的关键假设是平行趋势(Parallel Trends):在没有政策干预的情况下,处理组和对照组的变化趋势相同。平行趋势无法直接检验(因为反事实不可观测),但可通过事件研究法(Event Study)检验政策前的趋势一致性:

Yit=αi+γt+k1δkDitk+εitY_{it} = \alpha_i + \gamma_t + \sum_{k \neq -1} \delta_k \cdot D_{it}^k + \varepsilon_{it}

其中DitkD_{it}^k为事件时间虚拟变量,政策前各期δk\delta_k应统计不显著。

// DID 回归 + 平行趋势检验
// 生成处理变量与交互项
gen treat_post = treat * post
// 基准DID回归
reghdfe y treat_post treat post, absorb(id year) robust
// 事件研究法(平行趋势检验)
eventdd y, method(hdfe) absorb(id year) treat(treat) time(year) ///
baseline(-1) leads(5) lags(5) graph

断点回归(Regression Discontinuity Design, RDD)

Section titled “断点回归(Regression Discontinuity Design, RDD)”

断点回归利用处理变量在某个阈值处的”断点”来识别因果效应。核心逻辑:刚好在阈值两侧的个体非常相似,唯一的差异就是是否接受处理。

精确断点(Sharp RDD):处理变量在断点cc处从0跳变为1:

Di=1(Xic)D_i = \mathbb{1}(X_i \geq c)

模糊断点(Fuzzy RDD):处理概率在断点处不连续,但并非从0跳到1:

limxc+P(Di=1Xi=x)limxcP(Di=1Xi=x)\lim_{x \to c^+} P(D_i=1|X_i=x) \neq \lim_{x \to c^-} P(D_i=1|X_i=x)

局部线性回归的带宽hh是RDD的关键参数,带宽过大引入偏误,带宽过小增大方差。常用选择方法:

  • IK法(Imbens-Kalyanaraman):最小化均方误差

  • CCT法(Calonico-Cattaneo-Titiunik):稳健偏误校正

应用场景:信贷门槛效应------某银行规定信用评分低于600分不发放贷款,可利用600分附近样本识别贷款对借款人收入的因果效应。

// 断点回归( Stata 实现 )
// 安装 rdrobust 包
ssc install rdrobust, replace
// 精确断点回归
rdrobust y running_var, c(600)
// 带宽敏感性检验
rdrobust y running_var, c(600) bwselect(mserd)
// 绘制断点图
rdplot y running_var, c(600)

工具变量法(Instrumental Variables, IV)

Section titled “工具变量法(Instrumental Variables, IV)”

当解释变量与扰动项相关时(Cov(Xi,εi)0\text{Cov}(X_i, \varepsilon_i) \neq 0),OLS估计量不一致。内生性的来源包括:

  1. 遗漏变量:不可观测的因素同时影响解释变量和被解释变量

  2. 联立因果:解释变量与被解释变量互为因果

  3. 测量误差:解释变量的测量不准确

工具变量ZiZ_i需满足:

  1. 相关性(Relevance):Cov(Zi,Xi)0\text{Cov}(Z_i, X_i) \neq 0,工具变量与内生解释变量强相关

  2. 外生性(Exogeneity):Cov(Zi,εi)=0\text{Cov}(Z_i, \varepsilon_i) = 0,工具变量与扰动项不相关

  3. 排他性(Exclusion Restriction):工具变量只能通过内生解释变量影响被解释变量

第一阶段:用工具变量预测内生解释变量

X^i=π0+π1Zi+Wiπ2+vi\hat{X}_i = \pi_0 + \pi_1 Z_i + \mathbf{W}_i'\boldsymbol{\pi}_2 + v_i

第二阶段:用预测值替换内生变量进行回归

Yi=β0+β1X^i+Wiγ+uiY_i = \beta_0 + \beta_1 \hat{X}_i + \mathbf{W}_i'\boldsymbol{\gamma} + u_i
// 两阶段最小二乘法(2SLS)
// ivreg2 命令(推荐)
ssc install ivreg2, replace
ivreg2 y (x_endogenous = z_instrument), first robust
// 弱工具变量检验
ivreg2 y (x_endogenous = z_instrument), first robust ///
ffirst // 报告第一阶段 F 统计量
// 经验法则:第一阶段 F > 10 则无弱工具变量问题

合成控制法(Synthetic Control Method, SCM)由Abadie等(2010)提出,适用于单个处理单元(如某个省份实施政策)的因果推断。核心思想:用未实施政策的控制单元的加权组合来构造处理单元的”合成对照”。

合成对照t=j控制组wjYjt,wj=1,  wj0\text{合成对照}_t = \sum_{j \in \text{控制组}} w_j \cdot Y_{jt}, \quad \sum w_j = 1, \; w_j \geq 0

权重wjw_j通过最小化政策前处理单元与控制单元的特征差异来确定。

AI大模型正在重塑计量经济学的研究流程,但它始终是助手而非替代------研究问题的提出、模型的经济含义解释、结果的合理性判断,这些核心环节仍需研究者的专业判断。

环节AI可替代程度人工必要程度
文献综述辅助
数据获取与清洗
描述统计与可视化
模型估计与检验
结果解释与经济学判断
稳健性检验设计
论文撰写

Step 1:文献综述→确定模型设定

Section titled “Step 1:文献综述→确定模型设定”

利用AI快速梳理相关文献,提炼已有研究的模型设定、变量选择和估计方法。提示词示例:

请帮我梳理"银行盈利能力影响因素"的实证文献:
1. 列出近5年5篇代表性中文文献(含作者、年份、期刊)
2. 每篇文献的核心模型设定是什么?
3. 常用的被解释变量和解释变量有哪些?
4. 主要的实证策略(FE/RE/GMM/IV)是什么?
5. 现有研究的不足之处是什么?

Step 2:数据获取与清洗(AI辅助)

Section titled “Step 2:数据获取与清洗(AI辅助)”

AI可辅助编写数据爬取脚本、缺失值处理代码和异常值检测逻辑,但数据的准确性和完整性仍需人工核验。

Step 3:描述统计与可视化(AI辅助)

Section titled “Step 3:描述统计与可视化(AI辅助)”

让AI生成描述统计表、相关系数矩阵和关键变量的分布图。此环节AI可高度自动化,但研究者应关注数据是否符合经济直觉。

Step 4:模型估计与检验(AI执行+人工判断)

Section titled “Step 4:模型估计与检验(AI执行+人工判断)”

AI可快速执行多种模型估计,但以下关键判断必须由研究者做出:

  • 固定效应vs随机效应的选择依据

  • 工具变量的合理性论证

  • 系数的经济含义是否合理

Step 5:稳健性检验设计(AI建议+人工决策)

Section titled “Step 5:稳健性检验设计(AI建议+人工决策)”

AI可建议稳健性检验方案,但检验的合理性需要研究者判断:

  • 替换变量度量方式

  • 调整样本范围(排除特殊年份/银行类型)

  • 使用不同估计方法

  • 安慰剂检验/ falsification test

AI可辅助起草初稿,但经济学解释必须基于研究者的专业判断。特别注意:回归系数的统计显著不等于经济显著------一个1%1\%显著水平的系数,如果经济量级微不足道(如ROE提高0.001个百分点),其实际意义有限。

实验:银行盈利能力影响因素实证研究

Section titled “实验:银行盈利能力影响因素实证研究”

本实验将完整走一遍论文级实证研究的全流程,从研究假设到稳健性检验,形成一份可投稿级别的回归分析报告。

基于银行业理论和中国金融制度背景,提出以下三条研究假设:

  1. H1:不良贷款率与银行盈利能力负相关。不良贷款率越高,拨备计提越多,侵蚀利润空间。

  2. H2:资本充足率与银行盈利能力正相关。资本充足率高的银行风险抵御能力强,可承担更高收益的资产配置。

  3. H3:资产规模与银行盈利能力存在非线性关系。规模经济在初期提升盈利,但过度扩张后管理成本上升,出现规模不经济。

变量类型变量名定义数据来源
被解释变量ROE净利润/股东权益Bankscope
ROA净利润/总资产Bankscope
核心解释变量NPL不良贷款/总贷款银行年报
CAR资本充足率银行年报
SIZEln(总资产)Bankscope
控制变量LOAN贷款增速计算得到
GDPGDP增速国家统计局
CPI通货膨胀率国家统计局
异质性变量TYPE银行类型手工分类
REGION所在区域手工分类

本实验使用Bankscope(现Bank Focus)数据库中中国商业银行2010—2024年的年度财务数据,涵盖国有大型银行、股份制银行、城市商业银行和农村商业银行四类机构。样本剔除了政策性银行、外资银行和数据严重缺失的观测。

  1. 基准回归:双向固定效应模型(控制个体和年份固定效应)

  2. 稳健性检验:替换被解释变量(ROA)、缩尾处理、调整样本区间

  3. 异质性分析:按银行类型和区域分组回归

  4. 中介效应:检验风险承担是否中介资本充足率对盈利能力的影响

任务:银行盈利能力研究——描述统计
请使用 Stata 完成以下分析:
1. 读入 bank_profitability.dta
2. 对所有变量进行描述统计(均值、标准差、最小值、最大值、观测数)
3. 计算核心变量的相关系数矩阵
4. 绘制 ROE 的直方图,检验正态性
5. 输出描述统计表和相关系数矩阵到 reports/ch07_desc_stat.txt
任务:银行盈利能力研究——基准回归
请使用 Stata 的 reghdfe 命令完成基准回归:
1. 模型设定:reghdfe roe npl car size loan_growth gdp_growth cpi, absorb(bank_id year) cluster(bank_id)
2. 同时估计三个嵌套模型:
- 模型1:仅核心解释变量
- 模型2:加入控制变量
- 模型3:加入年份固定效应
3. 输出三列回归表到 reports/ch07_baseline.rtf
任务:银行盈利能力研究——稳健性检验
请完成以下稳健性检验:
1. 替换被解释变量:用 ROA 替代 ROE
2. 缩尾处理:对 ROE 在 1% 和 99% 分位进行 Winsorize
3. 排除 2020 年(新冠疫情异常年份)
4. 使用滞后解释变量(t-1期)缓解反向因果
每个检验输出一列回归结果,合并为稳健性检验表格
保存到 reports/ch07_robustness.rtf
任务:银行盈利能力研究——异质性分析
请按以下维度进行分组回归:
1. 按银行类型分组:国有大行 vs 股份行 vs 城商行 vs 农商行
2. 按区域分组:东部 vs 中部 vs 西部
3. 对每组分别运行基准回归模型
4. 用 Chow 检验判断组间系数差异是否显著
输出分组回归表到 reports/ch07_heterogeneity.rtf
任务:银行盈利能力研究——中介效应检验
检验假说:资本充足率(CAR) → 风险承担(RISK) → 盈利能力(ROE)
使用 Sobel 中介效应检验三步法:
| Step a: reg roe car controls, robust | (总效应) |
| Step b: reg risk car controls, robust | (a路径) |
| Step c: reg roe car risk controls, robust | (直接效应+b路径) |
计算中介效应 = a * b
使用 sgmediation 命令完成 Sobel 检验
输出中介效应检验结果到 reports/ch07_mediation.txt
#交付物文件名
1描述统计表 + 相关系数矩阵reports/ch07_desc_stat.txt
2基准回归表(三列)reports/ch07_baseline.rtf
3稳健性检验表reports/ch07_robustness.rtf
4异质性分析表reports/ch07_heterogeneity.rtf
5中介效应检验结果reports/ch07_mediation.txt
6200字研究结论写入实验报告

研究结论示例

基于2010—2024年中国商业银行面板数据,采用双向固定效应模型实证检验了银行盈利能力的影响因素。研究发现:(1)不良贷款率对ROE有显著负向影响(系数0.45-0.45p<0.01p<0.01),支持H1;(2)资本充足率对ROE有显著正向影响(系数0.320.32p<0.05p<0.05),支持H2;(3)资产规模与ROE呈倒U型关系,拐点出现在资产规模约5000亿元处,部分支持H3。上述结论在替换被解释变量、缩尾处理、排除异常年份等稳健性检验中保持一致。异质性分析表明,资本充足率对城商行和农商行的盈利提升效应更为显著。

本章系统介绍了金融数据分析与计量经济学的核心方法。7.1节阐述了金融数据的六大类型和四大典型特征(尖峰厚尾、异方差、序列相关、结构突变),以及缺失值处理、异常值检测和变量变换的完整预处理流程。7.2节深入讲解了面板数据回归的三种经典模型(混合OLS、固定效应、随机效应)及其选择检验(F检验、Hausman检验、BP-LM检验),并介绍了动态面板GMM方法。7.3节从时间序列分解出发,依次介绍了SARIMA、LSTM和Prophet三种预测方法。7.4节阐述了因果推断的四种主流方法(DID、RDD、IV、SCM)。7.5节构建了AI辅助计量分析的六步工作流,并警示了过拟合、数据窥探、伪回归等常见陷阱。7.6节通过银行盈利能力影响因素的完整实验,将上述方法串联为论文级实证研究。