#LIBRARY
#FUNCOES ESTAO AK
dataini='2003-01-01'; datafim= '2023-10-01'
#FAZENDO FUNCAO PARA CALCULAR A TAXA LINEAR E A GEOMETRICA
linear_rate <- function(x) {
lm_fit <- lm(value ~ as.numeric(ref.date), data = x)
coef(lm_fit)[2] * 100 # Multiplicando por 100 para obter a taxa percentual
}
compounded_rate <- function(x) {
n <- nrow(x)
start_value <- x$value[1]
end_value <- x$value[n]
compounded_rate <- (end_value / start_value) ^ (1/n) - 1
compounded_rate * 100 # Multiplicando por 100 para obter a taxa percentual
}##
## Fetching id = 433 [433] from BCB-SGS with cache
## Found 250 observations
##
## Goldfeld-Quandt test
##
## data: IPCA$value ~ 1
## GQ = 1.753, df1 = 124, df2 = 124, p-value = 0.0009708
## alternative hypothesis: variance increases from segment 1 to 2
## Warning in adf.test(IPCA$value): p-value smaller than printed p-value
##
## Augmented Dickey-Fuller Test
##
## data: IPCA$value
## Dickey-Fuller = -5.1457, Lag order = 6, p-value = 0.01
## alternative hypothesis: stationary
ID=433 dados em var. mensal% e coletados entre os periodos de dataini=‘2003-01-01’; datafim= ‘2023-10-01’
No teste de PACF so vemos o primeiro lag com valores fora da area de significancia entao vamos setar a ordem de P =1 No teste de ACF vemos 4 valores fora da area de significancia sendo o primeiro muito maior que os outros entao vamos testar alguns valores diferentes para o Q Por fim como o teste de ddickey deu um valor de P muito baixo indicando estacionariedade o D vai ser = 0
#FAZENDO TESTES E PA
modelo_treino <- ts(IPCA$value[1:100]) # Amostra treino
modelo_teste <- ts(IPCA$value[101:250]) # Amostra para confirmação
modelo.auto <- auto.arima(modelo_treino, stepwise = FALSE) # Criação do modelo
modelo.auto## Series: modelo_treino
## ARIMA(1,0,0) with non-zero mean
##
## Coefficients:
## ar1 mean
## 0.8321 0.5752
## s.e. 0.0786 0.1391
##
## sigma^2 = 0.05405: log likelihood = 4.42
## AIC=-2.83 AICc=-2.58 BIC=4.98
## ME RMSE MAE MPE MAPE ACF1 Theil's U
## Test set -0.02139823 0.2301558 0.1739536 -Inf Inf -0.08234675 0
## Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
## 101 0.7372823 0.43933129 1.035233 0.28160554 1.192959
## 102 0.7100588 0.32245334 1.097664 0.11726742 1.302850
## 103 0.6874067 0.24832596 1.126487 0.01589066 1.358923
## 104 0.6685585 0.19712020 1.139997 -0.05244416 1.389561
## 105 0.6528754 0.16027801 1.145473 -0.10048729 1.406238
## 106 0.6398258 0.13309636 1.146555 -0.13515003 1.414802
## 107 0.6289677 0.11268039 1.145255 -0.16062558 1.418561
## 108 0.6199328 0.09713060 1.142735 -0.17962418 1.419490
## 109 0.6124152 0.08514948 1.139681 -0.19396812 1.418798
## 110 0.6061599 0.07582595 1.136494 -0.20491589 1.417236
## 111 0.6009551 0.06850716 1.133403 -0.21335374 1.415264
## 112 0.5966243 0.06271765 1.130531 -0.21991543 1.413164
## 113 0.5930207 0.05810649 1.127935 -0.22505998 1.411101
## 114 0.5900223 0.05441156 1.125633 -0.22912361 1.409168
## 115 0.5875273 0.05143495 1.123620 -0.23235521 1.407410
## 116 0.5854514 0.04902574 1.121877 -0.23494083 1.405844
## 117 0.5837240 0.04706779 1.120380 -0.23702086 1.404469
## 118 0.5822867 0.04547090 1.119103 -0.23870223 1.403276
## 119 0.5810908 0.04416449 1.118017 -0.24006711 1.402249
## 120 0.5800957 0.04309292 1.117098 -0.24117917 1.401371
## 121 0.5792677 0.04221198 1.116323 -0.24208814 1.400623
## 122 0.5785787 0.04148637 1.115671 -0.24283315 1.399991
## 123 0.5780054 0.04088773 1.115123 -0.24344522 1.399456
## 124 0.5775284 0.04039316 1.114664 -0.24394908 1.399006
autoplot(previsao.auto, predict.colour = "red") + labs(x = "Observacoes", y = "IPCA",
title = "Previsao usando o forecast") +
theme_test() + scale_x_continuous(breaks = seq(0,250,15)) +
scale_y_continuous(breaks = seq(100, 600, 50)) + geom_vline(xintercept = 100, lty = "dashed")## Scale for x is already present.
## Adding another scale for x, which will replace the existing scale.
## ME RMSE MAE MPE MAPE
## Test set 0.1440692 0.2521591 0.1925739 22.17879 30.52871
##
## Call:
## arima(x = modelo_teste, order = c(1, 0, 1))
##
## Coefficients:
## ar1 ma1 intercept
## 0.6172 -0.0586 0.4731
## s.e. 0.1080 0.1366 0.0606
##
## sigma^2 estimated as 0.09296: log likelihood = -34.88, aic = 77.75
## Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
## 151 0.3354147 -0.055321992 0.7261514 -0.2621655 0.9329949
## 152 0.3881319 -0.059438013 0.8357019 -0.2963672 1.0726311
## 153 0.4206700 -0.046736825 0.8880767 -0.2941670 1.1355069
## 154 0.4407530 -0.033992797 0.9154988 -0.2853080 1.1668141
## 155 0.4531486 -0.024363367 0.9306606 -0.2771429 1.1834402
## 156 0.4607994 -0.017762165 0.9393610 -0.2710974 1.1926962
## 157 0.4655216 -0.013439203 0.9444825 -0.2669858 1.1980290
## 158 0.4684363 -0.010676579 0.9475491 -0.2643036 1.2011761
## 159 0.4702352 -0.008935512 0.9494060 -0.2625932 1.2030636
## 160 0.4713456 -0.007847214 0.9505384 -0.2615166 1.2042077
## 161 0.4720309 -0.007170286 0.9512321 -0.2608441 1.2049059
## 162 0.4724539 -0.006750489 0.9516583 -0.2604260 1.2053338
## 163 0.4727150 -0.006490627 0.9519206 -0.2601668 1.2055967
## 164 0.4728761 -0.006329947 0.9520822 -0.2600063 1.2057586
## 165 0.4729756 -0.006230663 0.9521819 -0.2599071 1.2058583
## 166 0.4730370 -0.006169341 0.9522433 -0.2598458 1.2059198
## 167 0.4730749 -0.006131476 0.9522812 -0.2598080 1.2059577
## 168 0.4730983 -0.006108099 0.9523046 -0.2597846 1.2059811
## 169 0.4731127 -0.006093668 0.9523191 -0.2597702 1.2059956
## 170 0.4731216 -0.006084760 0.9523280 -0.2597613 1.2060045
## 171 0.4731271 -0.006079262 0.9523335 -0.2597558 1.2060100
## 172 0.4731305 -0.006075868 0.9523369 -0.2597524 1.2060134
## 173 0.4731326 -0.006073773 0.9523390 -0.2597503 1.2060155
## 174 0.4731339 -0.006072480 0.9523403 -0.2597490 1.2060168
#autoplot(previsao.2, predict.colour = "red") + labs(x = "Observacoes", y = "IPCA",
# title = "Previsao usando o forecast") #+
# theme_test() + scale_x_continuous(breaks = seq(0,250,15)) +
# scale_y_continuous(breaks = seq(100, 600, 50)) + geom_vline(xintercept = 100, lty = #"dashed")Como as observacoes acabam em outubro de 2023 a 3 observacao ~e o valor em janeiro de 2024 e o 4 o de fevereiro
##
## Call:
## arima(x = modelo_teste, order = c(1, 0, 2))
##
## Coefficients:
## ar1 ma1 ma2 intercept
## 0.6081 -0.0514 0.0116 0.4732
## s.e. 0.1420 0.1554 0.1127 0.0604
##
## sigma^2 estimated as 0.09295: log likelihood = -34.87, aic = 79.74
## Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
## 151 0.3361313 -0.054591221 0.7268539 -0.2614273 0.933690
## 152 0.3886381 -0.058549572 0.8358259 -0.2952765 1.072553
## 153 0.4217980 -0.045839269 0.8894353 -0.2933915 1.136988
## 154 0.4419614 -0.033014097 0.9169369 -0.2844509 1.168374
## 155 0.4542220 -0.023438155 0.9318822 -0.2762962 1.184740
## 156 0.4616773 -0.016971721 0.9403263 -0.2703532 1.193708
## 157 0.4662106 -0.012803528 0.9452247 -0.2663783 1.198799
## 158 0.4689671 -0.010181914 0.9481162 -0.2638281 1.201762
## 159 0.4706433 -0.008555636 0.9498422 -0.2622282 1.203515
## 160 0.4716625 -0.007554865 0.9508799 -0.2612372 1.204562
## 161 0.4722823 -0.006941936 0.9515064 -0.2606279 1.205192
## 162 0.4726591 -0.006567610 0.9518858 -0.2602549 1.205573
## 163 0.4728882 -0.006339395 0.9521159 -0.2600272 1.205804
## 164 0.4730276 -0.006200403 0.9522556 -0.2598884 1.205944
## 165 0.4731123 -0.006115804 0.9523404 -0.2598038 1.206028
## 166 0.4731638 -0.006064333 0.9523920 -0.2597524 1.206080
## 167 0.4731952 -0.006033023 0.9524233 -0.2597211 1.206111
## 168 0.4732142 -0.006013981 0.9524424 -0.2597021 1.206130
## 169 0.4732258 -0.006002401 0.9524540 -0.2596905 1.206142
## 170 0.4732328 -0.005995358 0.9524610 -0.2596834 1.206149
## 171 0.4732371 -0.005991076 0.9524653 -0.2596792 1.206153
## 172 0.4732397 -0.005988472 0.9524679 -0.2596766 1.206156
## 173 0.4732413 -0.005986888 0.9524695 -0.2596750 1.206158
## 174 0.4732423 -0.005985926 0.9524704 -0.2596740 1.206159
#autoplot(previsao.3, predict.colour = "red") + labs(x = "Observacoes", y = "IPCA",
# title = "Previsao usando o forecast") #+
# theme_test() + scale_x_continuous(breaks = seq(0,250,15)) +
# scale_y_continuous(breaks = seq(100, 600, 50)) + geom_vline(xintercept = 100, lty = #"dashed")os dois modelos que chegaram mais perto do valor em janeiro de 2024 foram os modelos 2(1,0,1)e 3(1,0,2) eu escolho o modelo (1,0,1) por causa da interpretacao do ACF e PCF sua estimativa para o mes de fevereiro foi 0.44.
MAIS DADOS
dataini='2003-01-01'; datafim= '2024-01-01'
IPCAF <- GetBCBData::gbcbd_get_series(
id = 433,
first.date = dataini,
last.date = datafim
)##
## Fetching id = 433 [433] from BCB-SGS with cache
## Found 253 observations
modelo_testeN <- ts(IPCA$value[0:253])
modeloN <- arima(modelo_testeN, order = c(1,0,1)) # Criação do modelo
modeloN##
## Call:
## arima(x = modelo_testeN, order = c(1, 0, 1))
##
## Coefficients:
## ar1 ma1 intercept
## 0.6375 0.0163 0.4893
## s.e. 0.0815 0.0992 0.0495
##
## sigma^2 estimated as 0.07885: log likelihood = -37.48, aic = 82.96
## Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
## 254 0.4476915 -0.017569058 0.9129520 -0.2638631 1.159246
## 255 0.4627702 -0.006463789 0.9320041 -0.2548612 1.180402
## 256 0.4723821 0.001543149 0.9432210 -0.2477039 1.192468
## 257 0.4785092 0.007019672 0.9499988 -0.2425718 1.199590
## 258 0.4824150 0.010661309 0.9541687 -0.2390700 1.203900
## 259 0.4849047 0.013043758 0.9567657 -0.2367443 1.206554
## 260 0.4864918 0.014587255 0.9583964 -0.2352239 1.208208
## 261 0.4875035 0.015581234 0.9594258 -0.2342393 1.209246
## 262 0.4881484 0.016218940 0.9600779 -0.2336054 1.209902
## 263 0.4885595 0.016627110 0.9604919 -0.2331988 1.210318
## 264 0.4888215 0.016887974 0.9607551 -0.2329386 1.210582
## 265 0.4889886 0.017054537 0.9609226 -0.2327723 1.210749
## 266 0.4890951 0.017160825 0.9610293 -0.2326661 1.210856
## 267 0.4891630 0.017228623 0.9610973 -0.2325983 1.210924
## 268 0.4892062 0.017271860 0.9611406 -0.2325551 1.210968
## 269 0.4892338 0.017299428 0.9611682 -0.2325275 1.210995
## 270 0.4892514 0.017317005 0.9611858 -0.2325100 1.211013
## 271 0.4892626 0.017328211 0.9611970 -0.2324988 1.211024
## 272 0.4892697 0.017335354 0.9612041 -0.2324916 1.211031
## 273 0.4892743 0.017339908 0.9612087 -0.2324871 1.211036
## 274 0.4892772 0.017342811 0.9612116 -0.2324842 1.211039
## 275 0.4892790 0.017344662 0.9612134 -0.2324823 1.211040
## 276 0.4892802 0.017345841 0.9612146 -0.2324811 1.211042
## 277 0.4892810 0.017346593 0.9612154 -0.2324804 1.211042
Para deixar o modelo com todos os dados atualizados refiz o modelo usando (1,0,1) novamente mas com os dados ate janeiro de 2024 nao teve mudancas siginificativas no resultado, a previsa de fevereiro continua 0.44.