#Lendo pacotes necessários
library(survey)
library(ggplot2)
library(dplyr)
library(tictoc)
library(foreign)
library(forcats)
library(tidyverse)
#Carregando banco de dados para R versão 3.5.0 ou superior
load("<coloque aqui o caminho para o arquivo dos microdados formato RDATA PNS 2019>")
#conferindo as dimensões (número de linhas e colunas)
dim("<Coloque aqui o nome do arquivo RDATA PNS 2019>")
#Selecionando registros válidos e calculando peso amostral - summary de verificação
pns2019.1<- <Coloque aqui o nome do arquivo RDATA> %>% mutate(peso_moradores=((V00281*279382/209589607)))
pns2019.1<-pns2019.1 %>% filter(!is.na(peso_moradores))
summary(pns2019.1$peso_moradores)
#Desfechos - Indicadores
# Idosos com limitação funcional para realizar Atividades de Vida Diária (AVD) - K002P
pns2019.1 <- pns2019.1 %>% mutate(K002P = ifelse(C008>=60 & (K001==1 | K001==2 | K004==1
| K004==2 | K007==1 | K007==2
| K010==1 | K010==2 | K013==1
| K013==2 | K016==1 | K016==2
| K019==1 | K019==2), 1,
ifelse(C008>=60, 2, NA_real_)))
pns2019.1$K002P<-factor(pns2019.1$K002P, levels=c(1,2), labels=c("Sim", "Não"))
summary(pns2019.1$K002P)
# Idosos que precisavam de ajuda para realizar Atividades de Vida Diária (AVD) - K003P
pns2019.1 <- pns2019.1 %>% mutate(K003P = case_when(
C008>=60 & K01901==1 ~ 1,
C008>=60 ~ 2,
TRUE ~ NA_real_
)
)
pns2019.1$K003P<-factor(pns2019.1$K003P, levels=c(1,2), labels=c("Sim", "Não"))
summary(pns2019.1$K003P)
# Idosos que recebiam ajuda para realizar Atividades de Vida Diária (AVD) - K004P
pns2019.1 <- pns2019.1 %>% mutate(K004P = case_when(
C008>=60 & K02001==1 ~ 1,
C008>=60 ~ 2,
TRUE ~ NA_real_
)
)
pns2019.1$K004P<-factor(pns2019.1$K004P, levels=c(1,2), labels=c("Sim", "Não"))
summary(pns2019.1$K004P)
# Idosos com limitação funcional para realizar Atividades Instrumentais de Vida Diária (AIVD) - K006P
pns2019.1 <- pns2019.1 %>% mutate(K006P = ifelse(C008>=60 & (K022==1 | K022==2 | K025==1 |
K025==2 | K028==1 | K028==2 |
K031==1 | K031==2 | K034==1 |
K034==2), 1,
ifelse(C008>=60, 2, NA_real_)))
pns2019.1$K006P<-factor(pns2019.1$K006P, levels=c(1,2), labels=c("Sim", "Não"))
summary(pns2019.1$K006P)
# Idosos que precisavam de ajuda para realizar Atividades Instrumentais de Vida Diária (AIVD) - K007P
pns2019.1 <- pns2019.1 %>% mutate(K007P = case_when(
C008>=60 & K03401==1 ~ 1,
C008>=60 ~ 2,
TRUE ~ NA_real_
)
)
pns2019.1$K007P<-factor(pns2019.1$K007P, levels=c(1,2), labels=c("Sim", "Não"))
summary(pns2019.1$K007P)
# Idosos que recebiam ajuda para realizar Atividades Instrumentais de Vida Diária (AIVD) - K008P
pns2019.1 <- pns2019.1 %>% mutate(K008P = case_when(
C008>=60 & K03501==1 ~ 1,
C008>=60 ~ 2,
TRUE ~ NA_real_,
)
)
pns2019.1$K008P<-factor(pns2019.1$K008P, levels=c(1,2), labels=c("Sim", "Não"))
summary(pns2019.1$K008P)
# Idosos que fazem uso regular ou contínuo de medicamentos - K010P
pns2019.1 <- pns2019.1 %>% mutate(K010P = case_when(
C008>=60 & K04301==1 ~ 1,
C008>=60 ~ 2,
TRUE ~ NA_real_
)
)
pns2019.1$K010P<-factor(pns2019.1$K010P, levels=c(1,2), labels=c("Sim", "Não"))
summary(pns2019.1$K010P)
# Idosos com diagnóstico de catarata em uma ou ambas as vistas - K011P
pns2019.1 <- pns2019.1 %>% mutate(K011P = case_when(
C008>=60 & K045==1 ~ 1,
C008>=60 ~ 2,
TRUE ~ NA_real_,
)
)
pns2019.1$K011P<-factor(pns2019.1$K011P, levels=c(1,2), labels=c("Sim", "Não"))
summary(pns2019.1$K011P)
# Idosos com diagnóstico de catarata que fizeram cirurgia para retirá-la - K012P
pns2019.1 <- pns2019.1 %>% mutate(K012P = case_when(
C008>=60 & K047==1 ~ 1,
C008>=60 & K046==1 ~ 2,
TRUE ~ NA_real_
)
)
pns2019.1$K012P<-factor(pns2019.1$K012P, levels=c(1,2), labels=c("Sim", "Não"))
summary(pns2019.1$K012P)
# Idosos com diagnóstico de catarata que fizeram cirurgia para retirá-la pelo SUS - K013P
pns2019.1 <- pns2019.1 %>% mutate(K013P = case_when(
C008>=60 & K047==1 & K051==1 ~ 1,
C008>=60 & K047==1 ~ 2,
TRUE ~ NA_real_
)
)
pns2019.1$K013P<-factor(pns2019.1$K013P, levels=c(1,2), labels=c("Sim", "Não"))
summary(pns2019.1$K013P)
# Idosos que foram vacinados contra a gripe nos últimos 12 meses anteriores à pesquisa - K014P
pns2019.1 <- pns2019.1 %>% mutate(K014P = case_when(
C008>=60 & K052==1 ~ 1,
C008>=60 ~ 2,
TRUE ~ NA_real_
))
pns2019.1$K014P<-factor(pns2019.1$K014P, levels=c(1,2), labels=c("Sim", "Não"))
summary(pns2019.1$K014P)
# Idosos que sofreram alguma queda nos últimos 12 meses anteriores à pesquisa - K015P
pns2019.1 <- pns2019.1 %>% mutate(K015P = case_when(
C008>=60 & K05401==1 ~ 1,
C008>=60 ~ 2,
TRUE ~ NA_real_
)
)
pns2019.1$K015P<-factor(pns2019.1$K015P, levels=c(1,2), labels=c("Sim", "Não"))
summary(pns2019.1$K015P)
#Situação Urbano ou Rural
pns2019.1 <- pns2019.1 %>% mutate(Sit_Urbano_Rural=V0026)
pns2019.1$Sit_Urbano_Rural<-factor(pns2019.1$Sit_Urbano_Rural, levels=c(1,2), labels=c("urbano", "rural"))
summary(pns2019.1$Sit_Urbano_Rural)
#Sexo
pns2019.1 <- pns2019.1 %>% mutate(Sexo=C006)
pns2019.1$Sexo<-factor(pns2019.1$Sexo, levels=c(1,2), labels=c("Masculino", "Feminino"))
summary(pns2019.1$Sexo)
#Estados - UFs
pns2019.1 <- pns2019.1 %>% mutate(Unidades_da_Federacao=V0001)
pns2019.1$Unidades_da_Federacao<-factor(pns2019.1$Unidades_da_Federacao, levels=c(11,12,13,14,15,16,17,21,22,23,24,25,26,27,28,29,31,32,33,35,41,42,43,50,51,52,53),
label=c("Rondônia","Acre","Amazonas","Roraima","Pará","Amapá","Tocantins","Maranhão","Piauí","Ceará",
"Rio Grande do Norte","Paraíba","Pernambuco","Alagoas","Sergipe","Bahia",
"Minas Gerais","Espírito Santo","Rio de Janeiro","São Paulo",
"Paraná","Santa Catarina","Rio Grande do Sul",
"Mato Grosso do Sul","Mato Grosso","Goiás","Distrito Federal"))
summary(pns2019.1$Unidades_da_Federacao)
#Grandes Regiões
pns2019.1 <- pns2019.1 %>%
mutate(GrandesRegioes = fct_collapse(Unidades_da_Federacao,
`Norte` = c("Rondônia","Acre","Amazonas","Roraima","Pará", "Amapá","Tocantins"),
`Nordeste` = c("Maranhão", "Piauí", "Ceará", "Rio Grande do Norte", "Paraíba","Pernambuco", "Alagoas","Sergipe","Bahia"),
`Sudeste` = c("Minas Gerais", "Espírito Santo","Rio de Janeiro", "São Paulo"),
`Sul` = c("Paraná", "Santa Catarina", "Rio Grande do Sul"),
`Centro-Oeste`= c("Mato Grosso do Sul","Mato Grosso", "Goiás", "Distrito Federal")))
summary(pns2019.1$GrandesRegioes)
#Capital
pns2019.1<- pns2019.1 %>% mutate(Capital= fct_collapse(Unidades_da_Federacao,
`Porto Velho`= "Rondônia",
`Boa Vista`= "Roraima",
`Rio Branco`= "Acre",
`Manaus` = "Amazonas",
`Belém` = "Pará" ,
`Macapá`= "Amapá",
`Palmas` = "Tocantins",
`São Luís` = "Maranhão",
`Teresina`= "Piauí" ,
`Fortaleza`= "Ceará",
`Natal`= "Rio Grande do Norte",
`João Pessoa`= "Paraíba",
`Recife`= "Pernambuco",
`Maceió`= "Alagoas",
`Aracaju`= "Sergipe",
`Salvador`= "Bahia",
`Belo Horizonte`= "Minas Gerais",
`Vitória`= "Espírito Santo",
`Rio de Janeiro`= "Rio de Janeiro",
`São Paulo`= "São Paulo",
`Curitiba`= "Paraná",
`Florianópolis`= "Santa Catarina",
`Porto Alegre`= "Rio Grande do Sul",
`Campo Grande`= "Mato Grosso do Sul",
`Cuiabá`= "Mato Grosso",
`Goiânia` = "Goiás",
`Brasília`= "Distrito Federal"))
summary(pns2019.1$Capital)
#Faixas Etárias
pns2019.1 <- pns2019.1 %>% mutate(fx_idade_60=cut(C008,
breaks = c(59.99, 64.99, 69.99, 74.99, Inf),
labels = c("60 a 64 anos","65 a 69 anos","70 a 74 anos","75 anos ou mais"), ordered_result = TRUE, right = TRUE))
summary(pns2019.1$fx_idade_60)
#Raça
pns2019.1 <- pns2019.1 %>% mutate(Raca= ifelse(C009==1, 1,
ifelse(C009==2, 2,
ifelse(C009==4, 3, 9))))
pns2019.1$Raca<-factor(pns2019.1$Raca, levels=c(1,2,3),labels=c("Branca", "Preta", "Parda"))
summary(pns2019.1$Raca)
#Rendimento domiciliar per capita
pns2019.1 <- pns2019.1 %>% mutate(rend_per_capita = ifelse(VDF004 %in% 1:2, 1,
ifelse(VDF004%in% 3, 2,
ifelse(VDF004%in% 4, 3,
ifelse(VDF004%in% 5, 4,
ifelse(is.na(VDF004)==TRUE, NA_real_, 5))))))
pns2019.1$rend_per_capita<-factor(pns2019.1$rend_per_capita, levels=c(1,2,3,4,5), labels=c("Até 1/2 SM","1/2 até 1 SM","1 até 2 SM",
"2 até 3 SM","Mais de 3 SM"))
summary(pns2019.1$rend_per_capita)
# Escolaridade
pns2019.1 <- pns2019.1 %>% mutate(gescol = ifelse(VDD004A %in% 1:2, 1,
ifelse(VDD004A%in% 3:4, 2,
ifelse(VDD004A%in% 5:6, 3,4
))))
pns2019.1$gescol<-factor(pns2019.1$gescol, levels=c(1,2,3,4),
labels=c("Fundamental incompleto ou equivalente","Médio incompleto ou equivalente",
"Superior incompleto ou equivalente","Superior completo"))
summary(pns2019.1$gescol)
#Selecionando variáveis para cálculo de indicadores no survey
pns2019survey<- pns2019.1 %>% select("V0024","UPA_PNS","peso_moradores",
"K002P","K003P","K004P","K006P","K007P","K008P","K010P","K011P","K012P","K013P",
"K014P","K015P", "V0031","C008",
"Sit_Urbano_Rural","Sexo","Unidades_da_Federacao", "GrandesRegioes",
"Capital","fx_idade_60", "Raca","rend_per_capita", "gescol",
"K045", "K046", "K047")
summary(pns2019survey)
#Salvando csv para cálculo de indicadores no survey
diretorio_saida <- "<coloque aqui o diretório>"
write.csv(pns2019survey, file.path(diretorio_saida, "pns2019Ksurvey.csv"))
#survey design
desPNS=svydesign(id=~UPA_PNS, strat=~V0024, weight=~peso_moradores,nest=TRUE, data=pns2019survey)
#survey design K002P, K003P, K004P, K006P, K007P, K008P, K010P, K014P, K015P
desPNSK = subset(desPNS, C008>=60)
desPNSKC = subset(desPNS, C008>=60 & V0031==1)
desPNSKR = subset(desPNS, C008>=60 & !is.na(Raca) )
#survey design K011P
desPNSK_K011P = subset(desPNS, C008>=60 )
desPNSKC_K011P = subset(desPNS, C008>=60 & V0031==1)
desPNSKR_K011P = subset(desPNS, C008>=60 & !is.na(Raca) )
#survey design K012P
desPNSK_K012P = subset(desPNS, C008>=60 & K046==1)
desPNSKC_K012P = subset(desPNS, C008>=60 & K046==1 & V0031==1)
desPNSKR_K012P = subset(desPNS, C008>=60 & K046==1 & !is.na(Raca) )
#survey design K013P
desPNSK_K013P = subset(desPNS, C008>=60 & K047==1)
desPNSKC_K013P = subset(desPNS, C008>=60 & K047==1 & V0031==1)
desPNSKR_K013P = subset(desPNS, C008>=60 & K047==1 & !is.na(Raca) )
Essa tabela é responsável por unir os indicadores no formato do painel de indicadores
matrizIndicadores = data.frame()
ListaIndicadores = c(~K002P,~K003P,~K004P,~K006P,~K007P,~K008P,~K010P,~K011P,~K012P,~K013P,~K014P,~K015P)
ListaIndicadoresTexto = c("K002P","K003P","K004P","K006P","K007P","K008P","K010P","K011P","K012P","K013P","K014P","K015P")
ListaDominios = c(~Sexo,~Raca,~rend_per_capita,~fx_idade_60,~Sit_Urbano_Rural,~Unidades_da_Federacao,~GrandesRegioes,~gescol,~Capital)
ListaDominiosTexto = c("Sexo","raça","rend_per_capita","fx_idade_60","urb_rur","uf","região","gescol","capital")
ListaTotais = c('Brasil','Capital')
Ano <- "2019"
Essas iterações rodam por indicador, abrangência e por design
#Cálculo dos indicadores usando o pacote survey
i <- 0
for( indicador in ListaIndicadores){
i <- i + 1
j <- 1
for (dominio in ListaDominios){
if (ListaDominiosTexto[j]=="capital"){
if (ListaIndicadoresTexto[i]=="K011P") { dataframe_indicador<-svyby( indicador , dominio , desPNSKC_K011P , svymean,vartype= c("ci","cv"))
} else if (ListaIndicadoresTexto[i]=="K012P") { dataframe_indicador<-svyby( indicador , dominio , desPNSKC_K012P , svymean,vartype= c("ci","cv"))
} else if (ListaIndicadoresTexto[i]=="K013P") { dataframe_indicador<-svyby( indicador , dominio , desPNSKC_K013P , svymean,vartype= c("ci","cv"))
} else {
dataframe_indicador<-svyby( indicador , dominio , desPNSKC , svymean,vartype= c("ci","cv"))
}
} else if (ListaDominiosTexto[j]=="raça"){
if (ListaIndicadoresTexto[i]=="K011P") { dataframe_indicador<-svyby( indicador , dominio , desPNSKR_K011P , svymean,vartype= c("ci","cv"))
} else if (ListaIndicadoresTexto[i]=="K012P") { dataframe_indicador<-svyby( indicador , dominio , desPNSKR_K012P , svymean,vartype= c("ci","cv"))
} else if (ListaIndicadoresTexto[i]=="K013P") { dataframe_indicador<-svyby( indicador , dominio , desPNSKR_K013P , svymean,vartype= c("ci","cv"))
} else {
dataframe_indicador<-svyby( indicador , dominio , desPNSKR , svymean,vartype= c("ci","cv"))
}
} else if (ListaIndicadoresTexto[i]=="K011P") { dataframe_indicador<-svyby( indicador , dominio , desPNSK_K011P , svymean,vartype= c("ci","cv"))
} else if (ListaIndicadoresTexto[i]=="K012P") { dataframe_indicador<-svyby( indicador , dominio , desPNSK_K012P , svymean,vartype= c("ci","cv"))
} else if (ListaIndicadoresTexto[i]=="K013P") { dataframe_indicador<-svyby( indicador , dominio , desPNSK_K013P , svymean,vartype= c("ci","cv"))
} else {
dataframe_indicador<-svyby( indicador , dominio , desPNSK , svymean,vartype= c("ci","cv"))
}
dataframe_indicador<-data.frame(dataframe_indicador)
colnames(dataframe_indicador) <- c("abr_nome","Sim","Não","LowerS","LowerN","UpperS","UpperN","cvS","cvN")
dataframe_indicador$Indicador <- ListaIndicadoresTexto[i]
dataframe_indicador$abr_tipo <- ListaDominiosTexto[j]
dataframe_indicador$Ano <- Ano
dataframe_indicador <- dataframe_indicador %>% select("abr_tipo","abr_nome","Ano","Indicador","Sim","LowerS","UpperS","cvS")
matrizIndicadores <-rbind(matrizIndicadores,dataframe_indicador)
j <- j + 1
}
}
matriz_totais <- data.frame()
i=0
for(indicador in ListaIndicadores){
i <- i+1
for(total in ListaTotais){
dataframe_indicador <- data.frame()
dataframe_indicador_S <- data.frame()
if(total == 'Capital'){
if(ListaIndicadoresTexto[i] == "K011P"){
dataframe_indicador <- svymean(indicador,desPNSKC_K011P)
} else if(ListaIndicadoresTexto[i] == "K012P") {
dataframe_indicador <- svymean(indicador,desPNSKC_K012P)
} else if(ListaIndicadoresTexto[i] == "K013P") {
dataframe_indicador <- svymean(indicador,desPNSKC_K013P)
} else {
dataframe_indicador <- svymean(indicador,desPNSKC)
}
} else {
if(ListaIndicadoresTexto[i] == "K012P"){
dataframe_indicador <- svymean(indicador,desPNSK_K012P)
} else if(ListaIndicadoresTexto[i] == "K011P") {
dataframe_indicador <- svymean(indicador,desPNSK_K011P)
} else if(ListaIndicadoresTexto[i] == "K013P") {
dataframe_indicador <- svymean(indicador,desPNSK_K013P)
} else {
dataframe_indicador <- svymean(indicador,desPNSK)
}
}
intervalo_confianca <- confint(dataframe_indicador)
coeficiente_variacao <- cv(dataframe_indicador)
dataframe_indicador <- cbind(data.frame(dataframe_indicador),data.frame(intervalo_confianca))
dataframe_indicador <- cbind(data.frame(dataframe_indicador),data.frame(coeficiente_variacao))
dataframe_indicador <- dataframe_indicador %>%
select('mean','X2.5..','X97.5..',coeficiente_variacao)
dataframe_indicador_S <- dataframe_indicador %>%
slice(1)
colnames(dataframe_indicador_S) <- c('Sim','LowerS','UpperS', 'cvS')
dataframe_indicador_S <- dataframe_indicador_S %>%
select('Sim','LowerS','UpperS','cvS')
dataframe_indicador_S$Indicador <- ListaIndicadoresTexto[i]
dataframe_indicador_S$abr_tipo <- "total"
dataframe_indicador_S$abr_nome <- total
dataframe_indicador_S$Ano <- Ano
dataframe_indicador_S <- dataframe_indicador_S %>%
select("abr_tipo","abr_nome","Ano","Indicador","Sim","LowerS","UpperS",'cvS')
matriz_totais <-rbind(matriz_totais,dataframe_indicador_S)
}
}
matrizIndicadores<-rbind(matrizIndicadores,matriz_totais)
matrizIndicadores