#evitar que ocupe curl
#options(renv.download.override = utils::download.file)


#arriba puse algunas opciones para que por defecto escondiera el código
#también cargue algunos estilo .css para que el texto me apareciera justificado, entre otras cosas.
local({r <- getOption("repos")
       r["CRAN"] <- "http://cran.r-project.org" 
       options(repos=r)
})

clipboard <- function(x, sep="\t", row.names=FALSE, col.names=TRUE){
     con <- pipe("xclip -selection clipboard -i", open="w")
     write.table(x, con, sep=sep, row.names=row.names, col.names=col.names)
     close(con)
}

`%>%` <- magrittr::`%>%`
copy_names <- function(x,row.names=FALSE,col.names=TRUE,dec=",",...) {
  library(dplyr)
  if(class(ungroup(x))[1]=="tbl_df"){
    if(options()$OutDec=="."){
      options(OutDec = dec)
      write.table(format(data.frame(x)),"clipboard",sep="\t",row.names=FALSE,col.names=col.names,...)
      options(OutDec = ".")
      return(x)
    } else {
      options(OutDec = ",")
      write.table(format(data.frame(x)),"clipboard",sep="\t",row.names=FALSE,col.names=col.names,...)
      options(OutDec = ",")
      return(x)    
    }
  } else {
    if(options()$OutDec=="."){
      options(OutDec = dec)
      write.table(format(x),"clipboard",sep="\t",row.names=FALSE,col.names=col.names,...)
      options(OutDec = ".")
      return(x)
    } else {
      options(OutDec = ",")
      write.table(format(x),"clipboard",sep="\t",row.names=FALSE,col.names=col.names,...)
      options(OutDec = ",")
      return(x)       
    }
  }
}  

if(!require(pacman)){install.packages("pacman")}

pacman::p_unlock(lib.loc = .libPaths()) #para no tener problemas reinstalando paquetes
knitr::opts_chunk$set(
    echo = TRUE,
    message = FALSE,
    warning = FALSE
)
#dejo los paquetes estadísticos que voy a utilizar

if(!require(plotly)){install.packages("plotly")}
if(!require(lubridate)){install.packages("lubridate")}
if(!require(htmlwidgets)){install.packages("htmlwidgets")}
#if(!require(tidyverse)){install.packages("tidyverse")}
if(!require(gganimate)){install.packages("gganimate")}
if(!require(readr)){install.packages("readr")}
if(!require(stringr)){install.packages("stringr")}
if(!require(data.table)){install.packages("data.table")}
if(!require(DT)){install.packages("DT")}
if(!require(ggplot2)){install.packages("ggplot2")}
if(!require(lattice)){install.packages("lattice")}
if(!require(forecast)){install.packages("forecast")}
if(!require(zoo)){install.packages("zoo")}
if(!require(panelView)){install.packages("panelView")}
if(!require(janitor)){install.packages("janitor")}
if(!require(rjson)){install.packages("rjson")}
if(!require(estimatr)){install.packages("estimatr")} 
if(!require(CausalImpact)){install.packages("CausalImpact")}
if(!require(textreg)){install.packages("textreg")}
if(!require(sjPlot)){install.packages("sjPlot")}
if(!require(foreign)){install.packages("foreign")}
if(!require(tsModel)){install.packages("tsModel")}
if(!require(lmtest)){install.packages("lmtest")}
if(!require(Epi)){install.packages("Epi")}
if(!require(splines)){install.packages("splines")}
if(!require(vcd)){install.packages("vcd")}
if(!require(astsa)){install.packages("astsa")}
if(!require(MASS)){install.packages("MASS")}
if(!require(ggsci)){install.packages("ggsci")}
if(!require(Hmisc)){install.packages("Hmisc")}
if(!require(compareGroups)){install.packages("compareGroups")}
if(!require(dplyr)){install.packages("dplyr")}
if(!require(ggforce)){install.packages("ggforce")}
if(!require(doParallel)){install.packages("doParallel")}
if(!require(SCtools)){install.packages("SCtools")}
if(!require(rio)){install.packages("rio")}
if(!require(rbokeh)){install.packages("rbokeh")}
if(!require(altair)){install.packages("altair")}
if(!require(sqldf)){install.packages("sqldf")} 
if(!require(devtools)){install.packages("devtools")}
if(!require(ExPanDaR)){install.packages("ExPanDaR")}
if(!require(skimr)){install.packages("skimr")}
if(!require(tm)){install.packages("tm")} 
if(!require(wordcloud2)){install.packages("wordcloud2")}
if(!require(wordcloud)){install.packages("wordcloud")}
if(!require(RColorBrewer)){install.packages("RColorBrewer")}
if(!require(psych)){install.packages("psych")}
if(!require(GPArotation)){install.packages("GPArotation")}
if(!require(mvtnorm)){install.packages("mvtnorm")}
if(!require(polycor)){install.packages("polycor")}
if(!require(MVN)){install.packages("MVN")}
if(!require(ggcorrplot)){install.packages("ggcorrplot")}
if(!require(radiant)){install.packages("radiant")}
if(!require(homals)){install.packages("homals")}
if(!require(nFactors)){install.packages("nFactors")}
if(!require(ggiraph)){install.packages("ggiraph")}
if(!require(factoextra)){install.packages("factoextra")}
if(!require(tidyverse)){install.packages("tidyverse")}
if(!require(lubridate)){install.packages("lubridate")}
if(!require(ggfortify)){install.packages("ggfortify")}
if(!require(survminer)){install.packages("survminer")}
if(!require(finalfit)){install.packages("finalfit")}
if(!require(effects)){install.packages("effects")}
if(!require(lsmeans)){install.packages("lsmeans")}
if(!require(vcd)){install.packages("vcd")}

# Calculate the number of cores
#no_cores <- detectCores() - 1
##cl<-makeCluster(no_cores)
#registerDoParallel(cl)
# sudo apt -y install libfontconfig1-dev
# sudo apt-get install libxml2-dev
#Sys.setlocale(category = "LC_ALL", locale = "english")
#locale("es", decimal_mark = ",")


find_type <- function(x) {
  case_when(
    is.factor(x) ~ "factor",
    is.character(x) ~ "character",
    is.numeric(x) ~ "numeric",
    TRUE ~ "not sure"
  )
}

permute_icc <- function(x, y, n = 99) {
  actual <- ICCbare(x, y)
  nulls <- vector(length = length(n), mode = "numeric")
  for(i in seq_along(1:n)) {
    scrambled_x <- sample(x, length(x), replace = F)
    nulls[i] <- ICCbare(scrambled_x, y)
  }
  (sum(abs(nulls) > ifelse(actual > 0, actual, -actual)) + 1) / (n+1)
}

permute_tau <- function(x, y, n = 99) {
  actual <- GKtau(x, y)$tauxy
  nulls <- vector(length = length(n), mode = "numeric")
  for(i in seq_along(1:n)) {
    scrambled_x <- sample(x, length(x), replace = F)
    nulls[i] <- GKtau(scrambled_x, y)$tauxy
  }
  (sum(abs(nulls) > ifelse(actual > 0, actual, -actual)) + 1) / (n+1)
}

# to do:
## get p-values

eda <- function(x, plot = FALSE) {
  
  x <- as.data.frame(x)
  
  num_rows <- ncol(x)^2 - ncol(x)
  df <- tibble(var1 = vector(mode = "character", length = 1),
               var2 = vector(mode = "character", length = 1),
               statistic = vector(mode = "character", length = 1),
               value = vector(mode = "double", length = 1),
               p_value = vector(mode = "double", length = 1),
               n = vector(mode = "integer", length = 1))
  
  for(i in seq_along(1:ncol(x)))
    for(j in seq_along(1:ncol(x))) {
      if(i < j){
        # get type of columns i and j
        var_1_type <- find_type(x[,i])
        var_2_type <- find_type(x[,j])
        #print(paste("var1 type: ", var_1_type, "\nvar2 type: ", var_2_type, "\n\n"))
        
        x1 <- x[,i]
        x2 <- x[,j]
        
        # remove NAs for simplicity
        if(any(is.na(x1))){
          # get NA indicies
          ind <- which(is.na(x1))
          x1 <- x1[-ind]
          x2 <- x2[-ind]
        }
        
        if(any(is.na(x2))){
          # get NA indicies
          ind <- which(is.na(x2))
          x1 <- x1[-ind]
          x2 <- x2[-ind]
        }
        
        # make sure x1 and x2 are the same length
        stopifnot(length(x1) == length(x2))
        
        n <- length(x1)
        
        if(var_1_type == "numeric" & var_2_type == "numeric") {
          # run a correlation
          result <- cor.test(x1, x2)
          df <- add_row(df, 
                        var1 = names(x)[i],
                        var2 = names(x)[j],
                        statistic = "r",
                        value = result$estimate,
                        p_value = result$p.value,
                        n = n
          )
        } else if(var_1_type == "factor" & var_2_type == "numeric") {
          # run an ANOVA or t-test, depending on number of levels
          num_levels <- length(levels(x1))
          require(ICC)
          result <- ICCbare(x1, x2)
          p <- permute_icc(x1, x2)
          df <- add_row(df, 
                        var1 = names(x)[i],
                        var2 = names(x)[j],
                        statistic = "ICC",
                        value = result,
                        p_value = p,
                        n = n
          )
        } else if(var_1_type == "numeric" & var_2_type == "factor") {
          # run an ANOVA or t-test, depending on number of levels
          num_levels <- length(levels(x2))
          require(ICC)
          result <- ICCbare(x2, x1)
          p <- permute_icc(x2, x1)
          df <- add_row(df, 
                        var1 = names(x)[i],
                        var2 = names(x)[j],
                        statistic = "ICC",
                        value = result,
                        p_value = p,
                        n = n
          )
        } else if(var_1_type == "factor" & var_2_type == "factor") {
          require("GoodmanKruskal")
          # compute the GKtau statistic
          stat1 <- GKtau(x1, x2)$tauxy
          stat2 <- GKtau(x1, x2)$tauyx
          p1 <- permute_tau(x1, x2)
          p2 <- permute_tau(x2, x1)
          df <- add_row(df, 
                        var1 = names(x)[i],
                        var2 = names(x)[j],
                        statistic = "tau",
                        value = stat1,
                        p_value = p1,
                        n = n
          )
          df <- add_row(df, 
                        var1 = names(x)[j],
                        var2 = names(x)[i],
                        statistic = "tau",
                        value = stat2,
                        p_value = p2,
                        n = n
          )
        } else{
          # return an empty row
          df <- add_row(df, 
                        var1 = names(x)[i],
                        var2 = names(x)[j],
                        statistic = NA_character_,
                        value = NA_integer_,
                        p_value = NA_real_,
                        n = n
          )
        }
      }
    }
  if(plot == TRUE) {
    df[-1,] %>%
      filter(!is.na(value)) %>%
      unite(variables, var1, var2, sep = " by ") %>%
      mutate(`possibly significant` = if_else(p_value < 0.05, "significant", "NS")) %>%
      ggplot(aes(y = value, x = reorder(variables, value), color = `possibly significant`)) +
      geom_point() +
      coord_flip() +
      facet_wrap(~statistic, scales = "free") +
      theme_minimal() +
      scale_color_manual(values = c("#37454B", "#E84F22"))
  } else{
    df[-1,]
  }
  
}

