我正在浏览大量的回归模型,以找到某种形式的标准化残差,这些残差可以帮助根据观察的“异常性”对观察结果进行“评分”,以进行异常检测。
该数据是(每周)季节性时间序列(过度分散)每小时呼叫计数,因此提倡需要 GLM。预测变量(基线)是同一天,小时的历史中位数,并且观察到它紧跟当天,小时的呼叫计数。以下是 OLS 和 ANOVA 的结果:
Call:
lm(formula = observed ~ baseline, data = temp)
Residuals:
Min 1Q Median 3Q Max
-7183.7 -184.9 -2.9 273.2 5514.9
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 90.558071 40.358140 2.244 0.025 *
baseline 1.009935 0.005434 185.838 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 814.4 on 1338 degrees of freedom
Multiple R-squared: 0.9627, Adjusted R-squared: 0.9627
F-statistic: 3.454e+04 on 1 and 1338 DF, p-value: < 2.2e-16
Analysis of Variance Table
Response: observed
Df Sum Sq Mean Sq F value Pr(>F)
baseline 1 2.2907e+10 2.2907e+10 34536 < 2.2e-16 ***
Residuals 1338 8.8748e+08 6.6329e+05
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
过度分散计数的示例:
10793.0
10277.0
8686.0
6189.0
4008.0
2398.0
1553.0
755.0
489.0
375.0
480.0
987.0
2423.0
4694.0
6950.0
8220.0
8904.0
9070.0
9313.0
9778.0
10129.0
10804.0
10529.0
10022.0
9838.0
您可以在此处找到数据样本,这些是从太平洋时间 2016 年 3 月 31 日 16:00:00 开始的每小时计数,已针对时区进行了调整。如果您无法在 google drive 上查看它,请下载该文件。
不出所料,误差为零均值,但非高斯和异方差(方差随着预测变量和拟合值的增加而增加)。
还观察到残差是自相关的,PACF 建议残差的 AR(1) 模型 (rho~0.6),这在时间序列数据的情况下是预期的。
我认为季节性没有任何作用,因为我们已经使用同一天、小时的中位数对其进行了调整。
因此存在以下限制:
- 过度分散的计数数据表明需要负二项式回归或对数据进行适当的转换,也许是半参数回归和条件方差的估计?
- 异常值的存在表明使用了稳健的回归方法。
- 残差中的自相关建议使用 AR(1) 模型,例如。用于调整估计值的 cochrane-orkutt 程序。
- “分数”可能是 pearson、偏差、anscombe 残差,也可能是异常统计数据,例如影响力等。
我想知道我对可用选项的评估是否正确,还是我遗漏了什么?如果有人也可以从过去的经验中分享他们对此类数据的智慧,那将非常有帮助。
PS:我更喜欢更“通用”的方法,这些方法可以处理潜在的不同时间序列分布(非参数方法)并且计算速度很快,因为有数百万个时间序列。
编辑:感谢@IrishStat 的有用评论和分析,我了解了当前开源堆栈中的必要工具及其(不)可用性。虽然,我仅限于开源,并且不得不稍微绕道使用任何可用的工具,但是,他使用 AUTOBOX 的分析(我从中借用了许多成分)对什么是建模这样的好方法很有见地数据。










