library(MASS)
library(descr)
## Warning: package 'descr' was built under R version 4.1.3
library(pander)
## Warning: package 'pander' was built under R version 4.1.3
library(tidyverse)
## -- Attaching packages --------------------------------------- tidyverse 1.3.1 --
## v ggplot2 3.3.5 v purrr 0.3.4
## v tibble 3.1.6 v dplyr 1.0.8
## v tidyr 1.2.0 v stringr 1.4.0
## v readr 2.1.2 v forcats 0.5.1
## -- Conflicts ------------------------------------------ tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag() masks stats::lag()
## x dplyr::select() masks MASS::select()
a <-data.frame(
stringsAsFactors = T,
Operadora = c("Total Heatlth","Viva Vida","Mena Saúde"),
Baixo = c(40L, 32L, 24L),# =
Médio = c(16L, 24L, 32L),
Alto = c(12L, 16L, 4L))
a <- a %>% pivot_longer(cols=-1, names_to = "Nível de Satisfação")
tab <- data.frame(Operadora=a[rep(seq_len(dim(a)[1]), a$value), 1],
`Nível de Satisfação`=a[rep(seq_len(dim(a)[1]), a$value), 2])
head(tab)
## Operadora Nível.de.Satisfação
## 1 Total Heatlth Baixo
## 2 Total Heatlth Baixo
## 3 Total Heatlth Baixo
## 4 Total Heatlth Baixo
## 5 Total Heatlth Baixo
## 6 Total Heatlth Baixo
tab$Nível.de.Satisfação<- factor(tab$Nível.de.Satisfação, levels=c("Baixo","Médio","Alto"))
tab$Operadora<- factor(tab$Operadora, levels=c("Total Heatlth","Viva Vida","Mena Saúde"))
ct<-CrossTable(tab$Operadora, tab$Nível.de.Satisfação,
fisher = T, chisq = T, expected = T,
prop.c = T, prop.t = T, prop.chisq = T,
resid = T,
sresid = T, format = 'SPSS',row.labels = T,
dnn = c("Operadora", "Nível de Satisfação"))
ct
## Cell Contents
## |-------------------------|
## | Count |
## | Expected Values |
## | Chi-square contribution |
## | Row Percent |
## | Column Percent |
## | Total Percent |
## | Residual |
## | Std Residual |
## |-------------------------|
##
## =================================================
## Nível de Satisfação
## Operadora Baixo Médio Alto Total
## -------------------------------------------------
## Total Heatlth 40 16 12 68
## expected 32.6 24.5 10.9
## chisq 1.660 2.938 0.115
## row % 58.8 23.5 17.6 34.0
## col % 41.7 22.2 37.5
## table % 20 8 6
## residual 7.36 -8.48 1.12
## std. res. 1.288 -1.714 0.340
## -------------------------------------------------
## Viva Vida 32 24 16 72
## expected 34.6 25.9 11.5
## chisq 0.190 0.142 1.742
## row % 44.4 33.3 22.2 36.0
## col % 33.3 33.3 50.0
## table % 16 12 8
## residual -2.56 -1.92 4.48
## std. res. -0.435 -0.377 1.320
## -------------------------------------------------
## Mena Saúde 24 32 4 60
## expected 28.8 21.6 9.6
## chisq 0.800 5.007 3.267
## row % 40.0 53.3 6.7 30.0
## col % 25.0 44.4 12.5
## table % 12 16 2
## residual -4.80 10.40 -5.60
## std. res. -0.894 2.238 -1.807
## -------------------------------------------------
## Total 96 72 32 200
## 48 36 16
## =================================================
##
## Statistics for All Table Factors
##
## Pearson's Chi-squared test
## ------------------------------------------------------------
## Chi^2 = 15.86057 d.f. = 4 p = 0.00321
##
##
##
## Fisher's Exact Test for Count Data
## ------------------------------------------------------------
## Alternative hypothesis: two.sided
## p = 0.00309
## Minimum expected frequency: 9.6
pander(ct,digits = 2, caption = "Tabela plano de Saúde")
| Operadora |
Nível de Satisfação Baixo |
Médio |
Alto |
Total |
|---|---|---|---|---|
| Total Heatlth N Expected N Chi-square Row(%) Column(%) Total(%) Residual Std Residual |
40 32.64 1.66 58.82% 41.67% 20% 7.36 1.29 |
16 24.48 2.94 23.53% 22.22% 8% -8.48 -1.71 |
12 10.88 0.12 17.65% 37.50% 6% 1.12 0.34 |
68 34.00% |
| Viva Vida N Expected N Chi-square Row(%) Column(%) Total(%) Residual Std Residual |
32 34.56 0.19 44.44% 33.33% 16% -2.56 -0.44 |
24 25.92 0.14 33.33% 33.33% 12% -1.92 -0.38 |
16 11.52 1.74 22.22% 50.00% 8% 4.48 1.32 |
72 36.00% |
| Mena Saúde N Expected N Chi-square Row(%) Column(%) Total(%) Residual Std Residual |
24 28.80 0.80 40.00% 25.00% 12% -4.80 -0.89 |
32 21.60 5.01 53.33% 44.44% 16% 10.40 2.24 |
4 9.60 3.27 6.67% 12.50% 2% -5.60 -1.81 |
60 30.00% |
| Total |
96 48% |
72 36% |
32 16% |
200 |
tab %>% table() %>% addmargins()
## Nível.de.Satisfação
## Operadora Baixo Médio Alto Sum
## Total Heatlth 40 16 12 68
## Viva Vida 32 24 16 72
## Mena Saúde 24 32 4 60
## Sum 96 72 32 200
round(addmargins(prop.table(table(tab))*100),2)
## Nível.de.Satisfação
## Operadora Baixo Médio Alto Sum
## Total Heatlth 20 8 6 34
## Viva Vida 16 12 8 36
## Mena Saúde 12 16 2 30
## Sum 48 36 16 100
plot(ct, inv.y = TRUE)