0.1 Exploración

#rowPerc(xtabs(n~sex+seat,data=
sexo<-
bd_comparacion %>% 
    dplyr::group_by(comparacion,p45_demo_sexo,tamizaje_ans) %>% 
    dplyr::summarise(n=n()) %>% 
    dplyr::filter(!is.na(comparacion),!is.na(p45_demo_sexo),!is.na(tamizaje_ans)) %>% 
    dplyr::ungroup() %>% 
    dplyr::group_by(comparacion, p45_demo_sexo) %>% 
    dplyr::mutate(perc=scales::percent(n/sum(n))) %>% 
    dplyr::filter(!grepl("Ausencia de",tamizaje_ans))%>% 
  dplyr::mutate(num_perc=readr::parse_number(perc, "\\d+"))

sexo_plot<-
ggplot(sexo, aes(y=num_perc, x=comparacion, fill=p45_demo_sexo))+
  geom_bar(stat="identity", position=position_dodge())+
  geom_text(aes(label=perc), position=position_dodge(width=1), vjust = -.5, size = 5) +
  theme_sjplot() +
  ylim(0,100)+
  ylab("Porcentaje Sintomatología Ansiosa")+
  xlab("Conjunto de Instituciones")+
  scale_fill_manual("Sexo",values=c("grey30", "grey55")) +
  theme(legend.position = "bottom")+
    theme(axis.text.x=element_text(size=14),
        axis.title.x = element_text(size=15),
        axis.title.y = element_text(size=15),
        legend.title = element_text(size=15),
        legend.text = element_text(size=14))

sexo_plot
Figura 1a. Prevalencia Ansiedad según Sexo, por Agrupación de Instituciones

Figura 1a. Prevalencia Ansiedad según Sexo, por Agrupación de Instituciones

  jpeg("_Fig0a_sexo.jpg", height = 7, width = 11.5, units = 'in', res = 600)
  sexo_plot+ theme(plot.background = element_rect(fill=NA, color = NA))
  dev.off()
## png 
##   2
ggiraph(code = {print(sexo_plot)}, tooltip_extra_css = tooltip_css, tooltip_opacity = .75 )

Figura 1a. Prevalencia Ansiedad según Sexo, por Agrupación de Instituciones

miedo_pand<-
bd_comparacion %>% 
    dplyr::group_by(comparacion,p11_exp_c19_miedo_pand_rec,tamizaje_ans) %>% 
    dplyr::summarise(n=n()) %>% 
    dplyr::filter(!is.na(comparacion),!is.na(p11_exp_c19_miedo_pand_rec),!is.na(tamizaje_ans)) %>% 
    dplyr::ungroup() %>% 
    dplyr::group_by(comparacion, p11_exp_c19_miedo_pand_rec) %>% 
    dplyr::mutate(perc=scales::percent(n/sum(n))) %>% 
    dplyr::filter(!grepl("Ausencia de",tamizaje_ans))%>% 
  dplyr::mutate(num_perc=readr::parse_number(perc, "\\d+"))

miedo_plot<-
ggplot(miedo_pand, aes(y=num_perc, x=comparacion, fill=p11_exp_c19_miedo_pand_rec))+
  geom_bar(stat="identity", position=position_dodge())+
  geom_text(aes(label=perc), position=position_dodge(width=1.), vjust = -.5, size = 5) +
  theme_sjplot() +
  ylim(0,100)+
  ylab("Porcentaje Sintomatología Ansiosa")+
  xlab("Conjunto de Instituciones")+
  scale_fill_manual("Miedo Situación\nde Pandemia",values=c("grey30", "grey55")) +
  theme(legend.position = "bottom")+
    theme(axis.text.x=element_text(size=14),
        axis.title.x = element_text(size=15),
        axis.title.y = element_text(size=15),
        legend.title = element_text(size=13),
        legend.text = element_text(size=12))

miedo_plot
Figura 1b. Prevalencia Ansiedad según el Miedo a la Situación Pandemia, por Agrupación de Instituciones

Figura 1b. Prevalencia Ansiedad según el Miedo a la Situación Pandemia, por Agrupación de Instituciones

  jpeg("_Fig0b_miedo.jpg", height = 7, width = 11.5, units = 'in', res = 600)
  miedo_plot+ theme(plot.background = element_rect(fill=NA, color = NA))
  dev.off()
## png 
##   2
ggiraph(code = {print(miedo_plot)}, tooltip_extra_css = tooltip_css, tooltip_opacity = .75 )

Figura 1b. Prevalencia Ansiedad según el Miedo a la Situación Pandemia, por Agrupación de Instituciones

capacitacion<-
bd_comparacion %>% 
    dplyr::group_by(comparacion,p14_contr_cont_cap_epp_rec,tamizaje_ans) %>% 
    dplyr::summarise(n=n()) %>% 
    dplyr::filter(!is.na(comparacion),!is.na(p14_contr_cont_cap_epp_rec),!is.na(tamizaje_ans)) %>% 
    dplyr::ungroup() %>% 
    dplyr::group_by(comparacion, p14_contr_cont_cap_epp_rec) %>% 
    dplyr::mutate(perc=scales::percent(n/sum(n))) %>% 
    dplyr::filter(!grepl("Ausencia de",tamizaje_ans)) %>% 
  dplyr::mutate(num_perc=readr::parse_number(perc, "\\d+")) 


capacitacion_plot<-
ggplot(capacitacion, aes(y=num_perc, x=comparacion, fill=p14_contr_cont_cap_epp_rec))+
  geom_bar(stat="identity", position=position_dodge())+
  geom_text(aes(label=perc), position=position_dodge(width=1.), vjust = -.5, size = 5) +
  theme_sjplot() +
  ylim(0,100)+
  ylab("Porcentaje Sintomatología Ansiosa")+
  xlab("Conjunto de Instituciones")+
  scale_fill_manual("Capacitación\nen EPP's",values=c("grey30", "grey55")) +
  theme(legend.position = "bottom")+
    theme(axis.text.x=element_text(size=14),
        axis.title.x = element_text(size=15),
        axis.title.y = element_text(size=15),
        legend.title = element_text(size=13),
        legend.text = element_text(size=12))

capacitacion_plot
Figura 1c. Prevalencia Ansiedad según ha recibido capacitación en Elementos de Protección Personal, por Agrupación de Instituciones

Figura 1c. Prevalencia Ansiedad según ha recibido capacitación en Elementos de Protección Personal, por Agrupación de Instituciones

  jpeg("_Fig0c_capacitacion.jpg", height = 7, width = 11.5, units = 'in', res = 600)
  capacitacion_plot+ theme(plot.background = element_rect(fill=NA, color = NA))
  dev.off()
## png 
##   2
ggiraph(code = {print(capacitacion_plot)}, tooltip_extra_css = tooltip_css, tooltip_opacity = .75 )

Figura 1c. Prevalencia Ansiedad según ha recibido capacitación en Elementos de Protección Personal, por Agrupación de Instituciones

cultura<-
bd_comparacion %>% 
    dplyr::group_by(comparacion,p39_cond_trab_cult_org_rec,tamizaje_ans) %>% 
    dplyr::summarise(n=n()) %>% 
    dplyr::filter(!is.na(comparacion),!is.na(p39_cond_trab_cult_org_rec),!is.na(tamizaje_ans)) %>% 
    dplyr::ungroup() %>% 
    dplyr::group_by(comparacion, p39_cond_trab_cult_org_rec) %>% 
    dplyr::mutate(perc=scales::percent(n/sum(n))) %>% 
    dplyr::filter(!grepl("Ausencia de",tamizaje_ans))  %>% 
  dplyr::mutate(num_perc=readr::parse_number(perc, "\\d+"))

cultura_plot<-
ggplot(cultura, aes(y=num_perc, x=comparacion, fill=p39_cond_trab_cult_org_rec))+
  geom_bar(stat="identity", position=position_dodge())+
  geom_text(aes(label=perc), position=position_dodge(width=1.), vjust = -.5, size = 5) +
  theme_sjplot() +
  guides(fill=guide_legend(nrow=2,byrow=TRUE))+
  ylim(0,100)+
  ylab("Porcentaje Sintomatología Ansiosa")+
  xlab("Conjunto de Instituciones")+
  scale_fill_manual("Cultura Organizacional\nPerjudicial para la\nSalud Mental",values=c("grey30", "grey55")) +
  theme(legend.position = "bottom")+
    theme(axis.text.x=element_text(size=13),
        axis.title.x = element_text(size=13),
        axis.title.y = element_text(size=13),
        legend.title = element_text(size=13),
        legend.text = element_text(size=11))

cultura_plot
Figura 1d. Prevalencia Ansiedad según se Percibe la Cultura de su Organización como Perjudicial para la Salud Mental, por Agrupación de Instituciones

Figura 1d. Prevalencia Ansiedad según se Percibe la Cultura de su Organización como Perjudicial para la Salud Mental, por Agrupación de Instituciones

  jpeg("_Fig0d_cultura.jpg", height = 7, width = 11.5, units = 'in', res = 600)
  cultura_plot+ theme(plot.background = element_rect(fill=NA, color = NA))
  dev.off()
## png 
##   2
ggiraph(code = {print(cultura_plot)}, tooltip_extra_css = tooltip_css, tooltip_opacity = .75 )

Figura 1d. Prevalencia Ansiedad según se Percibe la Cultura de su Organización como Perjudicial para la Salud Mental, por Agrupación de Instituciones

p42_res_total<-
bd_comparacion %>% 
    dplyr::group_by(comparacion,tamizaje_ans) %>% 
    dplyr::summarise(Mdn=median(p42_res_total,na.rm=T),p25=quantile(p42_res_total,.25,na.rm=T),p75=quantile(p42_res_total,.75,na.rm=T)) %>% 
  dplyr::filter(!is.na(tamizaje_ans)) %>% 
  dplyr::mutate(label=paste0("Mdn=",Mdn,"\n(Q1=",p25,"- Q3=",p75,")"))

resiliencia_plot<-
ggplot(p42_res_total, aes(y=Mdn, x=comparacion, fill=tamizaje_ans))+
  geom_bar(stat="identity", position=position_dodge())+
  ylab("Mediana (Puntaje del 50% del grupo) (Mdn)")+
  xlab("Conjunto de Instituciones")+
  ylim(0,11)+
  geom_text(aes(label=label), position=position_dodge(width=1.), vjust = -1.5, size = 4) +
  theme_sjplot() +
geom_errorbar(aes(ymin=p25, ymax=p75), width=.2,
              position=position_dodge(.9))+
  scale_fill_manual("Sintomatología\nAnsiosa",values=c("grey30", "grey55"),labels=c("Ausencia","Presencia"))

resiliencia_plot
Figura 1e. Prevalencia Ansiedad según Puntaje de Resiliencia, por Agrupación de Instituciones

