2、过度自信的测量方法:校准测试、置信区间法、过度交易指标、问卷调查法
好,咱们直接进入正题。过度自信这东西,看不见摸不着,怎么量化?我刚开始做行为金融研究时,也头疼这个问题。你总不能直接问交易员「你觉得自己是不是过度自信了?」——他肯定说没有,对吧?
所以,学术界和业界摸索出了几套相对靠谱的测量方法。我个人把它们分成四类:校准测试、置信区间法、过度交易指标、问卷调查法。下面我一个一个拆开讲。
核心观点:没有一种方法是完美的。我建议你至少组合使用两种方法,交叉验证,结果才可信。
2.1 校准测试(Calibration Test)
这个方法最直接。说白了,就是让你做判断题,然后评估你的「正确率」和「自信度」是否匹配。
怎么做?
- 给被试一系列二选一的问题(比如「A股明天涨还是跌?」)
- 让被试回答,并给出自信度(比如「我80%确定选A」)
- 统计所有自信度为80%的题目中,实际正确的比例是多少
如果一个人说「我80%确定」的题目,实际正确率只有60%,那他就是过度自信了。反之,如果实际正确率是80%,那就是校准良好。
我的经验:我在一个量化团队做过内部测试。让交易员预测一周内某只股票的涨跌方向,并给出自信度。结果很有意思——那些自信度经常超过80%的交易员,实际正确率不到55%。反而是那些说「我只有60%把握」的人,正确率接近60%。嗯,这里要注意,校准测试对问题设计很敏感,问题太简单或太难都会影响结果。
校准测试的典型结果表格:
| 自信度区间 | 题目数量 | 实际正确率 | 校准偏差 |
|---|---|---|---|
| 50%-60% | 20 | 55% | +2% |
| 60%-70% | 18 | 58% | -7% |
| 70%-80% | 15 | 62% | -13% |
| 80%-90% | 10 | 65% | -20% |
| 90%-100% | 5 | 70% | -25% |
你看,自信度越高,偏差越大。这就是典型的过度自信表现。
2.2 置信区间法(Confidence Interval Method)
这个方法更贴近实际投资场景。让被试对某个不确定量(比如「下个月沪深300指数是多少?」)给出一个90%的置信区间。
关键指标:如果一个人是完美校准的,那么他给出的90%置信区间,应该覆盖真实值90%的次数。但过度自信的人,给出的区间往往太窄了。
为什么会这样?因为他们低估了不确定性。我见过一个极端案例:某交易员对「下周黄金价格」给出了90%置信区间是[1950, 2050],结果实际价格跌到了1880。区间根本没覆盖到。这就是典型的「窄区间偏差」。
注意:置信区间法有个陷阱。如果你问的问题太宽泛(比如「明年标普500的点位」),被试可能会给出非常宽的区间来「保命」。所以,我建议问题的时间跨度不要太长,1周到1个月比较合适。
计算指标:
- 区间覆盖率:实际值落在区间内的比例。理想值是90%。
- 区间宽度:过度自信的人区间更窄。
- 偏差分数:覆盖率 - 目标置信度。负数表示过度自信。
2.3 过度交易指标(Overtrading Metrics)
这个方法不用问卷,直接看交易数据。我个人最喜欢这个,因为数据不会撒谎。
核心逻辑:过度自信的交易者会认为自己能精准择时,所以交易频率异常高。但高频交易往往伴随着更低的收益率。
常用指标:
- 换手率:月度交易量 / 持仓市值。换手率超过200%就算很高了。
- 交易次数:月度交易笔数。我见过一个散户一个月交易了80多次,账户收益率是负的。
- 持仓周期:平均持仓天数。过度自信的人持仓周期通常很短。
- 交易收益率:扣除交易成本后的净收益率。过度交易往往导致收益率下降。
一个经典研究:Barber & Odean(2000)发现,男性交易员的换手率比女性高45%,但净收益率却低1.4%。这就是过度自信的代价。
代码示例:计算过度交易指标
import pandas as pd
# 假设你有一个交易记录DataFrame
# 字段:date, symbol, action, quantity, price
def calculate_overtrading_metrics(trades_df, portfolio_value):
# 计算月度换手率
trades_df['month'] = pd.to_datetime(trades_df['date']).dt.to_period('M')
monthly_turnover = trades_df.groupby('month')['quantity'].sum() * 100 / portfolio_value
# 计算平均持仓周期
trades_df['holding_period'] = trades_df.groupby('symbol')['date'].diff().dt.days
avg_holding_period = trades_df['holding_period'].mean()
# 计算交易次数
trade_count = len(trades_df)
return {
'monthly_turnover': monthly_turnover.mean(),
'avg_holding_period_days': avg_holding_period,
'total_trades': trade_count
}
# 使用示例
metrics = calculate_overtrading_metrics(my_trades, 100000)
print(f"月均换手率: {metrics['monthly_turnover']:.1f}%")
print(f"平均持仓周期: {metrics['avg_holding_period_days']:.1f}天")
2.4 问卷调查法(Survey Method)
这个方法最古老,但也最灵活。通过标准化问卷,直接测量被试的过度自信倾向。
常用量表:
- 过度自信量表(Overconfidence Scale):包含10-20个问题,比如「我比一般人更擅长选股」。
- 控制幻觉量表(Illusion of Control Scale):测量被试是否高估自己对市场的控制能力。
- 自我归因偏差量表:测量被试是否倾向于把成功归因于自己,把失败归因于外部。
我的建议:问卷调查法有个大问题——社会期望偏差。被试可能会给出「正确」答案,而不是真实答案。我曾经设计过一个问卷,把问题藏在一些无关题目中间,效果好了不少。你想想看,如果直接问「你觉得自己交易水平高吗?」,谁会说低呢?
典型问卷题目示例:
| 题目 | 非常不同意 | 不同意 | 中立 | 同意 | 非常同意 |
|---|---|---|---|---|---|
| 我能够准确预测市场短期走势 | 1 | 2 | 3 | 4 | 5 |
| 我的交易策略比大多数人更有效 | 1 | 2 | 3 | 4 | 5 |
| 亏损主要是因为市场不理性 | 1 | 2 | 3 | 4 | 5 |
得分越高,过度自信倾向越明显。
知识体系框架图
下面我用一张SVG图,把这四种方法的关系和适用场景梳理一下:
嗯,这张图把四种方法的关系理清楚了。我个人在实际项目中,最常用的是「校准测试 + 过度交易指标」的组合。为什么?因为一个测主观自信度,一个看客观行为数据,两者结合能更全面地刻画一个人的过度自信程度。
好了,这四种方法就讲到这里。记住,没有万能的方法,关键是根据你的研究场景和数据可得性,灵活选择。
公众号:蓝海资料掘金营,微信deep3321