确定何时应记录时间序列(或任何其他转换)并自动应用

机器算法验证 r 时间序列 数据转换
2022-03-23 16:56:28

有什么方法可以测试一个系列是否应该以其他方式记录或转换?

我有一个代码,我用它来运行大量不同的数据以进行预测。有些数据肯定需要转换,但有些则不需要。由于代码已编写为全自动,公司内部的非统计人员将使用它,因此他们不知道是否应该更改代码以根据系列转换数据。所以我需要测试来检查它们并相应地应用转换。

这是您可以使用的示例数据集:

M <- matrix(c("08Q1", "08Q2", "08Q3", "08Q4", "09Q1", "09Q2", "09Q3", "09Q4", "10Q1", "10Q2", "10Q3", "10Q4", "11Q1", "11Q2", "11Q3", "11Q4", "12Q1", "12Q2", "12Q3", "12Q4", "13Q1", "13Q2", "13Q3", "13Q4", "14Q1", "14Q2", "14Q3",  5403.676,  6773.505,  7231.117,  7835.552,  5236.710, 5526.619,  6555.782, 11464.727,  7210.069,  7501.610,  8670.903, 10872.935,  8209.023,  8153.393, 10196.448, 13244.502,  8356.733, 10188.442, 10601.322, 12617.821, 11786.526, 10044.987, 11006.005, 15101.946, 10992.273, 11421.189, 10731.312),ncol=2,byrow=FALSE)
Nu <- M[, length(M[1,])]

boxcoxfit()从包geoR中找到了用于转换的 lambda....有谁知道这对于转换数据有多准确?

ml <- boxcoxfit(Nu)
  Fitted parameters:
    lambda    beta  sigmasq
      0.59  375.43  3649.39
N<- ((Nu^(ml$lambda))-1)/ml$lambda
2个回答

正如@Irishstat 指出的那样,您可以使用boxcox power transformation,这是一种更通用的转换函数,还包括对数转换。R 的预测包有一个叫做BoxCox.lambdaand的函数BoxCox,你可以使用这两个函数来判断你的数据是否需要转换。如果 lambda 接近 1,那么您的数据不需要转换,否则您的数据需要适当的功率转换。

使用您的数据

x <- ts(c(5403.676,  6773.505,  7231.117,  7835.552,  5236.710, 5526.619,  6555.782, 11464.727,  7210.069,  7501.610,  8670.903, 10872.935,  8209.023,  8153.393, 10196.448, 13244.502,  8356.733, 10188.442, 10601.322, 12617.821, 11786.526, 10044.987, 11006.005, 15101.946, 10992.273, 11421.189, 10731.312),frequency =4)

lambda <- BoxCox.lambda(x, method=c("guerrero"))
lambda
0.3855427

x.transform <- BoxCox(x,lambda)
plot(x.transform)

使用 box.cox lambda 产生的 lambda 值为 0.3855。您可以在 BoxCox 函数中使用它,如上所示。

如果您觉得这篇文章有用,请告诉我们。

通过 Box-Cox 测试http://onlinestatbook.com/2/transformations/box-cox.html发现的功率变换在 发现预期值和模型误差的可变性之间存在线性关系时是有用/正确的。它与原始系列的可变性几乎没有关系。变换的范围是从无到倒数。应注意考虑脉冲异常值,因为未经处理它们会扭曲 Box-Cox 的结论。此外请注意,误差方差也可能在与预期值完全无关的离散步骤中发生变化。在这种情况下,适当的补救措施是广义最小二乘或通常称为加权最小二乘。

您可能会非常仔细地查看我对寻求某种 ARIMA 解释的回复

收到数据后(在此处输入图像描述:从 2008 年第一季度开始的大约 27 个季度观察结果

原始系列的 ACF 表明了一个相当强的季节性结构。AUTOBOX 自动识别模型在此处输入图像描述并在此处显示,在此处输入图像描述该模型产生了错误过程的 ACF,表明模型充分性在此处输入图像描述该模型包括在 27 次观察中的第 21 期(2013 年第 1 季度)确定的干预措施。实际和被净化的情节突出了异常。在此处输入图像描述实际/拟合/预测图在这里在此处输入图像描述,预测在这里在此处输入图像描述. 总之,不需要对该数据集进行任何方差稳定转换。最佳 box-cox 系数需要一个模型,在本例中为 1.0。如果您没有像 boxcoxfit 那样指定模型,那么在没有良好的 ARIMA 结构和在第 21 周期识别出的异常情况下,您可能会得到一个类似 0.52 的 lambda,这可能是模型不正确的结果。