Figura 1e. Prevalencia Ansiedad según Puntaje de Resiliencia, por Agrupación de Instituciones

  jpeg("_Fig0e_resiliencia.jpg", height = 7, width = 11.5, units = 'in', res = 600)
  resiliencia_plot+ theme(plot.background = element_rect(fill=NA, color = NA))
  dev.off()
## png 
##   2
ggiraph(code = {print(resiliencia_plot)}, tooltip_extra_css = tooltip_css, tooltip_opacity = .75 )

Figura 1e. Prevalencia Ansiedad según Puntaje de Resiliencia, por Agrupación de Instituciones

ggplot(data = bd_comparacion, aes(x = comparacion, y = p42_res_total, color = tamizaje_ans)) +
  geom_boxplot(outlier.shape = NA) +
  geom_point(position=position_jitterdodge(jitter.width = .5,dodge.width=.7,jitter.height=.2)) +
 # geom_jitter(aes(colour = tamizaje_ans, x = comparacion),position = position_jitterdodge(dodge.width = .25), alpha = 0.5) +
  ylab("Puntaje de Resiliencia")+
  xlab("Conjunto de Instituciones")+
  theme_sjplot() +
    scale_color_manual("Sintomatología\nAnsiosa",values=c("grey30", "#FF5252"),labels=c("Ausencia","Presencia"))+
    theme(legend.position = "bottom")+
    theme(axis.text.x=element_text(size=13),
        axis.title.x = element_text(size=13),
        axis.title.y = element_text(size=13),
        legend.title = element_text(size=13),
        legend.text = element_text(size=11))
Figura 1e. Prevalencia Ansiedad según Puntaje de Resiliencia, por Agrupación de Instituciones

Figura 1e. Prevalencia Ansiedad según Puntaje de Resiliencia, por Agrupación de Instituciones

sexo_ans_tot<-
bd_comparacion %>% 
    dplyr::group_by(p45_demo_sexo,tamizaje_ans) %>% 
    dplyr::summarise(n=n()) %>% 
    dplyr::filter(!is.na(p45_demo_sexo),!is.na(tamizaje_ans)) %>% 
    dplyr::ungroup() %>% 
    dplyr::group_by(p45_demo_sexo) %>% 
    dplyr::mutate(perc=scales::percent(n/sum(n))) %>% 
    dplyr::filter(!grepl("Ausencia de",tamizaje_ans))%>% 
  dplyr::mutate(num_perc=readr::parse_number(perc, "\\d+")) %>% 
  dplyr::rename("cat"="tamizaje_ans") %>% 
  dplyr::mutate(var="Sintomatología Ansiosa") %>% 
  dplyr::mutate(label=paste0(n, "(",perc,")"))

sexo_miedo_tot<-
bd_comparacion %>% 
    dplyr::group_by(p45_demo_sexo,p11_exp_c19_miedo_pand_rec) %>% 
    dplyr::summarise(n=n()) %>% 
    dplyr::filter(!is.na(p45_demo_sexo),!is.na(p11_exp_c19_miedo_pand_rec)) %>% 
    dplyr::ungroup() %>% 
    dplyr::group_by(p45_demo_sexo) %>% 
    dplyr::mutate(perc=scales::percent(n/sum(n))) %>% 
    dplyr::filter(!grepl("ausencia de",p11_exp_c19_miedo_pand_rec))%>% 
  dplyr::mutate(num_perc=readr::parse_number(perc, "\\d+"))%>% 
  dplyr::rename("cat"="p11_exp_c19_miedo_pand_rec") %>% 
  dplyr::mutate(var="Miedo Pandemia")%>% 
  dplyr::mutate(label=paste0(n, "(",perc,")"))

sexo_cap_epp_tot<-
bd_comparacion %>% 
    dplyr::group_by(p45_demo_sexo,p14_contr_cont_cap_epp_rec) %>% 
    dplyr::summarise(n=n()) %>% 
    dplyr::filter(!is.na(p45_demo_sexo),!is.na(p14_contr_cont_cap_epp_rec)) %>% 
    dplyr::ungroup() %>% 
    dplyr::group_by(p45_demo_sexo) %>% 
    dplyr::mutate(perc=scales::percent(n/sum(n))) %>% 
    dplyr::filter(!grepl("No ha",p14_contr_cont_cap_epp_rec))%>% 
  dplyr::mutate(num_perc=readr::parse_number(perc, "\\d+"))%>% 
  dplyr::rename("cat"="p14_contr_cont_cap_epp_rec")%>% 
  dplyr::mutate(var="Capacitación en uso de EPPs")%>% 
  dplyr::mutate(label=paste0(n, "(",perc,")"))

sexo_cultura_tot<-
bd_comparacion %>% 
    dplyr::group_by(p45_demo_sexo,p39_cond_trab_cult_org_rec) %>% 
    dplyr::summarise(n=n()) %>% 
    dplyr::filter(!is.na(p45_demo_sexo),!is.na(p39_cond_trab_cult_org_rec)) %>% 
    dplyr::ungroup() %>% 
    dplyr::group_by(p45_demo_sexo) %>% 
    dplyr::mutate(perc=scales::percent(n/sum(n))) %>% 
    dplyr::filter(!grepl("Neutral",p39_cond_trab_cult_org_rec))%>% 
  dplyr::mutate(num_perc=readr::parse_number(perc, "\\d+"))%>% 
  dplyr::rename("cat"="p39_cond_trab_cult_org_rec")%>% 
  dplyr::mutate(var="Cultura Perjudicial para la Salud")%>% 
  dplyr::mutate(label=paste0(n, "(",perc,")"))

sexo_ptje_res_tot<-
bd_comparacion %>% 
    dplyr::group_by(p45_demo_sexo) %>% 
    dplyr::summarise(Mdn=median(p42_res_total,na.rm=T),p25=quantile(p42_res_total,.25,na.rm=T),p75=quantile(p42_res_total,.75,na.rm=T), n=n()) %>% 
  dplyr::filter(!is.na(p45_demo_sexo)) %>% 
  dplyr::mutate(label=paste0("Mdn=",Mdn,"\n(Q1=",p25,"- Q3=",p75,") (n=",n,")")) %>% 
  dplyr::mutate(var="Resiliencia\n(Autoeficacia)") %>% 
  dplyr::mutate(cat="Puntaje")

#:#:#:#:#:#:#:#:#:#:#:
#Por estrato

comp_sexo_ans<-
bd_comparacion %>% 
    dplyr::group_by(comparacion,p45_demo_sexo,tamizaje_ans) %>% 
    dplyr::summarise(n=n()) %>% 
    dplyr::filter(!is.na(comparacion),!is.na(p45_demo_sexo),!is.na(tamizaje_ans)) %>% 
    dplyr::ungroup() %>% 
    dplyr::group_by(comparacion, p45_demo_sexo) %>% 
    dplyr::mutate(perc=scales::percent(n/sum(n))) %>% 
    dplyr::filter(!grepl("Ausencia de",tamizaje_ans))%>% 
  dplyr::mutate(num_perc=readr::parse_number(perc, "\\d+")) %>% 
  dplyr::rename("cat"="tamizaje_ans") %>% 
  dplyr::mutate(var="Sintomatología Ansiosa") %>% 
  dplyr::mutate(label=paste0(n, "(",perc,")"))

comp_sexo_miedo<-
bd_comparacion %>% 
    dplyr::group_by(comparacion,p45_demo_sexo,p11_exp_c19_miedo_pand_rec) %>% 
    dplyr::summarise(n=n()) %>% 
    dplyr::filter(!is.na(comparacion),!is.na(p45_demo_sexo),!is.na(p11_exp_c19_miedo_pand_rec)) %>% 
    dplyr::ungroup() %>% 
    dplyr::group_by(comparacion, p45_demo_sexo) %>% 
    dplyr::mutate(perc=scales::percent(n/sum(n))) %>% 
    dplyr::filter(!grepl("ausencia de",p11_exp_c19_miedo_pand_rec))%>% 
  dplyr::mutate(num_perc=readr::parse_number(perc, "\\d+"))%>% 
  dplyr::rename("cat"="p11_exp_c19_miedo_pand_rec") %>% 
  dplyr::mutate(var="Miedo Pandemia")%>% 
  dplyr::mutate(label=paste0(n, "(",perc,")"))

comp_sexo_cap_epp<-
bd_comparacion %>% 
    dplyr::group_by(comparacion,p45_demo_sexo,p14_contr_cont_cap_epp_rec) %>% 
    dplyr::summarise(n=n()) %>% 
    dplyr::filter(!is.na(comparacion),!is.na(p45_demo_sexo),!is.na(p14_contr_cont_cap_epp_rec)) %>% 
    dplyr::ungroup() %>% 
    dplyr::group_by(comparacion, p45_demo_sexo) %>% 
    dplyr::mutate(perc=scales::percent(n/sum(n))) %>% 
    dplyr::filter(!grepl("No ha",p14_contr_cont_cap_epp_rec))%>% 
  dplyr::mutate(num_perc=readr::parse_number(perc, "\\d+"))%>% 
  dplyr::rename("cat"="p14_contr_cont_cap_epp_rec")%>% 
  dplyr::mutate(var="Capacitación en uso de EPPs")%>% 
  dplyr::mutate(label=paste0(n, "(",perc,")"))

comp_sexo_cultura<-
bd_comparacion %>% 
    dplyr::group_by(comparacion,p45_demo_sexo,p39_cond_trab_cult_org_rec) %>% 
    dplyr::summarise(n=n()) %>% 
    dplyr::filter(!is.na(comparacion),!is.na(p45_demo_sexo),!is.na(p39_cond_trab_cult_org_rec)) %>% 
    dplyr::ungroup() %>% 
    dplyr::group_by(comparacion, p45_demo_sexo) %>% 
    dplyr::mutate(perc=scales::percent(n/sum(n))) %>% 
    dplyr::filter(!grepl("Neutral",p39_cond_trab_cult_org_rec))%>% 
  dplyr::mutate(num_perc=readr::parse_number(perc, "\\d+"))%>% 
  dplyr::rename("cat"="p39_cond_trab_cult_org_rec")%>% 
  dplyr::mutate(var="Cultura Perjudicial para la Salud")%>% 
  dplyr::mutate(label=paste0(n, "(",perc,")"))

comp_sexo_ptje_res<-
bd_comparacion %>% 
    dplyr::group_by(comparacion,p45_demo_sexo) %>% 
    dplyr::summarise(Mdn=median(p42_res_total,na.rm=T),p25=quantile(p42_res_total,.25,na.rm=T),p75=quantile(p42_res_total,.75,na.rm=T), n=n()) %>% 
  dplyr::filter(!is.na(p45_demo_sexo)) %>% 
  dplyr::mutate(label=paste0("Mdn=",Mdn,"\n(Q1=",p25,"- Q3=",p75,") (n=",n,")")) %>% 
  dplyr::mutate(var="Resiliencia\n(Autoeficacia)") %>% 
  dplyr::mutate(cat="Puntaje")

  
