Importação dos pacotes requeridos.

library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.4     ✔ readr     2.1.5
## ✔ forcats   1.0.0     ✔ stringr   1.5.1
## ✔ ggplot2   3.5.1     ✔ tibble    3.2.1
## ✔ lubridate 1.9.3     ✔ tidyr     1.3.1
## ✔ purrr     1.0.2     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## â„č Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(ggpubr)
library(table1)
## 
## Attaching package: 'table1'
## 
## The following objects are masked from 'package:base':
## 
##     units, units<-
library(nortest)
library(patchwork)
library("readxl")
library(dplyr)
library(forcats)
library(ggplot2)
library(esquisse)

Recodificando o conteĂșdo das variĂĄveis utilizando condicionais conforme as cidades.

lung = read_excel("lung.xlsx")

lung$cidade <- ifelse(lung$cidade == 0, "Porto Alegre", lung$cidade)
lung$cidade <- ifelse(lung$cidade == 1, "Canoas", lung$cidade)
lung$cidade <- ifelse(lung$cidade == 2, "Guaiba", lung$cidade)
lung$cidade <- ifelse(lung$cidade == 3, "Gravatai", lung$cidade)

ConversĂŁo da variĂĄvel cidade para factor.

lung$cidade = as.factor(lung$cidade)

Recodificando o conteĂșdo das variĂĄveis de tabagismo utilizando condicionais.

lung$tabagismo = ifelse(lung$tabagismo == 0, "NĂŁo fumante", lung$tabagismo)
lung$tabagismo = ifelse(lung$tabagismo == 1, "Ex-Fumante", lung$tabagismo)
lung$tabagismo = ifelse(lung$tabagismo == 2, "Fumante", lung$tabagismo)

lung$tabagismo = as.factor(lung$tabagismo)

Criação de tabela demogråfica apresentada por cidades.

tabela1 = table1(data=lung, ~ id + altura + peso + imc + etnia + idade + tabagismo | cidade)

Criação de tabela de funçaÔ pulmonar apresentada por cidades.

tabela2 = table1(data=lung, ~ fvcz + fev1z + fev1fvcz + fef2575z | cidade)

Teste de normalidade das funçÔes pulmonares usando o lillie.test.

vars = lung[, c("fvcz", "fev1z", "fev1fvcz", "fef2575z")]
lapply(vars, lillie.test)
## $fvcz
## 
##  Lilliefors (Kolmogorov-Smirnov) normality test
## 
## data:  X[[i]]
## D = 0.058471, p-value = 0.01504
## 
## 
## $fev1z
## 
##  Lilliefors (Kolmogorov-Smirnov) normality test
## 
## data:  X[[i]]
## D = 0.050336, p-value = 0.06404
## 
## 
## $fev1fvcz
## 
##  Lilliefors (Kolmogorov-Smirnov) normality test
## 
## data:  X[[i]]
## D = 0.050541, p-value = 0.06195
## 
## 
## $fef2575z
## 
##  Lilliefors (Kolmogorov-Smirnov) normality test
## 
## data:  X[[i]]
## D = 0.056845, p-value = 0.02054

A capacidade vital forçada (fvcz) e o fluxo expiratĂłrio forçado mĂ©dio entre 25-75% da FVC apresentaram valores com p < 0.05. Por outro lado, o volume expiratĂłrio forçado no primeiro segundo e a relação entre FEV1 e FVC, que avalia se hĂĄ obstrução das vias aĂ©reas, apresentaram um p > 0.05, ou seja, estes Ășltimos dados sĂŁo compatĂ­veis com distribuição normal.

Kruskal.test realizado para verificar se hå diferenças de capacidade vital forçada entre as cidades.

fvcz_kruskal = kruskal.test(lung$fvcz ~ lung$cidade)
kruskal.test(lung$fvcz ~ lung$cidade)
## 
##  Kruskal-Wallis rank sum test
## 
## data:  lung$fvcz by lung$cidade
## Kruskal-Wallis chi-squared = 15.091, df = 3, p-value = 0.00174

Kruskal.test realizado para verificar se hå diferenças de fluxo expiratório forçado médio entre 25-75% da FVC entre as cidades.

fef2575z_kruskal = kruskal.test(lung$fef2575z ~ lung$cidade)
kruskal.test(lung$fef2575z ~ lung$cidade)
## 
##  Kruskal-Wallis rank sum test
## 
## data:  lung$fef2575z by lung$cidade
## Kruskal-Wallis chi-squared = 7.9169, df = 3, p-value = 0.04776

