置信区间
一、核心概念
置信区间(Confidence Interval, CI) 是在统计学中用来估计一个总体参数(如平均值、比例)可能存在的范围。它不是一个确定的范围,而是伴随着一个置信水平(通常是95%),表示我们对这个范围包含真实参数值的可信程度。
二、一个经典的例子:理解直觉
想象你想知道全中国所有大学生的平均身高(总体参数)。你不可能测量每一个人(总体),所以你会随机抽取1000名大学生(样本)测量他们的身高,并计算出这1000人的平均身高是172cm(样本统计量)。
但是,你知道如果再抽1000人,平均身高可能就不是172cm了。那么,如何根据这个172cm来推测全国大学生的真实平均身高呢?
这时你就会使用置信区间。你可能会说:
“根据样本数据,我有95%的把握认为,全国大学生的真实平均身高在171cm到173cm之间。”
这句话里的 [171cm, 173cm] 就是置信区间,95% 就是置信水平。
三、关键点解读
它是对参数的估计,不是对个体的预测:
正确理解:区间是用来估计那个固定的、但我们不知道的总体平均值(参数)。
常见误解:不是说“95%的大学生的身高在171到173厘米之间”。(那是另一个概念,叫“参考范围”)。
置信水平(95%)是什么意思?
这可能是最容易被误解的地方。95%的置信水平不代表“这个特定的区间有95%的概率包含真实值”。在频率学派统计学中,真实值是一个固定值,它要么在区间内,要么不在,不存在概率问题。
正确理解:如果我们重复抽样100次,并基于每次的样本数据计算出100个95%的置信区间,那么大约有95个区间会包含真实的总体参数,大约有5个不会。
简单比喻:你撒网捕鱼(计算置信区间)。你有95%的置信水平意味着,你用的这种撒网方法,撒100次网,大约有95次能网到鱼(真实参数)。至于某一次撒网(你计算出的那个具体区间)有没有网到鱼,你是不知道的,但你对你撒网的方法非常有信心。
置信区间的宽度说明了什么?
宽度代表精度。区间越宽,说明你的估计越不精确,不确定性越大。
什么会影响宽度?
样本量(n):样本量越大,区间越窄(越精确)。测量1000人比测量100人得到的结果更可靠。
数据的变异程度(标准差):数据本身越分散、波动越大,区间越宽(越不精确)。
置信水平:置信水平越高(例如99% vs 95%),区间就越宽。因为你想要更大的把握,就必须把网撒得更大一些。
标准误
一、核心概念
标准误(Standard Error) 是衡量样本统计量(如样本均值)抽样误差的指标。它表示的是,如果我们从同一总体中反复抽取多个相同大小的样本,并计算每个样本的均值,这些样本均值会构成一个分布,这个分布的标准差就是标准误。
它回答了这样一个问题:“我用样本算出的这个平均数,究竟有多接近总体真正的平均数?”
二、实例
我们继续用全国大学生平均身高的例子:
总体:全中国所有大学生。其真实平均身高是一个固定值(比如是172.5cm),但我们不知道。
抽样:你随机抽取1000人(样本1),算出身高平均值 xˉ1=172.1 cmxˉ1=172.1cm。
再抽样:你忘了这次抽样,重新再随机抽取1000人(样本2),算出平均值 xˉ2=172.8 cmxˉ2=172.8cm。
继续抽样:你重复这个过程很多次,得到样本3的均值 xˉ3=171.9 cmxˉ3=171.9cm,样本4的均值 xˉ4=172.4 cmxˉ4=172.4cm……等等。
你会发现,每次抽样计算出的样本均值都略有不同,它们会在总体真实均值(172.5cm)上下波动。这些样本均值的分布本身也会有一个标准差。
这个“样本均值的分布”的标准差,就是标准误。
标准误越小,说明不同样本得到的均值都非常接近,意味着你的样本估计非常精确,很可能非常接近总体真实值。
标准误越大,说明每次抽样得到的均值差异很大,意味着你的估计很不稳定,可能离总体真实值很远。
三、标准误的计算
最常用的标准误是均值的标准误(Standard Error of the Mean, SEM)。它的计算公式揭示了影响估计精确度的关键因素:
标准误 (SE)=样本标准差 (s)/sqrt(样本容量 (n))
从这个公式可以看出:
样本标准差 (s):数据本身的变异性越大(s越大),标准误就越大,估计越不精确。
样本容量 (n):样本量是提高精确度的最强力工具。样本量越大,分母 nn 越大,标准误就越小,估计就越精确。要想让标准误减半,你需要把样本量扩大到原来的4倍。
四、标准误与置信区间的关系
这是标准误最直接的应用。置信区间的构建严重依赖于标准误。
95%置信区间的公式:
样本均值±1.96×标准误样本均值±1.96×标准误
(1.96是正态分布中95%概率所对应的Z值)
举例:
你调查了1000名大学生(n=1000),平均身高 xˉ=172 cmxˉ=172cm,样本标准差 s=10 cms=10cm。
计算标准误: SE=101000=1031.62≈0.316 cmSE=100010=31.6210≈0.316cm
构建95%置信区间: 172±1.96×0.316≈172±0.62172±1.96×0.316≈172±0.62
- 即 [171.38 cm, 172.62 cm][171.38cm,172.62cm]
解读:我们有95%的把握认为,全国大学生的真实平均身高在171.38cm到172.62cm之间。
可以看到,标准误(0.316)直接决定了这个区间的宽度(0.62)。标准误越小,置信区间就越窄,我们的估计就越精确。
z变换
一、核心思想
Z变换就是一个“编码/解码”工具。 它把一段离散的数字信号(比如音频采样、股价序列)转换成一个新的表示形式。在这个新形式下,分析信号特性(比如稳定性、频率)和进行某些操作(比如滤波)会变得非常简单,就像你把代码编译后更容易分析一样。
时域(原始数据):就像你的源代码。你能看到每一行指令,但很难一眼看出整个程序的结构和性能瓶颈。
Z域(变换后的数据):就像编译后的汇编代码或控制流图。它用一种新的形式来表征你的程序,让你能更容易地分析它的行为(比如哪里会有无限循环?)。
二、为什么需要这个“编码”?(目的)
想象你要分析一个系统(比如一个音频滤波器,或者一个自动控制算法),它的行为由一行代码描述:
y[n] = x[n] + 0.5 * y[n-1] // 当前输出 = 当前输入 + 0.5 * 上一次的输出
这是一个递归调用!在时域里,你想分析它的长期行为(比如输入一个脉冲后,输出是会慢慢消失还是会爆炸?)会非常麻烦,需要一步步去模拟。
Z变换的作用就是:把这个棘手的、递归的差分方程,变成一个简单的、非递归的代数方程。 这样你就能像解 y = ax + b 一样轻松地分析它。
简化计算:把复杂的卷积操作(像嵌套循环)变成简单的乘法操作。
分析系统稳定性:这是最重要的应用。变换后,你可以立刻判断系统是“稳定”还是“会爆炸”。
看频率响应:知道系统对不同频率信号的处理能力(比如是低通还是高通滤波器)。
自由度
一、核心思想:一句话概括
自由度(Degrees of Freedom, df) 是指在计算一个统计量(如均值、方差)时,数值中可以「自由」或「任意」变化的数据的个数。
你可以把它理解为 「独立信息的数量」 或者 「预算用完后剩下的选择次数」。
二、实例:「冰淇淋预算」类比
想象你的妈妈给你100元(这是一个约束条件),让你和你的4个朋友(共5人)一起去买冰淇淋。
第一回合:没有约束(计算均值)
妈妈没说每人花多少。你们5个人可以自由地选择任何金额。比如:你:20元
朋友A:30元
朋友B:5元
朋友C:40元
朋友D:5元
这里,5个数据都可以自由变化。所以计算平均花费时的自由度是5。
第二回合:有了总金额约束(计算方差)
妈妈现在说:「5个人总共必须花完这100元」(这就是一个约束条件)。
你们开始花钱:你自由地花了10元
朋友A自由地花了30元
朋友B自由地花了20元
朋友C自由地花了15元
朋友D:
100 - (10+30+20+15) = 25元
看到了吗?前4个人可以自由选择金额,但最后一个人没得选! 他的金额被总预算这个约束条件固定死了。
所以,在「总和固定为100元」这个条件下,真正「自由」变化的人数只有 4个。我们说,此时的自由度是 4。
自由度 = 总人数 (n) - 约束条件的个数 (k)
这里,df = 5 - 1 = 4。(约束条件是「总和固定」)
无序资料、有序资料
1. 无序资料
也称为名义资料或分类资料。这种数据的值只代表标签或名称,用于对观察对象进行归类,但各个类别之间没有高低、优劣、大小之分。
核心特点: 类别是“平等”的。
举例:
性别:男、女。(“男”并不比“女”大或高,它们只是不同的类别。)
血型:A型、B型、O型、AB型。(这些类型之间没有自然的顺序。)
国籍:中国、美国、日本、法国。
最喜欢的颜色:红色、蓝色、绿色。
2. 有序资料
也称为序次资料或等级资料。这种数据的类别不仅可以将观察对象分类,还能清晰地排出各类别之间的顺序、等级或层次。
核心特点: 类别之间存在“大于”或“优于”的关系,但不知道类别之间的具体差距是多少。
举例:
教育水平:小学、初中、高中、大学、研究生。(我们知道“研究生”>“大学”>“高中”,但我们不能说“大学和研究生之间的差距”等于“高中和大学之间的差距”。)
满意度调查:非常不满意、不满意、一般、满意、非常满意。(“满意”比“一般”好,但“非常满意”和“满意”之间的感受差距,不一定等于“满意”和“一般”之间的差距。)
成绩等级:A, B, C, D, F。(我们知道A > B > C,但A和B之间的分数差可能不是固定的。)
医院疼痛指数:0级(不痛)、1级、2级、3级(剧烈疼痛)。
社会经济地位:低、中、高。
有序资料和无序资料可以互相转换
3. 从有序资料转换为无序资料
这是最常见、最简单且无信息损失风险的转换。我们称之为**“降级”** 或**“粗化”**。
方法:直接忽略类别之间的顺序关系。
结果:有序资料变成了无序资料。你失去了“顺序”信息,但保留了“分类”信息。
举例:
原始有序资料:教育水平(小学、初中、高中、大学、研究生)
转换为无序资料:教育类型(仅区分“高等教育”和“非高等教育”)。
将“小学、初中、高中”归为“非高等教育”。
将“大学、研究生”归为“高等教育”。
分析:现在,你只知道一个人属于哪一大类,但不知道在这个大类里的具体等级(例如,你无法区分一个“高中生”和一个“小学生”)。顺序信息丢失了。
4. 从无序资料转换为有序资料
这是非常困难、通常不被推荐,并且会引入主观偏差的转换。我们称之为**“升级”**。
核心问题:无序资料本身没有任何内在顺序。强行给它赋予一个顺序,这个顺序必须来自研究者的外部假设或先验知识,而不是数据本身。
结果:你“创造”出了原本不存在的信息,这个新顺序可能是不合理或有争议的。
举例:
原始无序资料:血型(A型、B型、O型、AB型)
试图转换为有序资料:你可能会根据“某种疾病的风险”来排序,比如排序为:O型、A型、B型、AB型。
分析:这个顺序不是血型本身固有的属性。它是基于另一个领域(医学)的特定研究强加过来的。如果你换一个标准(比如性格论),顺序可能完全不同。因此,这种转换是危险的,因为它依赖于一个可能不普适的外部假设。
如何做拟合?
什么是“拟合”?
想象一下,你在纸上画了一些散点图,然后拿着一根柔软的尺子(我们的模型),试图找到一条最能代表这些点整体趋势的线(直线或曲线)。
欠拟合:你用的尺子太硬了,只能画一条简单的直线,但这根直线离大部分数据点都很远,无法捕捉数据的模式。(模型太简单)
过拟合:你的尺子太软了,你扭曲它,让它穿过每一个数据点,完美地贴合所有训练数据。但这导致曲线非常扭曲,对于新来的数据点,预测会很差。(模型太复杂,记住了噪声)
良好拟合:你找到了一个合适的弯曲度,这条曲线既捕捉到了数据的主要趋势,又保持平滑,对未知数据有很好的预测能力。(模型复杂度适中)
拟合的目标就是找到“良好拟合”的状态。
类比到量化交易,其实机器学习的拟合和量化交易的拟合是完全相通的。我们来看这个核心思想如何体现在两个领域:
| 状态 | 机器学习中的表现 | 量化交易中的表现 |
|---|---|---|
| 欠拟合 | 模型太简单,连数据中的主要规律都没学会。 | |
| • 表现:在训练集上预测不准。 | ||
| • 原因:模型复杂度不够,特征没选好。 | 策略逻辑太简单,无法捕捉市场中的有效规律。 | |
| • 表现:在历史回测中就不赚钱。 | ||
| • 原因:策略逻辑过于粗糙,考虑的因素太少。 | ||
| 过拟合 | 模型太复杂,把数据中的噪声也当成了规律来学习。 | |
| • 表现:在训练集上表现极好,在新数据上表现很差。 | ||
| • 原因:模型复杂度过高,训练数据量不足。 | 策略过于精巧,把历史数据中的随机波动(运气) 当成了规律。 | |
| • 表现:历史回测曲线完美,夏普率极高;一上实盘就亏损。 | ||
| • 原因:策略参数优化过头,引入了未来函数,或者抓住了某段时期特有的巧合。 | ||
| 良好拟合 | 模型复杂度适中,学会了数据中的规律,并忽略了噪声。 | |
| • 表现:在训练集和未知的测试集上表现都很好。 | 策略稳健,抓住了市场中稳定、普适的规律。 | |
| • 表现:在历史不同时段(样本外测试)和实盘中都能稳定盈利(当然会有回撤)。 |
结论: 无论叫什么名字,其本质都是关于在“模型复杂度”和“泛化能力”之间取得平衡。量化交易中的策略开发,本质上就是一个特殊的机器学习过程:用历史数据(训练集)去拟合一个能预测未来价格或信号的函数(模型),并期望这个函数在未来的实盘(测试集)中依然有效。
拟合的基石——模型与损失函数
输入变量:也叫特征。这些是我们认为可能对结果有影响的因素。
- 例子:预测房价时,
面积、卧室数量、地理位置就是特征。
- 例子:预测房价时,
标签:也叫目标值。这是我们想要预测的真实答案。
- 例子:房价的
真实售价。
- 例子:房价的
损失函数:可以理解为这样一个函数结构
损失函数(模型的预测值, 真实的标签值) -> 损失分数。这个分数是一个单一的数字,告诉我们模型在当前这一步“错得有多离谱”。
核心思想:分数越高,模型越差;分数越低,模型越好。 我们的终极目标就是找到让这个分数尽可能低的模型参数。
为什么要选择“模型结构”?
将模型结构想象成数学公式的模板,这个模板里有一些空白项(参数)需要我们去填写。
例子:线性模型
它的结构是:
预测值 = w * 特征 + b这里的
w和b就是参数,是空白项。当我们选择“线性模型”时,我们不是选择了一个具体的公式,而是限定了搜索范围:我们只在所有可能的直线(或平面)中,寻找最好的那一条。
限定搜索空间
想象一下,我给你一堆(x, y)数据点,让你找一条线来拟合它们。
如果你不告诉我你要找的是“直线”,我可能会给你画一条穿过所有点的、扭来扭去的曲线。这就是过拟合。
你告诉我“找一条直线”,就等于限制了我的搜索范围,我只能在所有“直线”里找最好的那条。这极大地简化了问题,并且能防止我找到那个过于复杂的、过拟合的曲线。
所以,选择模型结构,就是做出一个假设:
“我认为我数据背后的真实规律,大概可以用这种类型的函数来近似描述。”
选择线性模型 -> 你假设规律是线性的。
选择逻辑回归模型 -> 你假设规律可以映射为一个S形概率曲线。
选择决策树模型 -> 你假设规律可以通过一系列“如果…那么…”的规则来描述。
选择神经网络 -> 你假设规律是一个非常复杂的、高度非线的函数。
结论:没有“选择模型结构”这一步,拟合问题就无法开始,因为可能的函数是无限多个,我们无从下手。选择模型结构,就是为我们无限的想象力,加上一个合理的“约束”。
如何学习?—— 优化算法(梯度下降)
我们有一个模型结构(比如
y_pred = w * x + b),里面有待定的参数(w和b)。我们有一个损失函数,能告诉我们当前这组参数(
w,b)的表现有多差。
那么,一个很自然的问题就是:我们如何调整
w和b,才能让损失分数降下来?答案是:梯度下降。我们用一个最经典的比喻——“盲人下山”。
场景: 你是一个盲人,站在一座崎岖的山上(山的高度就是损失函数的值),你的目标是走到最深的山谷(找到损失最小的点)。你看不见路,但你可以用拐杖探测脚下坡度的方向。
梯度下降的步骤:
探查周围坡度(计算梯度):
你用拐杖在你站的位置
(w_current, b_current)朝四周探一探。梯度就是一个向量,它告诉你哪个方向是坡度最陡的“上坡”方向。
关键:既然梯度指向最陡的上坡,那么它的反方向就是最陡的下坡方向。
朝着下坡方向迈一步(更新参数):
你朝着这个“最陡下坡”方向走一小步。
新位置 = 旧位置 - 学习率 * 梯度学习率:就是你这一步迈多大。
步子太小:下山太慢,要走很久。
步子太大:可能会一步跨过山谷,甚至跑到更高的地方去。
重复:
在你新的位置上,再次用拐杖探查坡度。
再次朝最陡下坡方向迈一步。
不断重复,直到你感觉脚下已经是平地了(梯度接近零),或者你觉得这个山谷已经足够深了,此时你就找到了最优的参数
(w_best, b_best)。