tabla_dos_vias<-
plyr::rbind.fill(comp_sexo_ans,comp_sexo_miedo,comp_sexo_cap_epp,comp_sexo_cultura,comp_sexo_ptje_res) %>% dplyr::select(comparacion, p45_demo_sexo,cat,var, label) %>% 
    group_by(p45_demo_sexo, comparacion) %>%
    mutate(rn = row_number()) %>%
    tidyr::pivot_wider(names_from = c("p45_demo_sexo","comparacion"), values_from = "label", names_sep = ".") %>% 
  dplyr::select(-rn) %>% 
  dplyr::select(var, everything()) 

tabla_dos_vias_tot<-
plyr::rbind.fill(sexo_ans_tot, sexo_miedo_tot, sexo_cap_epp_tot, sexo_cultura_tot, sexo_ptje_res_tot) %>% 
dplyr::select(p45_demo_sexo,cat,var, label) %>% 
  group_by(p45_demo_sexo) %>% 
  mutate(rn = row_number()) %>%
    tidyr::pivot_wider(names_from = c("p45_demo_sexo"), values_from = "label", names_sep = ".") %>% 
  dplyr::select(-rn,-var,-cat) %>% 
  dplyr::rename("Muestra.Total.Mujeres"="Mujer","Muestra.Total.Hombres"="Hombre")

#_#_#_#_#_
#Tabla final

  cbind(
        tabla_dos_vias,
        Sig_dir=c("0.052","0.678","0.885","0.681","0.250"),
        Sig_hosp=c("0.045", "0.251","0.193","1.000","0.856"),
        tabla_dos_vias_tot,
        Sig_tot=c("0.005","0.652","0.471","0.892","0.584")
        ) %>% 
  data.frame() %>% 
  dplyr::select(var,cat, `Hombre.Dirección.Servicio`,`Mujer.Dirección.Servicio`,
                Sig_dir,`Hombre.Hospitales`,`Mujer.Hospitales`, Sig_hosp,
                `Muestra.Total.Hombres`,`Muestra.Total.Mujeres`,Sig_tot) %>% 
    knitr::kable(format = "html", format.args = list(decimal.mark = ".", big.mark = ","),
                 caption="Tabla 1. Prevalencia de las Variables de Interés, según Sexo y Agrupación de Instituciones",
                 col.names=c("Variable", "Categoría", "Hombres", "Mujeres","Sig.","Hombres", "Mujeres","Sig.","Hombres", "Mujeres","Sig."),
                 align =rep('c', 101))  %>%
    kableExtra::add_header_above(c(" "," ", "Dirección del Servicio" = 3, "Hospitales" = 3,"Muestra Total"=3)) %>% 
    kableExtra::kable_styling(bootstrap_options = c("striped", "hover"),font_size = 12) %>%
    kableExtra::add_footnote(c("Nota. Porcentajes entre paréntesis representan los porcentajes de quienes presentan la categoría de interés, por Sexo y Agrupación;\nPara variable continuas, se presenta la Mediana (Mdn), Primer (Q1), Tercer (Q3) Cuartil y recuento (n)"), notation = "none") %>% 
      kableExtra::scroll_box(width = "100%", height = "400px") 
Tabla 1. Prevalencia de las Variables de Interés, según Sexo y Agrupación de Instituciones
Dirección del Servicio
Hospitales
Muestra Total
Variable Categoría Hombres Mujeres Sig. Hombres Mujeres Sig. Hombres Mujeres Sig.
Sintomatología Ansiosa Indicadores de Sintomatología Ansiosa 10(29%) 35(50.7%) 0.052 13(26%) 65(43%) 0.045 23(27%) 100(45.7%) 0.005
Miedo Pandemia Predomina el miedo 19(54.3%) 33(47.8%) 0.678 19(38%) 73(48.7%) 0.251 38(45%) 106(48.4%) 0.652
Capacitación en uso de EPPs Ha sido capacitado 17(48.6%) 31(45%) 0.885 41(82%) 107(71%) 0.193 58(68%) 138(63%) 0.471
Cultura Perjudicial para la Salud De acuerdo/Totalmente de acuerdo 15(43%) 34(49.3%) 0.681 22(44%) 65(43%) 1.000 37(44%) 99(45.2%) 0.892
Resiliencia (Autoeficacia) Puntaje Mdn=9 (Q1=7- Q3=9) (n=35) Mdn=8 (Q1=6- Q3=9) (n=69) 0.250 Mdn=8 (Q1=7- Q3=9) (n=50) Mdn=8 (Q1=7- Q3=9) (n=150) 0.856 Mdn=8 (Q1=7- Q3=9) (n=85) Mdn=8 (Q1=7- Q3=9) (n=219) 0.584
Nota. Porcentajes entre paréntesis representan los porcentajes de quienes presentan la categoría de interés, por Sexo y Agrupación;
Para variable continuas, se presenta la Mediana (Mdn), Primer (Q1), Tercer (Q3) Cuartil y recuento (n)

library(compareGroups)

table1_dir <- suppressWarnings(compareGroups(p45_demo_sexo~ 
           tamizaje_ans +
           p11_exp_c19_miedo_pand_rec +
           p14_contr_cont_cap_epp_rec +
           p39_cond_trab_cult_org_rec +
           p42_res_total,
           method= c(
             tamizaje_ans=3,
            p11_exp_c19_miedo_pand_rec=3,
           p14_contr_cont_cap_epp_rec=3,
           p39_cond_trab_cult_org_rec=3,
           p42_res_total=2
             ),
    data = bd_comparacion %>% dplyr::filter(comparacion=="Dirección Servicio"), #Dirección Servicio  Hospitales
    include.miss = F, #baja el número de casos
    p.corrected=T,
    chisq.test.perm=T,
    chisq.test.seed=1234,
    var.equal=T)
  )

#   
restab1_dir <- createTable(table1_dir, show.p.overall = T)

table1_hosp <- suppressWarnings(compareGroups(p45_demo_sexo~ 
           tamizaje_ans +
           p11_exp_c19_miedo_pand_rec +
           p14_contr_cont_cap_epp_rec +
           p39_cond_trab_cult_org_rec +
           p42_res_total,
           method= c(
             tamizaje_ans=3,
            p11_exp_c19_miedo_pand_rec=3,
           p14_contr_cont_cap_epp_rec=3,
           p39_cond_trab_cult_org_rec=3,
           p42_res_total=2
             ),
    data = bd_comparacion %>% dplyr::filter(comparacion=="Hospitales"), #Dirección Servicio  Hospitales
    include.miss = F, #baja el número de casos
    p.corrected=T,
    chisq.test.perm=T,
    chisq.test.seed=1234,
    var.equal=T)
  )

#   
restab1_hosp <- createTable(table1_hosp, show.p.overall = T)

table1_tot <- suppressWarnings(compareGroups(p45_demo_sexo~ 
           tamizaje_ans +
           p11_exp_c19_miedo_pand_rec +
           p14_contr_cont_cap_epp_rec +
           p39_cond_trab_cult_org_rec +
           p42_res_total,
           method= c(
             tamizaje_ans=3,
            p11_exp_c19_miedo_pand_rec=3,
           p14_contr_cont_cap_epp_rec=3,
           p39_cond_trab_cult_org_rec=3,
           p42_res_total=2
             ),
    data = bd_comparacion, #Dirección Servicio  Hospitales
    include.miss = F, #baja el número de casos
    p.corrected=T,
    chisq.test.perm=T,
    chisq.test.seed=1234,
    var.equal=T)
  )

#   
restab1_tot <- createTable(table1_tot, show.p.overall = T)

export2md(cbind("Total Muestra" = restab1_tot, "Dirección Servicio" = restab1_dir, Hospitales = restab1_hosp)
, size=10, first.strip=T, hide.no="no", position="center",
          format="html",caption= "Table 1. Descriptivo Aplicación Hospital SS Arauco",
         # col.names=c("Variables", "SS Arauco", "N")
         )%>%
  kableExtra::add_footnote(c("Note. N= Número de participantes con al menos una respuesta válida en las variables seleccionadas; Variables continuas se presentan como medianas y percentiles 25 y 75;", 
                             "Variables categóricas son presentadas como el recuento y el porcentaje"), notation = "none")%>%
  kableExtra::scroll_box(width = "100%", height = "800px")
Table 1. Descriptivo Aplicación Hospital SS Arauco

Total Muestra
Dirección Servicio
Hospitales
Hombre Mujer p.overall Hombre Mujer p.overall Hombre Mujer p.overall
N=85 N=219 N=35 N=69 N=50 N=150
Sintomatología ansiosa: 0.005 0.052 0.045
Ausencia de Indicadores de Sintomatología Ansiosa 62 (72.9%) 119 (54.3%) 25 (71.4%) 34 (49.3%) 37 (74.0%) 85 (56.7%)
Indicadores de Sintomatología Ansiosa 23 (27.1%) 100 (45.7%) 10 (28.6%) 35 (50.7%) 13 (26.0%) 65 (43.3%)
¿Cómo califica su nivel de miedo de la situación de pandemia al día de hoy? (dicotomizado): 0.652 0.678 0.251
Predomina el miedo 38 (44.7%) 106 (48.4%) 19 (54.3%) 33 (47.8%) 19 (38.0%) 73 (48.7%)
Predomina la ausencia de miedo 47 (55.3%) 113 (51.6%) 16 (45.7%) 36 (52.2%) 31 (62.0%) 77 (51.3%)
¿Ha participado en alguna capacitación sobre el uso correcto de EPPs? (dicotomizada): 0.471 0.885 0.193
Ha sido capacitado 58 (68.2%) 138 (63.0%) 17 (48.6%) 31 (44.9%) 41 (82.0%) 107 (71.3%)
No ha sido capacitado 27 (31.8%) 81 (37.0%) 18 (51.4%) 38 (55.1%) 9 (18.0%) 43 (28.7%)
¿Cuán de acuerdo está con la siguiente afirmación?: La cultura de mi organización tolera comportamientos que perjudican la salud mental de los trabajadores (Dicotomizada): 0.892 0.681 1.000
De acuerdo/Totalmente de acuerdo 37 (43.5%) 99 (45.2%) 15 (42.9%) 34 (49.3%) 22 (44.0%) 65 (43.3%)
Neutral/En desacuerdo/Totalmente en desacuerdo 48 (56.5%) 120 (54.8%) 20 (57.1%) 35 (50.7%) 28 (56.0%) 85 (56.7%)
Suma puntajes de resilencia 8.00 [7.00;9.00] 8.00 [7.00;9.00] 0.584 9.00 [7.00;9.00] 8.00 [6.00;9.00] 0.250 8.00 [7.00;9.00] 8.00 [7.00;9.00] 0.856
Note. N= Número de participantes con al menos una respuesta válida en las variables seleccionadas; Variables continuas se presentan como medianas y percentiles 25 y 75;
Variables categóricas son presentadas como el recuento y el porcentaje

0.2 Asociaciones Multivariadas

