### Aula 10-6 - Regressao poisson - SAR library(tidyverse) ### Instalando e carregando pacote 'sppois' - não está no CRAN ## site do pacote ### https://rdrr.io/github/gregmacfarlane/sppois/man/sarpoisson.html install.packages("remotes") remotes::install_github("gregmacfarlane/sppois") library(sppois) ### banco de dados e matriz de vizinhança data("columbus_crime") columbus_crime data("columbus_neighbors") columbus_neighbors ### rodando modelo não espacial ?sarpoisson crime.pois.n.esp <- sarpoisson(crime_i ~ income + home_value, data = columbus_crime, method = "non-spatial") summary(crime.pois.n.esp) # Coefficients: # Estimate Std. Error t value Pr(>|t|) # (Intercept) 2.26703 0.23122 9.80 7.6e-13 *** # income -0.04954 0.01802 -2.75 0.0085 ** # home_value -0.00944 0.00551 -1.71 0.0936 . ## interpretação beta.income <- exp(-0.04954) # 0.95 - aumento de 1 unidade no income diminuiu em 5% o número de crimes beta.home.value <- exp(-0.00944) # 0.99 (Não signif) - - aumento de 1 unidade no home values diminuiu em 1% o número de crimes ### rodando modelo espacial SAR crime_sppois <- sarpoisson(crime_i ~ income + home_value, data = columbus_crime, listw = columbus_neighbors, method = "fiml") summary(crime_sppois) # Coefficients: # Estimate Std. Error t value Pr(>|t|) # rho 0.35302 0.31453 1.12 0.268 # (Intercept) 1.65185 0.64807 2.55 0.014 * # income -0.04082 0.01914 -2.13 0.038 * # home_value -0.00758 0.00515 -1.47 0.148 ## interpertação ############################################ ## Rodando com o banco dengue deng <- read.csv("./bc_aula10/dengue.csv",sep=';') class(deng) deng <- as_tibble(deng) class(deng) ## Poisson nao espacial deng.pois.n.esp <- sarpoisson(TOTAL05 ~ A4COB05 + A5COB05 + CC_5_6 + IB_5_6 + r_A6COB, data = deng,method = "non-spatial") ### erro: Error in stats::optim(par = rep(0, ncol(X)), fn = pois.loglik, y = y, : function cannot be evaluated at initial parameters ### tive q dividir por um número maior ou igual 2 - não tenho ideia do pq disso! deng.pois.n.esp.1 <- sarpoisson(TOTAL05/2 ~ A4COB05 + A5COB05 + CC_5_6 + IB_5_6 + r_A6COB, data = deng,method = "non-spatial") summary(deng.pois.n.esp.1) ## aceita o offset, mas dá o mesmo resultado deng.pois.n.esp.off.1 <- sarpoisson(TOTAL05/2 ~ A4COB05 + A5COB05 + CC_5_6 + IB_5_6 + r_A6COB, data = deng,method = "non-spatial",offset(log(deng$ESP_05_))) summary(deng.pois.n.esp.off.1) ## Poisson espacial SAR (similar ao lag model da regre esp com distr normal) library (spdep) library(sf) dengue.map <- st_read("./bc_aula10/deng_med_control_IB_2000_6.shp") # lendo mapa # matriz viz deng_queen<-poly2nb (dengue.map, queen=TRUE,snap=1) print(deng_queen) str(deng_queen) # matriz de pesos deng.nbw <- nb2listw(deng_queen) print(deng.nbw) ### rodando modelo espacial SAR deng_sppois <- sarpoisson(TOTAL05 ~ A4COB05 + A5COB05 + CC_5_6 + IB_5_6 + r_A6COB, data = deng,listw = deng.nbw, method = "fiml") # Erro (o mesmo): Error in stats::optim(par = c(0, rep(0, ncol(X))), fn = sarpois.filoglik, : function cannot be evaluated at initial parameters deng_sppois.1 <- sarpoisson(TOTAL05/2 ~ A4COB05 + A5COB05 + CC_5_6 + IB_5_6 + r_A6COB, data = deng,listw = deng.nbw, method = "fiml") summary(deng_sppois.1) deng_sppois.off.1 <- sarpoisson(TOTAL05/2 ~ A4COB05 + A5COB05 + CC_5_6 + IB_5_6 + r_A6COB, data = deng,listw = deng.nbw, method = "fiml",offset(deng$ESP_05_)) summary(deng_sppois.off.1) ## deu erro!