Houve diferença estatísticamente significativa entre as cidades quando avaliada a capacidade vital forçada e o fluxo expiratório forçado médio entre 25-75% da FVC.

Agora serĂĄ realizado um post-hoc para descobrir quais cidades sĂŁo diferentes entre si usando o pairwise.wilcox.test.

pairwise.wilcox.test(lung$fvcz, lung$cidade, p.adjust.method = "bonferroni")
## 
##  Pairwise comparisons using Wilcoxon rank sum test with continuity correction 
## 
## data:  lung$fvcz and lung$cidade 
## 
##              Canoas Gravatai Guaiba
## Gravatai     0.0013 -        -     
## Guaiba       0.2041 0.4600   -     
## Porto Alegre 0.0540 1.0000   1.0000
## 
## P value adjustment method: bonferroni

A capacidade vital forçada apresentou uma diferença estatísticamente significativa entre as cidades de Canoas e Gravataí.

pairwise.wilcox.test(lung$fev1z, lung$cidade, p.adjust.method = "bonferroni")
## 
##  Pairwise comparisons using Wilcoxon rank sum test with continuity correction 
## 
## data:  lung$fev1z and lung$cidade 
## 
##              Canoas  Gravatai Guaiba 
## Gravatai     0.00026 -        -      
## Guaiba       0.97223 0.01835  -      
## Porto Alegre 0.45626 0.21576  1.00000
## 
## P value adjustment method: bonferroni

O volume expiratório forçado no primeiro segundo apresentou uma diferença estatísticamente significativa entre Canoas e Gravataí, e Gravataí e Guaíba.

pairwise.wilcox.test(lung$fev1fvcz, lung$cidade, p.adjust.method = "bonferroni")
## 
##  Pairwise comparisons using Wilcoxon rank sum test with continuity correction 
## 
## data:  lung$fev1fvcz and lung$cidade 
## 
##              Canoas Gravatai Guaiba
## Gravatai     1.00   -        -     
## Guaiba       0.84   0.41     -     
## Porto Alegre 1.00   0.85     1.00  
## 
## P value adjustment method: bonferroni

A relação entre FEV1/FVCZ não apresentou nenhuma diferença estatísticamente significativa entre as cidades.

pairwise.wilcox.test(lung$fef2575z, lung$cidade, p.adjust.method = "bonferroni")
## 
##  Pairwise comparisons using Wilcoxon rank sum test with continuity correction 
## 
## data:  lung$fef2575z and lung$cidade 
## 
##              Canoas Gravatai Guaiba
## Gravatai     0.250  -        -     
## Guaiba       1.000  0.035    -     
## Porto Alegre 1.000  0.427    1.000 
## 
## P value adjustment method: bonferroni

O fluxo expiratório forçado médio entre 25-75% da FVC apresentou uma diferença estatísticamente significativa entre as cidades de Gravataí e Guaíba.

Gråficos combinados de diferentes capacidades de função pulmonar entre as cidades

ggplot(lung, aes(x = cidade, y = fvcz, fill = cidade)) + 
  geom_boxplot() + 
  labs(title = "Relação de Capacidade Vital Forçada e as cidades",
       x = "Cidade",
       y= "Capacidade Vital Forçada") +
  scale_fill_brewer(palette = "Paired") +
  theme_classic()

ggplot(lung, aes(x = cidade, y = fev1z, fill = cidade)) + 
  geom_boxplot() + 
  labs(title = "Relação de Volume expiratório forçado no primeiro segundo e as cidades",
       x = "Cidade",
       y= "Volume expiratório forçado no primeiro segundo") +
  scale_fill_brewer(palette = "Paired") +
  theme_classic()

ggplot(lung, aes(x = cidade, y = fev1fvcz, fill = cidade)) + 
  geom_boxplot() + 
  labs(title = "Relação da FEV1FVCZ e as cidades",
       x = "Cidade",
       y= "FEV1FVCZ") +
  scale_fill_brewer(palette = "Paired") +
  theme_classic()

ggplot(lung, aes(x = cidade, y = fef2575z, fill = cidade)) + 
  geom_boxplot() + 
  labs(title = "Relação de fluxo expiratório forçado médio entre 25-75% da FVC e as cidades",
       x = "Cidade",
       y= "Fluxo expiratório forçado médio entre 25-75% da FVC") +
  scale_fill_brewer(palette = "Paired") +
  theme_classic()