Table = xtabs(n  ~ tamizaje_ans+ p45_demo_sexo+ comparacion,
              data=
                bd_comparacion %>% 
    dplyr::group_by(comparacion,p45_demo_sexo,tamizaje_ans) %>% 
    dplyr::summarise(n=n()) %>% 
    dplyr::filter(!is.na(comparacion),!is.na(p45_demo_sexo),!is.na(tamizaje_ans))
)
   ###  Note that the grouping variable is last in the xtabs function
data.frame(expand.grid(rev(attr(ftable(Table), "row.vars"))), unclass(ftable(Table))) %>% 
knitr::kable(format = "html", format.args = list(decimal.mark = ".", big.mark = ","),
             caption="Tabla 1. Recuento de Datos Según Sexo y Dirección",
             col.names=c("Sexo", "Ansiedad", "Dir. Servicio", "Hospitales"),
             align =rep('c', 101))  %>%
  kableExtra::kable_styling(bootstrap_options = c("striped", "hover"),font_size = 12) %>%
  kableExtra::scroll_box(width = "100%", height = "350px")
#https://www.rdocumentation.org/packages/stats/versions/3.6.2/topics/mantelhaen.test
#Performs a Cochran-Mantel-Haenszel chi-squared test of the null that two nominal variables are conditionally independent in each stratum, assuming that there is no three-way interaction.

#Test for homogeneity on 2 x 2 x k tables over strata (i.e., whether the log odds ratios are the same in all strata).
vcd::woolf_test(Table)
#El test de wolf no es significativo, por lo que ORs comunes es al menos potencialmente rasonable para ambos estratos
DescTools::BreslowDayTest(x = Table, OR = 1)
#Hay homogeneidad, por lo que se puede utilizar M_H
# Me dan algo distinto

#The asymptotic distribution is only valid if there is no three-way interaction. In the classical 2 by 2 by K case, this is equivalent to the conditional odds ratios in each stratum being identical. Currently, no inference on homogeneity of the odds ratios is performed.
#The Breslow-Day test can be used to check the null hypothesis that all odds ratios are equal. The Cochran-Mantel-Haenszel test can be thought of as a special case of the Breslow-Day test wherein the common odds ratio is assumed to be 1 

mantelhaen.test(Table)
mantelhaen.test(Table, exact = TRUE)
## Evidencia de la asociación entre sexo y ansiedad al ajustar por dirección del servicio
# Evidencia de que hay una asociación
# En cada nivel de la comparación (hosp y servicio), tamizaje ansiedad y sexo no son indpendientes.
# Hay una interacción de 3 vías

#apply(Table, 3, function(x) (x[1,1]*x[2,2])/(x[1,2]*x[2,1]))

# 
library(finalfit)
#explanatory = c("age.factor*sex.factor", "obstruct.factor", "perfor.factor")
#p40_istas_rel_su
#p40_istas_ex_psi
#p40_istas_rel_su
#p40_istas_con_rol
 #table(bd_comparacion$comparacion)
bd_comparacion %>%
  dplyr::filter(comparacion=="Dirección Servicio") %>% 
  dplyr::mutate(comparacion= ff_label(comparacion,"Agrupación Instituciones"),
                p45_demo_sexo= ff_label(p45_demo_sexo, "Sexo\nMujer"),
                p11_exp_c19_miedo_pand_rec= ff_label(forcats::fct_rev(p11_exp_c19_miedo_pand_rec), "Predomina el\nMiedo Pandemia"),
                p14_contr_cont_cap_epp_rec= ff_label(p14_contr_cont_cap_epp_rec, "Capacitación uso de EPP's\n (Sin Capacitación)"),
                p39_cond_trab_cult_org_rec= ff_label(forcats::fct_rev(p39_cond_trab_cult_org_rec), "Cultura Tolera \n Comportamientos Perjudiciales"),
                p42_res_total= ff_label(p42_res_total, "Puntaje Resiliencia"),
                tamizaje_ans= ff_label(tamizaje_ans, "Presencia Sint. Ansiosa"))%>%
  #ff_interaction(p45_demo_sexo, p8_exp_c19_cerca_cont_rec) %>% 
  #ff_interaction(.data, ..., levels_sep = "|", var_sep = "__",  label_sep = ":")
  finalfit("tamizaje_ans", c("p45_demo_sexo","p11_exp_c19_miedo_pand_rec","p14_contr_cont_cap_epp_rec","p39_cond_trab_cult_org_rec","p42_res_total"),dependent_label_prefix = "") -> t_ss

bd_comparacion %>%
  dplyr::filter(comparacion=="Hospitales") %>% 
  dplyr::mutate(comparacion= ff_label(comparacion,"Agrupación Instituciones"),
                p45_demo_sexo= ff_label(p45_demo_sexo, "Sexo\nMujer"),
                p11_exp_c19_miedo_pand_rec= ff_label(forcats::fct_rev(p11_exp_c19_miedo_pand_rec), "Predomina el\nMiedo Pandemia"),
                p14_contr_cont_cap_epp_rec= ff_label(p14_contr_cont_cap_epp_rec, "Capacitación uso de EPP's\n (Sin Capacitación)"),
                p39_cond_trab_cult_org_rec= ff_label(forcats::fct_rev(p39_cond_trab_cult_org_rec), "Cultura Tolera \n Comportamientos Perjudiciales"),
                p42_res_total= ff_label(p42_res_total, "Puntaje Resiliencia"),
                tamizaje_ans= ff_label(tamizaje_ans, "Presencia Sint. Ansiosa"))%>%
  #ff_interaction(p45_demo_sexo, p8_exp_c19_cerca_cont_rec) %>% 
  #ff_interaction(.data, ..., levels_sep = "|", var_sep = "__",  label_sep = ":")
  finalfit("tamizaje_ans", c("p45_demo_sexo","p11_exp_c19_miedo_pand_rec","p14_contr_cont_cap_epp_rec","p39_cond_trab_cult_org_rec","p42_res_total"),dependent_label_prefix = "") -> t_hosp 

bd_comparacion %>%
  dplyr::mutate(comparacion= ff_label(comparacion,"Agrupación Instituciones"),
                p45_demo_sexo= ff_label(p45_demo_sexo, "Sexo\nMujer"),
                p11_exp_c19_miedo_pand_rec= ff_label(forcats::fct_rev(p11_exp_c19_miedo_pand_rec), "Predomina el\nMiedo Pandemia"),
                p14_contr_cont_cap_epp_rec= ff_label(p14_contr_cont_cap_epp_rec, "Capacitación uso de EPP's\n (Sin Capacitación)"),
                p39_cond_trab_cult_org_rec= ff_label(forcats::fct_rev(p39_cond_trab_cult_org_rec), "Cultura Tolera \n Comportamientos Perjudiciales"),
                p42_res_total= ff_label(p42_res_total, "Puntaje Resiliencia"),
                tamizaje_ans= ff_label(tamizaje_ans, "Presencia Sint. Ansiosa"))%>%
  #ff_interaction(p45_demo_sexo, p8_exp_c19_cerca_cont_rec) %>% 
  #ff_interaction(.data, ..., levels_sep = "|", var_sep = "__",  label_sep = ":")
  finalfit("tamizaje_ans", c("p45_demo_sexo","p11_exp_c19_miedo_pand_rec","p14_contr_cont_cap_epp_rec","p39_cond_trab_cult_org_rec","p42_res_total"),dependent_label_prefix = "")  -> t_tot 


cbind.data.frame(t_tot[,c(5,6)],t_ss[,c(1,2,5,6)], t_hosp[,c(5,6)]) %>% 
    janitor::clean_names() %>% 
    dplyr::mutate(or_multivariable_2=dplyr::case_when(grepl("Contacto directo y estrecho con paciente",x)~"ICs no realistas",T~or_multivariable_2)) %>% 
    dplyr::mutate(x=dplyr::case_when(x=="Mean (SD)"~"",T~x)) %>% 
  dplyr::select(presencia_sint_ansiosa, x, or_univariable,or_multivariable,or_univariable_2,or_multivariable_2,or_univariable_3,or_multivariable_3) %>% 
    dplyr::rename("OR (Crudo) Total Muestra"="or_univariable") %>% 
    dplyr::rename("OR (Ajustado) Total Muestra"="or_multivariable") %>% 
    dplyr::rename("OR (Crudo) Dir. Servicio"="or_univariable_2") %>% 
    dplyr::rename("OR (Ajustado) Dir. Servicio"="or_multivariable_2") %>% 
    dplyr::rename("OR (Crudo) Hospitales"="or_univariable_3") %>% 
    dplyr::rename("OR (Ajustado) Hospitales"="or_multivariable_3") %>% 
  dplyr::rename("Categoría"="x","Var. de Exposición"="presencia_sint_ansiosa") %>% 
knitr::kable(,format = "html", format.args = list(decimal.mark = ".", big.mark = ","),
             caption="Tabla 2. Asociación entre Sintomatología Ansiosa y Variables de Interés por Dimensión",
             align =rep('c', 101))  %>%
  kableExtra::kable_styling(bootstrap_options = c("striped", "hover"),font_size = 10) %>%
  kableExtra::scroll_box(width = "100%", height = "350px")
