📢 GM!Gate 广场|4/5 热议:#假期持币指南
🌿 踏青还是盯盘?#假期持币指南 带你过个“松弛感”长假!
春光正好,你是选择在山间深呼吸,还是在 K 线里找时机?在这个清明假期,晒出你的持币态度,做个精神饱满的交易员!
🎁 分享生活/交易感悟,抽 5 位锦鲤瓜分 $1,000 仓位体验券!
💬 茶余饭后聊聊:
1️⃣ 休假心态: 你是“关掉通知、彻底失联”派,还是“每 30 分钟必刷行情”派?
2️⃣ 懒人秘籍: 假期不想盯盘?分享你的“挂机”策略(定投/网格/理财)。
3️⃣ 四月展望: 假期过后,你最看好哪个币种“春暖花开”?
分享你的假期姿态 👉 https://www.gate.com/post
📅 4/4 15:00 - 4/6 18:00 (UTC+8)
用多因子策略构建强大的加密资产投资组合 :数据预处理篇
前言
书接上回,我们发布了《用多因子策略构建强大的加密资产投资组合》系列文章的第一篇 - 理论基础篇,本篇是第二篇 - 数据预处理篇。
在计算因子数据前/后,以及测试单因子的有效性之前,都需要对相关数据进行处理。具体的数据预处理涉及重复值、异常值/缺失值/极端值、标准化和数据频率的处理。
一、重复值
数据相关定义:
诊断重复值的首先需要理解数据“应当”是什么样子。通常数据的形式有:
原则:确定了数据的索引(键),就能知道数据应该在什么层面没有重复值。
检查方式:
pd.DataFrame.duplicated(subset=[key1, key2, …])
pd.merge(df1, df2, on=[key1, key2, …], indicator=True, validate=‘1:1’)
二、异常值/缺失值/极端值
产生异常值的常见原因:
针对异常值和缺失值处理原则:
机器学习慎用向后填充,有 Look-ahead bias 的风险
针对极端值的处理方法:
1.百分位法。
通过将顺序从小到大排列,将超过最小和最大比例的数据替换为临界的数据。对于历史数据较丰富的数据,该方法相对粗略,不太适用,强行删除固定比例的数据可能造成一定比例的损失。
2.3σ / 三倍标准差法
标准差 σfactor 体现因子数据分布的离散程度,即波动性。利用 μ±3×σ 范围识别并替换数据集中的异常值,约有99.73% 的数据落入该范围。该方法适用前提:因子数据必须服从正态分布,即 X∼N(μ,σ2)。
其中,μ=∑ⁿᵢ₌₁⋅Xi/N, σ²=∑ⁿᵢ₌₁=(xi-μ)²/n ,因子值的合理范围是[μ−3×σ,μ+3×σ]。
对数据范围内的所有因子做出如下调整:
该方法不足在于,量化领域常用的数据如股票价格、token价格常呈现尖峰厚尾分布,并不符合正态分布的假设,在该情况下采用3σ方法将有大量数据错误地被识别为异常值。
3.绝对值差中位数法(Median Absolute Deviation, MAD)
该方法基于中位数和绝对偏差,使处理后的数据对极端值或异常值没那么敏感。比基于均值和标准差的方法更稳健。
绝对偏差值的中位数 MAD=median ( ∑ⁿᵢ₌₁(Xi - Xmedian) )
因子值的合理范围是[ Xmedian-n×MAD,Xmedian + n×MAD]。对数据范围内的所有因子做出如下调整:
处理因子数据极端值情况
class Extreme(object): def init(s, ini_data): s.ini_data = ini_data
三、标准化
1.Z-score标准化
x’ᵢ=(x−μ)/σ=(X−mean(X))/std(X)2.最大最小值差标准化(Min-Max Scaling)
将每个因子数据转化为在(0,1) 区间的数据,以便比较不同规模或范围的数据,但它并不改变数据内部的分布,也不会使总和变为1。
x’ᵢ=(xᵢ−min(x))/max(x)−min(x)3.排序百分位(Rank Scaling)
将数据特征转换为它们的排名,并将这些排名转换为介于0和1之间的分数,通常是它们在数据集中的百分位数。*
NormRankᵢ=(Rankₓᵢ−min(Rankₓᵢ))/max(Rankₓ)−min(Rankₓ)=Rankₓᵢ/N
其中,min(Rankₓ)=0, N 为区间内数据点的总个数。
标准化因子数据
class Scale(object): def init(s, ini_data,date): s.ini_data = ini_data s.date = date
四、数据频率
有时获得的数据并非我们分析所需要的频率。比如分析的层次为月度,原始数据的频率为日度,此时就需要用到“下采样”,即聚合数据为月度。
下采样
指的是将一个集合里的数据聚合为一行数据,比如日度数据聚合为月度。此时需要考虑每个被聚合的指标的特性,通常的操作有:
上采样
指的是将一行数据的数据拆分为多行数据,比如年度数据用在月度分析上。这种情况一般就是简单重复即可,有时需要将年度数据按比例归集于各个月份。
Falcon ( /)是新一代的Web3投资基础设施,它基于多因子模型,帮助用户“选”、“买”、“管”、“卖”加密资产。Falcon在2022年6月由Lucida所孵化。
更多内容可访问