# BiBliotecas
library(readxl)
library(astsa)
library(tidyverse)
library(forecast)
library(tidyquant)
library(tscount)
library(gridExtra)
1 Objetivos
O objetivo desse relatório, é de mostrar os resultados encontrados utilizando o modelo Logit Multinomial. Foi feito diversas abordagens, em relação a escolha dos parâmetros da minha função Logit_ts()
. A cadeia de RNA utilizada nos testes foi a do Virus Epstein–Barr (BNRF1), selecionando as 1000 observações iniciais.
No qual a cadeia de RNA é interpretada dessa forma:
\[ A = 1 \\ C = 2 \\ G = 3 \\ T = 4 \]
A função Logit_ts()
, apresenta alguns parâmetros que precisam ser explicados afim de melhorar o entendimento dos resultados posteriores. São eles:
y -> Vetor resposta, no qual vai introduzir os dados.
Intercept -> Parâmetro booleano, ele indica se vai inserir ou não o intercepto no modelo.
Termo_Ar -> Parâmetro relacionado a parte AR do modelo. EX: \(\mathbf{Y_{t−1}} = \left(Y_{(t-1)1}, Y_{(t-1)2}, Y_{(t-1)3} \right)\).
Termo_MA -> Parâmetro relacionado a parte MA do modelo. EX: \(\mathbf{W_{t−1}} = \left(W_{(t-1)1}, W_{(t-1)2}, W_{(t-1)3} \right)\).
Termo_Cos -> Parâmetro booleano, se vai adicionar ou não uma série Cossenoidal. EX: \(\cos(2\pi t/12)\).
Termo_Sen -> Parâmetro booleano, se vai adicionar ou não uma série Senoidal. EX: \(\sin(2\pi t/12)\).
xreg -> Parâmetro para adicionar alguma variável auxiliar.
log_MA -> Parâmetro booleano, se vai ser aplicado uma função \(\log\) na parte de médias móveis. EX: \(\mathbf{z_{t−1} = \left(1, \log(W_{t−1})\right)}\).
interactions -> Parâmetro booleano, se vai exisir uma interação entre as outras variáveis. EX: \(\mathbf{z_{t−1} = \left(1, Y_{t−1}, Y_{t−1}W_{t−1}\right)}\).
2 Parte De Médias Móveis
Um modelo de médias móveis, em particular de um MA(1) é dado por:
\[ \mathbf{g(W_{t})} = \alpha_{0} + \theta_{1}\left[ \mathbf{g(Y_{t-1})} - \mathbf{g(W_{t-1})} \right], \qquad \qquad (1), \]
no qual, \(\mathbf{W_t} = \mathbf{\pi_t}\)
O modelo utilizando a função de ligação logit é dado por:
\[ \pi_{tj}(\mathbf{\beta}) = \dfrac{\mathrm{exp(\mathbf{\beta^{'}_{j} z_{t-1}})}} {1 + \sum_{l=1}^q \mathrm{exp(\mathbf{\beta^{'}_{l} z_{t-1}})} }, \qquad j = 1,\dots, q, \qquad \qquad (2) \]
Então, os passos seguintes para construir um MA(q), são:
Escolher um vetor \(\mathbf{\beta} = \left(\beta_{1}^{'}, \dots, \beta_{q}^{'}\right)\) aleatoriamente.
Adicionar a mesma expressão de (1) no vetor \(\mathbf{z_{t−1}}\), deixando-o dessa forma:
\[\mathbf{z_{t−1}} = \left(\mathbf{1}, \mathbf{Y_{t−1}} - \mathbf{W_{t−1}} \right)\].
Aplicar \(\mathbf{z_{t−1}}\) em (2).
Atualizar \(W_{t−1}\).
Repetir os 3 processos anteriores \(N-q\) vezes.
3 Modelo 1
Este é o modelo inicial com AR(3) e MA(3). Sem iterações entre essas variáveis.
res1 <- Logit_ts(y = y, Intercept = T, Termo_MA = seq(1,3, by = 1), method = 'maxLik',
Termo_Ar = seq(1,3, by = 1), Termo_Sen = F, Termo_Cos = F, interactions = F,
log_MA = F, xreg = NULL, plot = F)
res1$accuracy
## [1] "35.406 %"
Quantitativo de acertos:
## [1] 353
4 Modelo 2
Ao contrário do modelo anterior, foi adicionado dois termos novos, \(\cos(2\pi t/12)\) e \(\sin(2\pi t/12)\) e sem interação entre os termos AR e MA.
res2 <- Logit_ts(y = y, Intercept = T, Termo_MA = seq(1,3, by = 1), method = 'maxLik',
Termo_Ar = seq(1,3, by = 1), Termo_Sen = T, Termo_Cos = T, interactions = F,
log_MA = F, xreg = NULL, plot = F)
res2$accuracy
## [1] "35.507 %"
Quantitativo de acertos:
## [1] 354
5 Modelo 3
A única mudança feita, foi adicionado uma interação entre os termos AR e MA.
res3 <- Logit_ts(y = y, Intercept = T, Termo_MA = seq(1,3, by = 1), method = 'maxLik',
Termo_Ar = seq(1,3, by = 1), Termo_Sen = T, Termo_Cos = T, interactions = T,
log_MA = F, xreg = NULL, plot = F)
res3$accuracy
## [1] "39.017 %"
Quantitativo de acertos:
## [1] 389
6 Modelo 4
De agora em diante, vamos testar uma extrapolação nos parâmetros AR e MA. Mantendo a mesma estrutura do Modelo 3.
res4 <- Logit_ts(y = y, Intercept = T, Termo_MA = seq(1,9, by = 1), method = 'maxLik',
Termo_Ar = seq(1,9, by = 1), Termo_Sen = T, Termo_Cos = T, interactions = T,
log_MA = F, xreg = NULL, plot = F)
res4$accuracy
## [1] "45.409 %"
Quantitativo de acertos:
## [1] 450
7 Modelo 5
res5 <- Logit_ts(y = y, Intercept = T, Termo_MA = seq(1,12, by = 1), method = 'maxLik',
Termo_Ar = seq(1,12, by = 1), Termo_Sen = T, Termo_Cos = T, interactions = T,
log_MA = F, xreg = NULL, plot = F)
res5$accuracy
## [1] "49.899 %"
Quantitativo de acertos:
## [1] 493
8 Conclusões
Percebi que o adicionamento de termos \(\cos(2\pi t/12)\) e \(\sin(2\pi t/12)\) não influencia na quantitade de acertos. Em relação a interação, houve um aumento na taxa de acertos após ser adicionado na modelagem. Esse comportamento se repete quando também aumentamos o número de parâmetros da parte AR e MA. Porém, o maior problema disso é no aumento significativo na quantidade de parâmetros pertencentes ao modelo. Ou seja, dado que adicionarmos por exemplo um termo autoregressivo, o número de parâmetros a serem estimados cresce em 3 vezes, isso é entendido pela expressão: \(\mathbf{Y_{t−1}} = \left(Y_{(t-1)1}, Y_{(t-1)2}, Y_{(t-1)3} \right)\). Esse comportamento é análogo para a parte de médias móveis.
9 Outras abordagens
Pensar em outros elementos que podem entrar na modelagem, afim de melhorar o entendimento do comportamento dos dados.