Tabla 2. Asociación entre Sintomatología Ansiosa y Variables de Interés por Dimensión
Var. de Exposición Categoría OR (Crudo) Total Muestra OR (Ajustado) Total Muestra OR (Crudo) Dir. Servicio OR (Ajustado) Dir. Servicio OR (Crudo) Hospitales OR (Ajustado) Hospitales
Sexo Mujer Hombre
Mujer 2.27 (1.33-3.98, p=0.003) 2.35 (1.32-4.31, p=0.005) 2.57 (1.10-6.37, p=0.034) 2.93 (1.13-8.12, p=0.031) 2.18 (1.09-4.56, p=0.032) 2.16 (1.02-4.78, p=0.049)
Predomina el Miedo Pandemia Predomina la ausencia de miedo
Predomina el miedo 3.15 (2.07-4.84, p<0.001) 4.29 (2.55-7.35, p<0.001) 4.67 (2.21-10.24, p<0.001) 5.09 (1.99-14.23, p=0.001) 2.59 (1.56-4.36, p<0.001) 3.85 (2.07-7.39, p<0.001)
Capacitación uso de EPP’s (Sin Capacitación) Ha sido capacitado
No ha sido capacitado 1.24 (0.81-1.91, p=0.325) 1.08 (0.63-1.82, p=0.784) 1.10 (0.54-2.26, p=0.798) 0.94 (0.38-2.31, p=0.885) 1.19 (0.66-2.12, p=0.563) 1.03 (0.50-2.09, p=0.942)
Cultura Tolera Comportamientos Perjudiciales Neutral/En desacuerdo/Totalmente en desacuerdo
De acuerdo/Totalmente de acuerdo 1.88 (1.19-2.98, p=0.007) 1.73 (1.05-2.88, p=0.033) 3.72 (1.67-8.54, p=0.002) 2.67 (1.09-6.66, p=0.033) 1.32 (0.75-2.32, p=0.342) 1.37 (0.74-2.55, p=0.323)
Puntaje Resiliencia 0.78 (0.66-0.91, p=0.002) 0.72 (0.60-0.86, p<0.001) 0.81 (0.60-1.07, p=0.135) 0.74 (0.52-1.03, p=0.086) 0.77 (0.63-0.93, p=0.008) 0.72 (0.57-0.89, p=0.003)
cbind.data.frame(t_tot[,c(5,6)],t_ss[,c(1,2,5,6)], t_hosp[,c(5,6)]) %>% 
    janitor::clean_names() %>% 
    #dplyr::mutate(or_multivariable_2=dplyr::case_when(grepl("Contacto directo y estrecho con paciente",x)~"ICs no realistas",T~or_multivariable_2)) %>% 
    dplyr::mutate(x=dplyr::case_when(x=="Mean (SD)"~"",T~x)) %>% 
  dplyr::select(presencia_sint_ansiosa, x, or_univariable,or_multivariable,or_univariable_2,or_multivariable_2,or_univariable_3,or_multivariable_3) %>% 
  dplyr::rename("Categoría"="x","Var. de Exposición"="presencia_sint_ansiosa") %>% 
  tidyr::separate(or_univariable, c("or_univariable_or", "or_univariable_ci"), " ", extra = "merge") %>% 
  tidyr::separate(or_univariable_ci, c("or_univariable_ci_lo", "or_univariable_ci_up"), "-", extra = "merge") %>% 
  tidyr::separate(or_univariable_ci_up, c("or_univariable_ci_up", "or_univariable_p"), ", p", extra = "merge") %>% 
  tidyr::separate(or_multivariable, c("or_multivariable_or", "or_multivariable_ci"), " ", extra = "merge") %>% 
  tidyr::separate(or_multivariable_ci, c("or_multivariable_ci_lo", "or_multivariable_ci_up"), "-", extra = "merge") %>% 
  tidyr::separate(or_multivariable_ci_up, c("or_multivariable_ci_up", "or_multivariable_p"), ", p", extra = "merge") %>% 
  
  tidyr::separate(or_univariable_2, c("or_univariable_or_2", "or_univariable_ci_2"), " ", extra = "merge") %>% 
  tidyr::separate(or_univariable_ci_2, c("or_univariable_ci_lo_2", "or_univariable_ci_up_2"), "-", extra = "merge") %>% 
  tidyr::separate(or_univariable_ci_up_2, c("or_univariable_ci_up_2", "or_univariable_p_2"), ", p", extra = "merge") %>% 
  tidyr::separate(or_multivariable_2, c("or_multivariable_or_2", "or_multivariable_ci_2"), " ", extra = "merge") %>% 
  tidyr::separate(or_multivariable_ci_2, c("or_multivariable_ci_lo_2", "or_multivariable_ci_up_2"), "-", extra = "merge") %>%
  tidyr::separate(or_multivariable_ci_up_2, c("or_multivariable_ci_up_2", "or_multivariable_p_2"), ", p", extra = "merge") %>% 
  tidyr::separate(or_univariable_3, c("or_univariable_or_3", "or_univariable_ci_3"), " ", extra = "merge") %>% 
  tidyr::separate(or_univariable_ci_3, c("or_univariable_ci_lo_3", "or_univariable_ci_up_3"), "-", extra = "merge") %>% 
  tidyr::separate(or_univariable_ci_up_3, c("or_univariable_ci_up_3", "or_univariable_p_3"), ", p", extra = "merge") %>% 
  tidyr::separate(or_multivariable_3, c("or_multivariable_or_3", "or_multivariable_ci_3"), " ", extra = "merge") %>% 
  tidyr::separate(or_multivariable_ci_3, c("or_multivariable_ci_lo_3", "or_multivariable_ci_up_3"), "-", extra = "merge") %>%
  tidyr::separate(or_multivariable_ci_up_3, c("or_multivariable_ci_up_3", "or_multivariable_p_3"), ", p", extra = "merge") %>% 
  dplyr::mutate_at(vars(c("or_univariable_p","or_multivariable_p","or_univariable_p_2","or_multivariable_p_2","or_univariable_p_3","or_multivariable_p_3")),list(`sig`=~ifelse(grepl("<",.),1,0))) %>% 
  #dplyr::mutate_at(vars(c("or_univariable_p","or_multivariable_p","or_univariable_p_2","or_multivariable_p_2","or_univariable_p_3","or_multivariable_p_3")),~str_replace(., "=", "")) %>% 
  dplyr::mutate_at(vars(
    c("or_univariable_or", "or_univariable_ci_lo","or_univariable_ci_up","or_univariable_p",
    "or_multivariable_or", "or_multivariable_ci_lo","or_multivariable_ci_up","or_multivariable_p",
    "or_univariable_or_2", "or_univariable_ci_lo_2","or_univariable_ci_up_2","or_univariable_p_2",
    "or_multivariable_or_2", "or_multivariable_ci_lo_2","or_multivariable_ci_up_2","or_multivariable_p_2",
    "or_univariable_or_3", "or_univariable_ci_lo_3","or_univariable_ci_up_3","or_univariable_p_3",
    "or_multivariable_or_3", "or_multivariable_ci_lo_3","or_multivariable_ci_up_3","or_multivariable_p_3")),~ readr::parse_number(., "\\d+")) %>% #or_univariable_p_2
  #copy_names()

    dplyr::rename("OR (Crudo)-Total Muestra"="or_univariable_or") %>% 
    dplyr::rename("OR (Crudo) [IC95% Bajo]-Total Muestra"="or_univariable_ci_lo") %>% 
    dplyr::rename("OR (Crudo) [IC95% Alto]-Total Muestra"="or_univariable_ci_up") %>% 
    dplyr::rename("OR (Crudo) Sig.-Total Muestra"="or_univariable_p") %>% 
    dplyr::rename("OR (Crudo) Sig.<001-Total Muestra"="or_univariable_p_sig") %>% 
    dplyr::rename("OR (Ajustado)-Total Muestra"="or_multivariable_or") %>% 
    dplyr::rename("OR (Ajustado) [IC95% Bajo]-Total Muestra"="or_multivariable_ci_lo") %>% 
    dplyr::rename("OR (Ajustado) [IC95% Alto]-Total Muestra"="or_multivariable_ci_up") %>% 
    dplyr::rename("OR (Ajustado) Sig.-Total Muestra"="or_multivariable_p") %>%
    dplyr::rename("OR (Ajustado) Sig.<001-Total Muestra"="or_multivariable_p_sig") %>% 
    dplyr::rename("OR (Crudo)-Dir. Servicio"="or_univariable_or_2") %>% 
    dplyr::rename("OR (Crudo) [IC95% Bajo]-Dir. Servicio"="or_univariable_ci_lo_2") %>% 
    dplyr::rename("OR (Crudo) [IC95% Alto]-Dir. Servicio"="or_univariable_ci_up_2") %>% 
    dplyr::rename("OR (Crudo) Sig.-Dir. Servicio"="or_univariable_p_2") %>% 
    dplyr::rename("OR (Crudo) Sig.<001-Dir. Servicio"="or_univariable_p_2_sig") %>% 
    dplyr::rename("OR (Ajustado)-Dir. Servicio"="or_multivariable_or_2") %>% 
    dplyr::rename("OR (Ajustado) [IC95% Bajo]-Dir. Servicio"="or_multivariable_ci_lo_2") %>% 
    dplyr::rename("OR (Ajustado) [IC95% Alto]-Dir. Servicio"="or_multivariable_ci_up_2") %>% 
    dplyr::rename("OR (Ajustado) Sig.-Dir. Servicio"="or_multivariable_p_2") %>% 
    dplyr::rename("OR (Ajustado) Sig.<001-Dir. Servicio"="or_multivariable_p_2_sig") %>% 
    dplyr::rename("OR (Crudo)-Hospitales"="or_univariable_or_3") %>% 
    dplyr::rename("OR (Crudo) [IC95% Bajo]-Hospitales"="or_univariable_ci_lo_3") %>% 
    dplyr::rename("OR (Crudo) [IC95% Alto]-Hospitales"="or_univariable_ci_up_3") %>% 
    dplyr::rename("OR (Crudo) Sig.-Hospitales"="or_univariable_p_3") %>% 
    dplyr::rename("OR (Crudo) Sig.<001-Hospitales"="or_univariable_p_3_sig") %>% 
    dplyr::rename("OR (Ajustado)-Hospitales"="or_multivariable_or_3") %>% 
    dplyr::rename("OR (Ajustado) [IC95% Bajo]-Hospitales"="or_multivariable_ci_lo_3") %>% 
    dplyr::rename("OR (Ajustado) [IC95% Alto]-Hospitales"="or_multivariable_ci_up_3") %>% 
    dplyr::rename("OR (Ajustado) Sig.-Hospitales"="or_multivariable_p_3") %>% 
    dplyr::rename("OR (Ajustado) Sig.<001-Hospitales"="or_multivariable_p_3_sig") %>% 
  assign("ORs_table",.,envir=.GlobalEnv)
    
melt(ORs_table) %>% 
  tidyr::separate(variable, c("indicador", "población"), "-", extra = "merge") %>% 
  dplyr::mutate(`Var. de Exposición_cor`=ifelse(`Var. de Exposición`=="",lag(`Var. de Exposición`),`Var. de Exposición`)) %>%
  dplyr::mutate(conservar=dplyr::case_when(`Var. de Exposición`=="" & `Categoría`!=""~1,
                                           grepl("Resiliencia",`Var. de Exposición`) & `Categoría`==""~1,
                                           T~0)) %>% 
  dplyr::filter(conservar==1) %>% 
  dplyr::mutate(`Var. de Exposición`=ifelse(`Var. de Exposición`=="",lag(`Var. de Exposición`),`Var. de Exposición`)) %>%
  dplyr::select(-`Var. de Exposición`,-conservar) %>% 
  dplyr::rename(`Var. de Exposición`=`Var. de Exposición_cor`) %>% 
  dplyr::select(`Var. de Exposición`,everything()) %>% 
  assign("ORs_table_long",.,envir=.GlobalEnv) %>% 
  tidyr::pivot_wider(names_from = "indicador", values_from = c("value"), names_sep = ".") %>% 
  #glimpse()
  dplyr::mutate(`OR (Crudo) Sig.<001`=dplyr::case_when(`OR (Crudo) Sig.<001`==1 & `OR (Crudo) Sig.`==.001~"p<.001",
                                             `OR (Crudo) Sig.<001`==0 & `OR (Crudo) Sig.`==.001~"p=.001",
                                             `OR (Crudo) Sig.<001`==0 & `OR (Crudo) Sig.`<.01~"p<.01",
                                             `OR (Crudo) Sig.<001`==0 & `OR (Crudo) Sig.`<.05~"p<.05",
                                             T~"NS")) %>% 
  dplyr::mutate(`OR (Ajustado) Sig.<001`=dplyr::case_when(`OR (Ajustado) Sig.<001`==1 & `OR (Ajustado) Sig.`==.001~"p<.001",
                                             `OR (Ajustado) Sig.<001`==0 & `OR (Ajustado) Sig.`==.001~"p=.001",
                                             `OR (Ajustado) Sig.<001`==0 & `OR (Ajustado) Sig.`<.01~"p<.01",
                                             `OR (Ajustado) Sig.<001`==0 & `OR (Ajustado) Sig.`<.05~"p<.05",
                                             T~"NS")) %>% 
  #dplyr::select(-`OR (Crudo) Sig.<001`,-`OR (Ajustado) Sig.<001`) %>% 
  assign("ORs_table_long_wide",.,envir=.GlobalEnv) 
  p1<-
