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")
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)