Questão 2

# Pacote utilizado
pacman::p_load(dlm, dplyr)
# Carregamento da base de dados
dados <- tibble(read.csv2("SalmonChinook.csv", sep= ';'))
knitr::kable(head(dados), caption = 'Head dos dados')
Head dos dados
X year logit.s CUI.apr
1 1964 -3.46 57
2 1965 -3.32 5
3 1966 -3.58 43
4 1967 -3.03 11
5 1968 -3.61 47
6 1969 -3.35 -21
# Padronizar a covariável CUI.apr
 CUI.z <- scale(dados$CUI.apr)
# Distribuição dos dados
plot(dados)

#Definiravariávelresposta
 y<-dados$logit.s
 #ConstruiroDLM(ModeloLinearDinâmico)
 build_dlm<-function(param){
 dlmModReg(CUI.z) +dlmModPoly(order=1,dV=exp(param[1]),dW=exp(param[2]))
 }
 #EstimarosparâmetrosusandoMaximumLikelihood
 fit<-dlmMLE(y,parm=c(0,0),build=build_dlm)
 dlm<-build_dlm(fit$par)
 #FiltragemdeKalman
 filter_result<-dlmFilter(y,dlm)
 #SuavizaçãodeKalman
 smooth_result<-dlmSmooth(filter_result)
 #Resíduos
 res<-residuals(filter_result,sd = FALSE)
 #Analisarseosresíduospodemserconsideradosumruídobrancogaussiano
 par(mfrow=c(2,2))
 acf(res,main="ACFdosResíduos")
 pacf(res,main="PACFdosResíduos")
 qqnorm(res); qqline(res,col=2)
 hist(res,main="HistogramadosResíduos",breaks=20,col="gray")

 # Teste de Shapiro para veridicar se os resíduos seguem uma distribuição normal
 shapiro.test(res)
## 
##  Shapiro-Wilk normality test
## 
## data:  res
## W = 0.98195, p-value = 0.7367

O teste tem como \(H_0\) que os dados se distribuem segundo uma distribuição normal. Com base no p-valor observado, a um nível de significância de 5%, os resíduos não rejeitam \(H_0\), por tanto, se distribuem de forma normal, indicando um bom ajuste do modelo.