ggplot2::ggplot(ORs_table_long_wide,aes(x = `Var. de Exposición`, y = `OR (Crudo)`, fill = población)) +  
  ylim(0,15)+
  geom_hline(yintercept = 1, alpha=0.8, colour = "gray10",linetype = 2) +
  geom_bar(stat="identity", position=position_dodge())+
  geom_text(aes(label=`OR (Crudo) Sig.<001`), position=position_dodge(width=1.1), vjust = -.5, size = 5) +
  geom_errorbar(aes(ymin=`OR (Crudo) [IC95% Bajo]`, ymax=`OR (Crudo) [IC95% Alto]`), width=.2,
                 position=position_dodge(.9)) +
  theme_sjplot() +
  scale_fill_manual(values=c("grey30", "grey55", "grey80")) +
  theme(legend.position = "bottom")+
    theme(axis.text.x=element_text(size=13),
        axis.title.x = element_text(size=15),
        axis.title.y = element_text(size=15),
        legend.title = element_text(size=15),
        legend.text = element_text(size=13))
p1
Figura 2. Chances de Presentar Ansiedad (Crudas)

Figura 2. Chances de Presentar Ansiedad (Crudas)

  jpeg("_Fig1.jpg", height = 7, width = 11.5, units = 'in', res = 600)
  p1+ theme(plot.background = element_rect(fill=NA, color = NA))
  dev.off()
## png 
##   2
  p2<-
ggplot2::ggplot(ORs_table_long_wide,aes(x = `Var. de Exposición`, y = `OR (Ajustado)`, fill = población)) +  
  ylim(0,15)+
  geom_hline(yintercept = 1, alpha=0.4, colour = "gray10",linetype = 2) +
  geom_bar(stat="identity", position=position_dodge())+
  geom_text(aes(label=`OR (Ajustado) Sig.<001`), position=position_dodge(width=1.1), vjust = -.5, size = 5) +
  geom_errorbar(aes(ymin=`OR (Ajustado) [IC95% Bajo]`, ymax=`OR (Ajustado) [IC95% Alto]`), width=.2,
                 position=position_dodge(.9)) +
  theme_sjplot() +
  scale_fill_manual(values=c("grey30", "grey55", "grey80")) +
  theme(legend.position = "bottom")+
    theme(axis.text.x=element_text(size=14),
        axis.title.x = element_text(size=15),
        axis.title.y = element_text(size=15),
        legend.title = element_text(size=15),
        legend.text = element_text(size=14))
p2
Figura 3. Chances de Presentar Ansiedad (Ajustado)

Figura 3. Chances de Presentar Ansiedad (Ajustado)

  jpeg("_Fig2.jpg", height = 7, width = 11.5, units = 'in', res = 600)
  p2+ theme(plot.background = element_rect(fill=NA, color = NA))
  dev.off()
## png 
##   2


  • Por cada hombre que presenta sintomatología ansiosa, hay al menos 2 mujeres que la reportan, incluso manteniendo estables las diferencias por capacitación en EPP, miedo a la pandemia, cultura organizacional percibida y puntaje de resiliencia. Es decir, por sí mismo el hecho de ser mujer constituye un factor de riesgo de presentar sintomatología ansiosa.

  • A nivel general, el incremento de los puntajes de Resiliencia se vinculan con chances 28% menores (CI95%= 0.60-0.86, p<.001) de presentar sintomatología ansiosa, incluso manteniendo estables el resto de las variables. Descirptivamente, esta diferencia se aprecia mayormente en hospitales.

  • Aquellos(as) trabajadores(as) en los que predomina el miedo a la situación pandemia tienen 2.6 mayores chances de presentar sintomatología ansiosa, en comparación a a los(as) trabajadores(as) en los que no predomina el miedo a la situación pandemia.

  • No se observaron asociaciones con la presencia de sintomatología ansiosa entre aquellos(as) que recibieron capacitación en elementos de protección personal (EPP).


0.2.1 Interacción

¿La asociación entre las variables de interés y la sintomatología ansiosa varía según se pertenezca a Hospitales o a Dirección?

library(finalfit)
#explanatory = c("age.factor*sex.factor", "obstruct.factor", "perfor.factor")
#p40_istas_rel_su
#p40_istas_ex_psi
#p40_istas_rel_su
#p40_istas_con_rol
 #table(bd_comparacion$comparacion)

datalist <- data.frame()
# CREA LA VARIABLE CON EL AJUSTE DEL MODELO CRUDO
for(scale in  c("p45_demo_sexo", "p11_exp_c19_miedo_pand_rec", "p14_contr_cont_cap_epp_rec", "p39_cond_trab_cult_org_rec", "p42_res_total")){
  for(var in c("tamizaje_ans")){
    # dynamically generate formula
    fmla <- as.formula(paste0(var, " ~ ","comparacion" ," * ", factor(scale)))
    
    # fit glm model
    assign(paste0("svyglm2_M_",as.character(scale),"_",as.character(var)), glm(fmla, data=bd_comparacion, family=binomial()))
    fit <- glm(fmla, data=bd_comparacion, family=binomial())
    datalist <- rbind.data.frame(datalist, data.table(round(Epi::ci.lin(fit, Exp=T),3),keep.rownames = T))
   # print(data.table(round(Epi::ci.lin(fit, Exp=T),3),keep.rownames = T))
  }
}

datalist_cons<-
    datalist %>% 
        dplyr::select(-Estimate, -StdErr,-z) %>% 
  dplyr::filter(grepl("comparacionHospitales:",rn)) %>% 
  dplyr::rename("Interacciones"="rn")

datalist2 <- data.frame()
# CREA LA VARIABLE CON EL AJUSTE DEL MODELO CONTROLANDO POR OTRAS VAR
for(scale in  c("p45_demo_sexo", "p11_exp_c19_miedo_pand_rec", "p14_contr_cont_cap_epp_rec", "p39_cond_trab_cult_org_rec", "p42_res_total")){
  for(var in c("tamizaje_ans")){
    # dynamically generate formula
    fmla <- as.formula(paste0(var, " ~ ","comparacion" ," * ", scale, " + p45_demo_sexo + p11_exp_c19_miedo_pand_rec + p14_contr_cont_cap_epp_rec + p39_cond_trab_cult_org_rec + p42_res_total"))
    
    # fit glm model
    initial <- c(log(mean(bd_comparacion[var]==1, na.rm=T)),rep(0,12))
    assign(paste0("svyglm2_M_",as.character(scale),"_",as.character(var)), glm(fmla, data=bd_comparacion, family=binomial()))
    fit <- glm(fmla, data=bd_comparacion, family=binomial())
    datalist2 <- rbind.data.frame(datalist2, data.table(round(Epi::ci.lin(fit, Exp=T),3),keep.rownames = T))
    #print(round(Epi::ci.lin(fit, Exp=T),3))
  }
}

datalist2_cons<-
    datalist2 %>% 
        dplyr::select(-Estimate, -StdErr,-z) %>% 
  dplyr::filter(grepl("comparacionHospitales:",rn)) %>% 
  dplyr::rename("Interacciones"="rn")

cbind.data.frame(datalist_cons,datalist2_cons[,2:5]) %>% 
  janitor::clean_names() %>% 
  dplyr::mutate(interacciones=dplyr::case_when(grepl("Mujer",interacciones)~"Inst. x Sexo",
                                               grepl("miedo",interacciones)~"Inst. x Miedo",
                                               grepl("capacitado",interacciones)~"Inst. x Sin capacitación",
                                               grepl("cult_org_rec",interacciones)~"Inst. x Cultura Perjudicial",
                                               grepl("p42_res_total",interacciones)~"Inst. x Ptje. Resiliencia")) %>% 
  dplyr::select(interacciones, exp_est, x2_5_percent, x97_5_percent, p, exp_est_2, x2_5_percent_2, x97_5_percent_2, p_2) %>% 
knitr::kable(,format = "html", format.args = list(decimal.mark = ".", big.mark = ","),
             caption="Tabla 3. Asociación entre Sintomatología Ansiosa y Variables de Interés, + prueba de Diferencias entre Hospitales y Dirección",
             col.names=c("Interacciones", "OR (Crudo)", "OR (Crudo) CI 95% Bajo","OR (Crudo) CI 95% Alto","Sig.","OR (Ajustado)", "OR (Ajustado) CI 95% Bajo","OR (Ajustado) CI 95% Alto", "Sig."),
             align =rep('c', 101))  %>%
  kableExtra::kable_styling(bootstrap_options = c("striped", "hover"),font_size = 10) %>%
  kableExtra::scroll_box(width = "100%", height = "350px")
Tabla 3. Asociación entre Sintomatología Ansiosa y Variables de Interés, + prueba de Diferencias entre Hospitales y Dirección
Interacciones OR (Crudo) OR (Crudo) CI 95% Bajo OR (Crudo) CI 95% Alto Sig. OR (Ajustado) OR (Ajustado) CI 95% Bajo OR (Ajustado) CI 95% Alto Sig.
Inst. x Sexo 0.846 0.275 2.603 0.770 0.776 0.230 2.619 0.683
Inst. x Miedo 1.804 0.719 4.528 0.209 1.371 0.465 4.040 0.567
Inst. x Sin capacitación 1.081 0.429 2.724 0.869 1.057 0.342 3.266 0.924
Inst. x Cultura Perjudicial 2.822 1.049 7.594 0.040 1.963 0.667 5.777 0.221
Inst. x Ptje. Resiliencia 0.951 0.675 1.340 0.774 0.948 0.649 1.383 0.780


  • Quienes se desempeñan en la Dirección del Servicio y perciben que la cultura de la organización tolera comportamientos perjudiciales, tienen mayores chances (OR= 2.8, CI95%= 1.05-7.59, p<.05) mayores que los hospitales de presentar sintomatología ansiosa. Sin embargo, al controlar por el resto de las variables, no existen tales diferencias (OR=1.96, CI95% 0.67-5.78, p=0.22).

0.3 Información de la Sesión

