1. INTRODUÇÃO

Há uma grande dificuldade em se trabalhar com séries temporais e, cada vez mais, a necessidade de utilizá-las para a identificação de pontos de mudanças abruptas é crescente. Devido a essa necessidade pertencente às mais variadas áreas de estudo, diversos métodos têm sido utilizdos e descritos pela comunidade científica. Dentre alguns desses métodos, se encontram os seguintes:

Para que a análise de pontos de mudança fosse viabilizada em ambiente R, o pacote changepoint. Tal pacote é imprescindível para o estudo de pontos de intervenção pois permite a escolha de qual algorítmo será utilizado, qual a distribuição utilizada e, além disso, até mesmo o critério de penalidade. Abaixo, se encontram os parâmetros pertencentes ao pacote.

library(changepoint) # Pacote utilizado

class_input(data, cpttype, method, test.stat, penalty, pen.value, minseglen, param.estimates, out=list(), Q=NA, shape=NA)

Acima, se econtram os principais elementos que compõem a função changepoint. Em seguida, será realizada a explicação dos principais:

1.1 Média

Para a utilização da média como método, deve-se utilizar o comando cpt.mean. A criação desse comando é derivada do desejo de se identificar o ponto de intervenção através do estudo de mudanças ocorridas na média dos elementos analisados.

cpt.mean(data,penalty="MBIC",pen.value=0,method="AMOC",Q=5,test.stat="Normal",class=TRUE, param.estimates=TRUE,minseglen=1)

  • Arguments:

    • data: A vector, ts object or matrix containing the data within which you wish to find a changepoint. If data is a matrix, each row is considered a separate dataset.

    • penalty: Choice of “None”, “SIC”, “BIC”, “MBIC”, AIC“,”Hannan-Quinn“,”Asymptotic“,”Manual" and “CROPS” penalties. If Manual is specified, the manual penalty is contained in the pen.value parameter. If Asymptotic is specified, the theoretical type I error is contained in the pen.value parameter. If CROPS is specified, the penalty range is contained in the pen.value parameter; note this is a vector of length 2 which contains the minimum and maximum penalty value. Note CROPS can only be used if the method is “PELT”. The predefined penalties listed DO count the changepoint as a parameter, postfix a 0 e.g.“SIC0” to NOT count the changepoint as a parameter.

    • pen.value: The theoretical type I error e.g.0.05 when using the Asymptotic penalty. A vector of length 2 (min,max) if using the CROPS penalty. The value of the penalty when using the Manual penalty option - this can be a numeric value or text giving the formula to use. Available variables are, n=length of original data, null=null likelihood, alt=alternative likelihood, tau=proposed changepoint, diffparam=difference in number of alternatve and null parameters.

    • method: Choice of “AMOC”, “PELT”, “SegNeigh” or “BinSeg”.

    • Q: The maximum number of changepoints to search for using the “BinSeg” method. The maximum number of segments (number of changepoints + 1) to search for using the “SegNeigh” method.

    • test.stat: The assumed test statistic / distribution of the data. Currently only “Normal” and “CUSUM” supported.

    • param.estimates: Logical. If TRUE and class=TRUE then parameter estimates are returned. If FALSE or class=FALSE no parameter estimates are returned.

Dentre os principais critérios de penalidade associados a essa função, estão os seguintes:

  • BIC (informação Bayesiana)
  • SIC (informação de Schwarz)
  • AIC (informação de Araike)

1.1.1 Critérios de Penalidade

Na estatística, os critérios BIC e SIC, por exemplo, são utilizados para a validação e seleção de modelos para utilização. Ambos se baseiam em funções de probabilidade. Em relação ao AIC, este também funciona da mesma forma e é considerado como um meio de estimação qualitativo dos modelos utilizados e/ou analisados por meio da máxima verossimilhança. Foram métodos criados com o intuito de resolver problemas estimativos relativos aos modelos. Dependendo da quantidade acrescida de parâmetros, pode ocorrer problemas de sobreajuste (overfitting), tornando o modelo ineficiente.

Uma das diferenças entre os métodos BIC e AIC é a fórmula de penalidade:

(Eq.1) \[ AIC = 2k \] (Eq.2) \[ BIC = ln(n)k \] Em que “k” refere-se ao número de parâmetros e “n”, ao tamanho da amostra.

De forma geral, de acordo com a literatura, o modelo que minimizar o valor de BIC é o melhor modelo para a análise.

Ao se realizar as análises no R com as séries temporais, os valores de penalidade BIC/AIC/SIC serão determinantes na delimitação do limiar de aceitação, como será visto mais adiante. Caso não se deseje utilizar um dos métodos de penalidade citados anteriormente, há a opção de se estipular uma penalidade manual, por meio da função penalty = "Manual". Após isso, basta definir o pen.value.

Por fim, deve-se ressaltar que:

A escolha da penalidade apropriada ainda é uma questão em aberto e normalmente depende de muitos fatores, incluindo o tamanho da alterações e o comprimento dos segmentos, ambos desconhecidos antes da análise.Na prática, a escolha da penalidade é frequentemente avaliada plotando os dados e os pontos de mudança para ver se eles parecem razoáveis. Referência: https://www.jstatsoft.org/article/view/v058i03/v58i03.pdf

1.1.2 Valor de “Q”

