Seasonal Hybrid ESD笔记
- Seasonal Hybrid ESD笔记
- 背景知识
- Students t-distribution 学生t-分布
- Extreme Studentized Deviate ESD Test
- Generalized ESD
- LOESS
- STL
- Seasonal Hybrid ESD
- 背景知识
背景知识
Student’s t-distribution 学生t-分布
用于根据小样本来估计呈正态分布且方差未知的总体的均值。如果总体方差已知(例如在样本数量足够多时),则应该用正态分布来估计总体均值。
假设
t-分布的形状类似于均值为0方差为1的正态分布,但更低更宽。随着
Extreme Studentized Deviate (ESD) Test
又名Grubb’s Test或者Maximum Normed Residual Test,用于从正态分布的变量中检测离群点(根据这里的说法是“exactly one outlier”)。使用前要注意检查数据是否真的符合正态分布。
对于双边检验,“没有离群点”的假设以显著水平
对于单边检测,只需将
Generalized ESD
用于在近似符合正态分布的变量中检测离群点。与ESD相比最大的区别在于不需要指定离群点的个数,只需要指定要检测的离群点个数的上限即可。
按照这里的介绍,假设要检测
LOESS
Local Regression,一种非参数化的回归方法,目的是在二维散点图上拟合出一条光滑的曲线。方法是在每一个点的邻域内使用一个加权的多项式拟合,距离越近的点权重越高。为了提升鲁棒性,实际位置与预期位置偏离越远权重越小,偏离过远的点会被舍弃。
不确定现在的工具包里具体如何算的。
STL
Seasonal and Trend decomposition using Loess,会把时间序列分解成seasonal signal、trend、residual三部分,只能处理加性信号。用到了LOESS。使用的时候需要注意两个参数,一个是计算trend的窗口大小,越大越平滑;一个是计算seasonal signal的窗口大小,不知道怎么设。找不到比较好的科普材料,所有文章(包括中文和英文)都只是演示了一下R。
STL分为inner loop和outer loop。其中inner loop包含以下几步:
1. Detrending。
2. Cycle-subseries Smoothing。对每一个周期内的数据做平滑,得到
3. Low-Pass Filtering of Smoothed Cycle-subseries。进一步做平滑,得到
4. Detrending of Smoothed Cycle-sybseries。计算S分量,
5. Deseasonalizing。估计T分量(其实是T分量+噪声),
6. Trend Smoothing。对上一步的结果做平滑得到真正的T分量
outer loop包括以下几步:
1.
2. 根据
outer loop和inner loop都可以重复多次,根据应用场景而定。
R语言提供了STL方法,Python需要用一些第三方的包。
Seasonal Hybrid ESD
先用STL把序列分解,考察残差项。假定这一项符合正态分布,然后就可以用Generalized ESD提取离群点。