Sys.getenv("R_LIBS_USER")
## [1] "C:/Users/andre/Google Drive/AccionSaludUDP_win/renv/library/R-4.0/x86_64-w64-mingw32;C:/Users/andre/AppData/Local/Temp/RtmpAXjXrN/renv-system-library"
rstudioapi::getSourceEditorContext()
## Document Context: 
## - id:        'F5BC9F60'
## - path:      'C:/Users/andre/Google Drive/AccionSaludUDP_win/comparacion_ss_arauco_vs_hospitales.Rmd'
## - contents:  <1227 rows>
## Document Selection:
## - [855, 27] -- [855, 27]: ''
sessionInfo()
## R version 4.0.2 (2020-06-22)
## Platform: x86_64-w64-mingw32/x64 (64-bit)
## Running under: Windows 10 x64 (build 19042)
## 
## Matrix products: default
## 
## locale:
## [1] LC_COLLATE=Spanish_Chile.1252  LC_CTYPE=Spanish_Chile.1252   
## [3] LC_MONETARY=Spanish_Chile.1252 LC_NUMERIC=C                  
## [5] LC_TIME=Spanish_Chile.1252    
## 
## attached base packages:
##  [1] parallel  grid      splines   stats     graphics  grDevices datasets 
##  [8] utils     methods   base     
## 
## other attached packages:
##  [1] gdtools_0.2.2              lsmeans_2.30-0            
##  [3] emmeans_1.5.3              effects_4.2-0             
##  [5] carData_3.0-4              finalfit_1.0.2            
##  [7] survminer_0.4.8            ggpubr_0.4.0              
##  [9] ggfortify_0.4.11           forcats_0.5.0             
## [11] purrr_0.3.4                tibble_3.0.4              
## [13] tidyverse_1.3.0            factoextra_1.0.7          
## [15] ggiraph_0.7.8              nFactors_2.4.1            
## [17] homals_1.0-8               radiant_1.3.2             
## [19] radiant.multivariate_1.3.5 radiant.model_1.3.14      
## [21] radiant.basics_1.3.4       radiant.design_1.3.5      
## [23] radiant.data_1.3.12        tidyr_1.1.2               
## [25] magrittr_2.0.1             ggcorrplot_0.1.3          
## [27] MVN_5.8                    polycor_0.7-10            
## [29] mvtnorm_1.1-1              GPArotation_2014.11-1     
## [31] psych_2.0.12               wordcloud_2.6             
## [33] RColorBrewer_1.1-2         wordcloud2_0.2.1          
## [35] skimr_2.1.2                ExPanDaR_0.5.3            
## [37] devtools_2.3.2             usethis_2.0.0             
## [39] sqldf_0.4-11               RSQLite_2.2.1             
## [41] gsubfn_0.7                 proto_1.0.0               
## [43] altair_4.0.1               rbokeh_0.5.1              
## [45] rio_0.5.16                 SCtools_0.3.1             
## [47] future_1.21.0              doParallel_1.0.16         
## [49] iterators_1.0.13           foreach_1.5.1             
## [51] ggforce_0.3.2              dplyr_1.0.2               
## [53] compareGroups_4.4.6        Hmisc_4.4-2               
## [55] Formula_1.2-4              survival_3.1-12           
## [57] ggsci_2.9                  astsa_1.12                
## [59] vcd_1.4-8                  Epi_2.42                  
## [61] lmtest_0.9-38              tsModel_0.6               
## [63] foreign_0.8-80             sjPlot_2.8.6              
## [65] textreg_0.1.5              CausalImpact_1.2.5        
## [67] bsts_0.9.5                 xts_0.12.1                
## [69] BoomSpikeSlab_1.2.3        Boom_0.9.6                
## [71] MASS_7.3-51.6              estimatr_0.28.0           
## [73] rjson_0.2.20               janitor_2.1.0             
## [75] panelView_1.1.2            zoo_1.8-8                 
## [77] forecast_8.13              lattice_0.20-41           
## [79] DT_0.16                    data.table_1.13.6         
## [81] stringr_1.4.0              readr_1.4.0               
## [83] gganimate_1.0.7            htmlwidgets_1.5.3         
## [85] lubridate_1.7.9.2          plotly_4.9.2.2            
## [87] ggplot2_3.3.3              pacman_0.5.1              
## [89] tm_0.7-8                   NLP_0.2-1                 
## 
## loaded via a namespace (and not attached):
##   [1] mitools_2.4             haven_2.3.1             tcltk_4.0.2            
##   [4] vctrs_0.3.6             mgcv_1.8-31             prodlim_2019.11.13     
##   [7] blob_1.2.1              later_1.1.0.1           nloptr_1.2.2.2         
##  [10] DBI_1.1.0               jpeg_0.1-8.1            sjmisc_2.8.5           
##  [13] pls_2.7-3               tseries_0.10-48         laeken_0.5.1           
##  [16] sROC_0.1-2              markdown_1.1            DEoptimR_1.0-8         
##  [19] Rcpp_1.0.5              KernSmooth_2.23-17      promises_1.1.1         
##  [22] ggeffects_1.0.1         pkgload_1.1.0           fs_1.5.0               
##  [25] mnormt_2.0.2            ranger_0.12.1           digest_0.6.27          
##  [28] png_0.1-7               crul_1.0.0              pkgconfig_2.0.3        
##  [31] gower_0.2.2             estimability_1.3        minqa_1.2.4            
##  [34] reticulate_1.18         gistr_0.9.0             modeltools_0.2-23      
##  [37] nortest_1.0-4           xfun_0.19               tidyselect_1.1.0       
##  [40] performance_0.6.1       reshape2_1.4.4          kernlab_0.9-29         
##  [43] randomizr_0.20.0        pcaPP_1.9-73            viridisLite_0.3.0      
##  [46] pkgbuild_1.2.0          rlang_0.4.10            AlgDesign_1.2.0        
##  [49] manipulateWidget_0.10.1 HardyWeinberg_1.7.1     hexbin_1.28.1          
##  [52] glue_1.4.2              pryr_0.1.4              modelr_0.1.8           
##  [55] fpc_2.2-9               sgeostat_1.0-27         lava_1.6.8.1           
##  [58] tictoc_1.0              ggsignif_0.6.0          bayestestR_0.8.0       
##  [61] recipes_0.1.15          kableExtra_1.3.1        labeling_0.4.2         
##  [64] GGally_2.0.0            import_1.2.0            httpuv_1.5.4           
##  [67] class_7.3-17            TH.data_1.0-10          webshot_0.5.2          
##  [70] jsonlite_1.7.2          tmvnsim_1.0-2           bit_4.0.4              
##  [73] shinyFiles_0.9.0        mime_0.9                systemfonts_0.3.2      
##  [76] fracdiff_1.5-1          gridExtra_2.3           zCompositions_1.3.4    
##  [79] stringi_1.5.3           insight_0.11.1          processx_3.4.5         
##  [82] survey_4.0              quadprog_1.5-8          bitops_1.0-6           
##  [85] cli_2.2.0               maps_3.3.0              rrcov_1.5-5            
##  [88] mvoutlier_2.0.9         energy_1.7-7            officer_0.3.16         
##  [91] rstudioapi_0.13         nlme_3.1-148            ks_1.11.7              
##  [94] listenv_0.8.0           miniUI_0.1.1.1          survMisc_0.5.5         
##  [97] httpcode_0.3.0          prabclus_2.3-2          NADA_1.6-1.1           
## [100] dbplyr_2.0.0            sessioninfo_1.1.1       TTR_0.24.2             
## [103] readxl_1.3.1            lifecycle_0.2.0         quantmod_0.4.18        
## [106] timeDate_3043.102       munsell_0.5.0           cellranger_1.1.0       
## [109] robCompositions_2.3.0   moments_0.14            ggalluvial_0.12.3      
## [112] vegawidget_0.3.1        visNetwork_2.0.9        codetools_0.2-16       
## [115] htmlTable_2.1.0         xtable_1.8-4            diptest_0.75-7         
## [118] scatterplot3d_0.3-41    abind_1.4-5             km.ci_0.5-2            
## [121] farver_2.0.3            parallelly_1.23.0       askpass_1.1            
## [124] sjstats_0.18.0          rgl_0.103.5             patchwork_1.1.1        
## [127] cluster_2.1.0           fda_5.1.9               Matrix_1.2-18          
## [130] ellipsis_0.3.1          prettyunits_1.1.1       ggridges_0.5.2         
## [133] reprex_0.3.0            mclust_5.4.7            flextable_0.6.1        
## [136] sjlabelled_1.1.7        pdp_0.7.0               remotes_2.2.0          
## [139] slam_0.1-48             etm_1.1.1               VIM_6.0.0              
## [142] parameters_0.10.1       testthat_3.0.1          htmltools_0.5.0        
## [145] yaml_2.2.1              ModelMetrics_1.2.2.2    fds_1.8                
## [148] e1071_1.7-4             hdrcde_3.3              withr_2.3.0            
## [151] xgboost_1.3.1.1         bit64_4.0.5             effectsize_0.4.1       
## [154] multcomp_1.4-15         robustbase_0.93-7       data.tree_1.0.0        
## [157] memoise_1.1.0           evaluate_0.14           pwr_1.3-0              
## [160] callr_3.5.1             caret_6.0-86            ps_1.5.0               
## [163] curl_4.3                DiagrammeR_1.0.6.1      fansi_0.4.1            
## [166] highr_0.8               checkmate_2.0.0         renv_0.11.0            
## [169] desc_1.2.0              cmprsk_2.2-10           truncnorm_1.0-8        
## [172] openxlsx_4.2.3          rstatix_0.6.0           ggrepel_0.9.0          
## [175] easyalluvial_0.2.3      shinycssloaders_1.0.0   rprojroot_2.0.2        
## [178] tools_4.0.2             rainbow_3.6             sandwich_3.0-0         
## [181] Rsolnp_1.16             RCurl_1.98-1.2          mice_3.12.0            
## [184] ape_5.4-1               car_3.0-10              xml2_1.3.2             
## [187] httr_1.4.2              assertthat_0.2.1        rmarkdown_2.6          
## [190] boot_1.3-25             globals_0.14.0          R6_2.5.0               
## [193] nnet_7.3-14             progress_1.2.2          statmod_1.4.35         
## [196] repr_1.1.0              urca_1.3-0              clustMixType_0.2-9     
## [199] snakecase_0.11.0        colorspace_2.0-0        generics_0.1.0         
## [202] stats4_4.0.2            base64enc_0.1-3         chron_2.3-56           
## [205] pillar_1.4.7            tweenr_1.0.1            sp_1.4-4               
## [208] uuid_0.1-4              plyr_1.8.6              gtable_0.3.0           
## [211] rvest_0.3.6             zip_2.1.1               knitr_1.30             
## [214] latticeExtra_0.6-29     fastmap_1.0.1           crosstalk_1.1.0.1      
## [217] flexmix_2.3-17          NeuralNetTools_1.5.2    broom_0.7.3            
## [220] openssl_1.4.3           scales_1.1.1            backports_1.2.1        
## [223] writexl_1.3.1           ipred_0.9-9             lme4_1.1-26            
## [226] hms_0.5.3               shiny_1.5.0             KMsurv_0.1-5           
## [229] polyclip_1.10-0         numDeriv_2016.8-1.1     lazyeval_0.2.2         
## [232] cvTools_0.3.2           crayon_1.3.4            shinyAce_0.4.1         
## [235] pROC_1.16.2             reshape_0.8.8           rpart_4.1-15           
## [238] compiler_4.0.2