O valor de “Q” dependerá do método que será utilizado:

Ao se utilizar o método “BinSeg”, esse valor será o número máximo de pontos de mudança. Ao usar o método “SegNeigh”, este é o número máximo de segmentos (número de pontos de mudança + 1) a serem pesquisados. O valor de “Q” não é necessário para o método “PELT”, pois este seleciona automaticamente o número de segmentos. De forma geral, não apresenta um critério correto de escolha, podendo ser deixado como default.

Em algumas aplicações, o valor de “Q” para o método da segmentação binária (BinSeg) é igual a:

(Eq.3) \[ Q = \frac{n}{2} + 1 \] Em que “n” é igual ao tamanho da amostra analisada.

1.1.3 Métodos

  • Segmentação Binária: “No momento da redação deste artigo, a segmentação binária é sem dúvida o método de pesquisa de ponto de mudança múltiplo mais amplamente usado e se origina do trabalho de Edwards e Cavalli-Sforza (1965), Scott e Knott (1974) e Sen e Srivastava (1975). Por um lado, a segmentação binária primeiro aplica uma estatística de teste de ponto de mudança único a todos os dados, se um ponto de mudança é identificado, os dados são divididos em dois no local do ponto de mudança. O procedimento de ponto de mudança único é repetido nos dois novos conjuntos de dados, antes e depois da mudança. Se os pontos de mudança são identificados em dos novos conjuntos de dados, eles são divididos ainda mais. Esse processo continua até que nenhum ponto de mudança seja encontrado em nenhuma parte dos dados.” REFERÊNCIA

  • Segmentação por vizinhança: “Proposto por Auger e Lawrence (1989) e mais explorado em Bai e Perron (1998). Embora esse algoritmo seja exato, a complexidade computacional é consideravelmente maior que a da segmentação binária.”REFERÊNCIA

  • PELT: “O algoritmo PELT proposto por Killick et al. (2012a) é semelhante ao algoritmo de vizinhança de segmento, na medida em que fornece uma segmentação exata. No entanto, devido à construção do algoritmo PELT, ele pode ser mais eficiente em termos computacionais, devido ao uso de métodos dinâmicos. De fato, a principal suposição que controla o tempo computacional é que o número de pontos de mudança aumenta linearmente à medida que o conjunto de dados cresce, ou seja, os pontos de mudança são espalhados pelos dados em vez de confinado a uma porção.”REFERÊNCIA

1.2 Exemplo de aplicação para a média

Suponha que, para a simulação de uma série temporal, tenha se procedido da seguinte forma:

library(changepoint)
df_dados <- c(rnorm(100,1,0.5), rnorm(100,2,1), rnorm(100,4,2)) # Série original
pelt_serie <- cpt.mean(data = df_dados, method = "PELT") # Aplicação do método PELT 
binseg_serie <- cpt.mean(data = df_dados, method = "BinSeg") # Aplicação do método BinSeg 

Para o método “PELT”, os pontos de intervenção são os seguintes:

cpts(pelt_serie)

##  [1] 100 200 205 218 228 245 248 282 283 287 288 300

Pra o método “BinSeg”, os pontos de intervenção são os seguintes:

cpts(binseg_serie)

## [1] 100 198 292 300

Como pode-se perceber, a quantidade de pontos de intervenção varia de acordo com o método utilizado e, por isso, deve-se realizar a análise gráfica para a definição da penalidade. Veja os gráficos abaixo:

De acordo com a literatura, a partir dos gráficos acima, o ideal seria a verificação da plausibilidade dos pontos considerados como de intervenção e, a partir disso, escolher o critério de penalidade.

NOTA

O presente trabalho visou à transmissão de alguns conceitos básicos relativos à análise de pontos de intervenção, com o auxílio da bibliografia citada logo a seguir.

REFERÊNCIAS BIBLIOGRÁFICAS

Birge L, Massart P (2007). Minimal Penalties for Gaussian Model Selection." Probability Theory and Related Fields, 138(1), 33-73.

Edwards AWF, Cavalli-Sforza LL (1965). A Method for Cluster Analysis."Biometrics, 21(2), 362-375.

Guyon X, Yao J (1999). On the Underfitting and Overfitting Sets of Models Chosen by Order Selection Criteria." Journal of Multivariate Analysis, 70(2), 221-249

Jeffrey Okamoto, Natasha Stewart and Dr. Jun Li (2018). HDcpDetect: Detect Change Points in Means of High Dimensional Data. R package version 0.1.0. https://CRAN.R-project.org/package=HDcpDetect

Killick R, Eckley IA (2014). “changepoint: An R Package for Changepoint Analysis.” Journal of Statistical Software, 58(3), 1-19. <URL: http://www.jstatsoft.org/v58/i03/>.

Killick R, Haynes K, Eckley IA (2016). changepoint: An R package for changepoint analysis. R package version 2.2.2, <URL: https://CRAN.R-project.org/package=changepoint>.

Killick R, Fearnhead P, Eckley IA (2012a). Optimal Detection of Changepoints with a Linear Computational Cost." Journal of the American Statistical Association, 107(500), 1590-1598.

Scott AJ, Knott M (1974). A Cluster Analysis Method for Grouping Means in the Analysis of Variance." Biometrics, 30(3), 507-512.