使用R的变换点包检测均值和方差中的多个变化点

问题描述 投票:2回答:1

我正在尝试使用“changepoint”包来识别每日股票价格时间序列中的变化点。该软件包包含检测变化点的不同方法,如“二进制分割”,“分割邻域”和“修剪精确线性时间(PELT)”,这有利于鲁棒性检查。

我正在使用的数据有4170个条目,从2000-01-03开始

Prices.d <- ts(EM_indices[, 2], start = c(2000,01,03), freq = 365)

首先,我尝试使用PELT方法通过以下代码检测平均值中的变化点:

> cpt.mean(Prices.d, pen.value = c(4,1500),penalty = "CROPS",method = "PELT")

结果应该表明变化点的位置,但尚未报告,这是我得到的回报:

enter image description here

您可以看到变更点位置是如何为空,因此通过添加类和参数估计的参数来调整代码:

 Change <- cpt.mean(Prices.d, pen.value = c(4,1500),penalty = "CROPS",method = "PELT", class=TRUE, param.estimates=TRUE)

但是,变更点位置仍然没有在结果中报告,我该怎么做才能解决这个问题?

r time-series breakpoints
1个回答
1
投票

当惩罚设置为'penalty =“CROPS”'时,cpt.mean()返回一系列分段。这就是您无法在附加的图像中看到变更点位置的原因。要访问这些,您可以调用属性(更改)$ cpts.full。这将返回变更点位置矩阵。

或者,如果设置'class = F',则可以使用Change $ changepoints获取分段。

© www.soinside.com 2019 - 2024. All rights reserved.