# Analise dos dados brutos das respostas do iGG

library(readxl)
library(corrplot)
library(tidyverse)
library(tidyr)
library(dplyr)
library(ggplot2)
library(reshape2)
library(ltm)
library(psych)
library(kableExtra)
library(readr)

setwd("G:/Drives compartilhados/ESTATISTICA/IGG_calculo/")

dados <- read_delim("PerfilGov2018_DadosCompletos.csv", 
                    delim = ";", escape_double = FALSE, trim_ws = TRUE)

items = dados[,1:101]

items %>% column_to_rownames("ID") -> items

# notas da ufersa
dados %>% filter(ID == "190") -> results_ufersa


# funcao que extrai os pesos dos items na composicao do agregador

extrator_de_pesos = function(pratica){
  
  # PCA
  FactoMineR::PCA(pratica, scale.unit = TRUE,
                  graph = TRUE) -> PCA_1
  PCA_1$eig[,1] -> eigenvalues_PCA1
  
  if(sum(eigenvalues_PCA1 >= 1) > 1){
    print(eigenvalues_PCA1)
    print("MAIS DE UM AUTOVALOR > 1")
    return(NULL)
  }
  
  q = qplot(1:length(eigenvalues_PCA1), eigenvalues_PCA1) +
    geom_line() +
    ylab("Autovalores dos componentes") +
    ggtitle("Scree Plot") +
    ylim(0, max(eigenvalues_PCA1 + 0.3)) + geom_hline(yintercept = 1)

  print(q) 
  
  PCA_1.res = PCA_1$var
  PCA_1.res$coord -> cargas_fatoriais
  #print(cargas_fatoriais[,1] %>% round(2))

  # obtendo a primeira componente:
  PCA_1$ind$coord[,1] -> pc1
  
  pratica_reg = cbind(data.frame(pc1 = pc1), pratica)
  lm(pc1 ~ ., data = pratica_reg) -> reg1
  reg1$coefficients[-1]/sum(reg1$coefficients[-1]) -> pesos
  
  
  return(pesos)
  
}

1 Indicador 1110

No agregador 1110, sugerimos mais atenção ao item 1112 que, apesar do peso menor, representa uma maior fragilidade da instituição - nota obtida bastante inferior à nota máxima.

Item 1111: A estrutura interna de governança da organização está estabelecida

Item 1112: A organização assegura o adequado balanceamento de poder para tomada de decisões críticas

# pratica 1110 ------------------------------------------------------------

pratica_1110 = data.frame(item1111 = items$`1111`,
                          item1112 = items$`1112`)


pesos1110 = extrator_de_pesos(pratica_1110)

# verificando se os pesos estao corretos:
matrix(c(dados$`1111`,dados$`1112`), 498,2) %*% 
  matrix(pesos1110, 2,1) %>% as.data.frame -> nota_1110


#data.frame(nota_1110, dados$`1110`) %>% View

# tabela:
pesos1110 %>% #round(6) %>%
  as.data.frame -> pesos1110

# adicionando a nota da ufersa
pesos1110$nota_ufersa = results_ufersa %>% dplyr::select('1111', '1112') %>% t %>%
  round(2)

cbind(pesos1110,
data.frame(max1111 = dados$`1111` %>% max, 
           max1112 = dados$`1112` %>% max) %>% t) -> pesos1110


colnames(pesos1110) = c("Peso", "Nota_Ufersa", "Nota_maxima")

kable(pesos1110, caption="Pesos da prática 1110",
             col.names = c("Pesos", "Notas da Ufersa", "Nota máxima")) %>%
  kable_styling() %>%
  row_spec(which(pesos1110$Nota_Ufersa == min(pesos1110$Nota_Ufersa)), 
           bold = T, color = "white", background = "red")
Pesos da prática 1110
Pesos Notas da Ufersa Nota máxima
item1111 0.5213179 0.92 1
item1112 0.4786821 0.15 1

2 Indicador 1120

Item 1121: Os membros da alta administração e de conselho ou colegiado superior estão comprometidos com a integridade

Item 1122: Há gestão de ética para a organização

# pratica 1120 ------------------------------------------------------------

pratica_1120 = data.frame(item1121 = items$`1121`,
                          item1122 = items$`1122`)


pesos1120 = extrator_de_pesos(pratica_1120)

# verificando se os pesos estao corretos:
matrix(c(dados$`1121`,dados$`1122`), 498,2) %*% 
  matrix(pesos1120, 2,1) -> nota_1120

#data.frame(nota_1120, dados$`1120`) %>% View

# pesos1120 %>% round(2) %>%
#   as.data.frame -> pesos1120
# 
# colnames(pesos1120) = "Peso"
# color.me <- which(pesos1120$Peso == max(pesos1120$Peso))
# 
# kable(pesos1120, caption="Pesos da prática 1120",
#              col.names = "Pesos") %>%
#   kable_styling() %>%
#   row_spec(which(pesos1120$Peso == max(pesos1120$Peso)), 
#            bold = T, color = "white", background = "red")
#   

# tabela:
pesos1120 %>% #round(6) %>%
  as.data.frame -> pesos1120

# adicionando a nota da ufersa
pesos1120$nota_ufersa = results_ufersa %>% dplyr::select('1121', '1122') %>% 
  t %>% round(2)

cbind(pesos1120,
data.frame(max1121 = dados$`1121` %>% max, 
           max1122 = dados$`1122` %>% max) %>% t) -> pesos1120


colnames(pesos1120) = c("Peso", "Nota_Ufersa", "Nota_maxima")

kable(pesos1120, caption="Pesos da prática 1120",
             col.names = c("Pesos", "Notas da Ufersa", "Nota máxima")) %>%
  kable_styling() %>%
  row_spec(which(pesos1120$Nota_Ufersa == min(pesos1120$Nota_Ufersa)), 
           bold = T, color = "white", background = "red")
Pesos da prática 1120
Pesos Notas da Ufersa Nota máxima
item1121 0.4441445 0 1
item1122 0.5558555 0 1

3 Indicador 1130

# pratica 1130 ------------------------------------------------------------

pratica_1130 = data.frame(item1131 = items$`1131`,
                          item1132 = items$`1132`,
                          item1133 = items$`1133`,
                          item1134 = items$`1134`)


pesos1130 = extrator_de_pesos(pratica_1130)

# verificando se os pesos estao corretos:
matrix(c(dados$`1131`,dados$`1132`, dados$`1133`, dados$`1134`), 498,4) %*% 
  matrix(pesos1130, 4,1) -> nota_1130

#data.frame(nota_1130, dados$`1130`) %>% View

pesos1130 %>% round(2) %>%
  as.data.frame -> pesos1130

colnames(pesos1130) = "Peso"
color.me <- which(pesos1130$Peso == max(pesos1130$Peso))

kable(pesos1130, caption="Pesos da prática 1130",
             col.names = "Pesos") %>%
  kable_styling() %>%
  row_spec(which(pesos1130$Peso == max(pesos1130$Peso)), 
           bold = T, color = "white", background = "red")
Pesos da prática 1130
Pesos
item1131 0.26
item1132 0.26
item1133 0.24
item1134 0.24

4 Indicador 2110

# pratica 2110 ------------------------------------------------------------

pratica_2110 = data.frame(item2111 = items$`2111`,
                          item2112 = items$`2112`,
                          item2113 = items$`2113`)


pesos2110 = extrator_de_pesos(pratica_2110)

# verificando se os pesos estao corretos:
matrix(c(dados$`2111`,dados$`2112`, dados$`2113`), 498,3) %*% 
  matrix(pesos2110, 3,1) -> nota_2110

#data.frame(nota_2110, dados$`2110`) %>% View

pesos2110 %>% round(2) %>%
  as.data.frame -> pesos2110

colnames(pesos2110) = "Peso"
color.me <- which(pesos2110$Peso == max(pesos2110$Peso))

kable(pesos2110, caption="Pesos da prática 2110",
             col.names = "Pesos") %>%
  kable_styling() %>%
  row_spec(which(pesos2110$Peso == max(pesos2110$Peso)), 
           bold = T, color = "white", background = "red")
Pesos da prática 2110
Pesos
item2111 0.24
item2112 0.31
item2113 0.45

5 Indicador 2120

# pratica 2120 ------------------------------------------------------------

pratica_2120 = data.frame(item2121 = items$`2121`,
                          item2122 = items$`2122`,
                          item2123 = items$`2123`,
                          item2124 = items$`2124`)


pesos2120 = extrator_de_pesos(pratica_2120)

# verificando se os pesos estao corretos:
matrix(c(dados$`2121`,dados$`2122`, dados$`2123`, dados$`2124`), 498,
       length(pesos2120)) %*% 
  matrix(pesos2120, length(pesos2120), 1) -> nota_2120

#data.frame(nota_2120, dados$`2120`) %>% View

pesos2120 %>% round(2) %>%
  as.data.frame -> pesos2120

colnames(pesos2120) = "Peso"
color.me <- which(pesos2120$Peso == max(pesos2120$Peso))

kable(pesos2120, caption="Pesos da prática 2120",
             col.names = "Pesos") %>%
  kable_styling() %>%
  row_spec(which(pesos2120$Peso == max(pesos2120$Peso)), 
           bold = T, color = "white", background = "red")
Pesos da prática 2120
Pesos
item2121 0.27
item2122 0.29
item2123 0.23
item2124 0.21

6 Indicador 2130

Este indicador apresenta mais de um autovalor > 1. Neste caso, não entend o que fazer. Mesmo assim, podemos utilizar os pesos dados pelo relatório, caso tenha sido apresentado.

# pratica 2130 ------------------------------------------------------------

pratica_2130 = data.frame(item2131 = items$`2131`,
                          item2132 = items$`2132`,
                          item2133 = items$`2133`,
                          item2134 = items$`2134`,
                          item2135 = items$`2135`,
                          item2136 = items$`2136`,
                          item2137 = items$`2137`,
                          item2138 = items$`2138`)


pesos2130 = extrator_de_pesos(pratica_2130)

##    comp 1    comp 2    comp 3    comp 4    comp 5    comp 6    comp 7    comp 8 
## 3.7948665 1.0787057 0.9334203 0.7339902 0.5280259 0.3569622 0.3221209 0.2519084 
## [1] "MAIS DE UM AUTOVALOR > 1"

7 Indicador 3110

# pratica 3110 ------------------------------------------------------------

pratica_3110 = data.frame(item3111 = items$`3111`,
                          item3112 = items$`3112`,
                          item3113 = items$`3113`,
                          item3114 = items$`3114`,
                          item3115 = items$`3115`)


pesos3110 = extrator_de_pesos(pratica_3110)

# verificando se os pesos estao corretos:
matrix(c(dados$`3111`,dados$`3112`, dados$`3113`, dados$`3114`,dados$`3115`), 498,
       length(pesos3110)) %*% 
  matrix(pesos3110, length(pesos3110), 1) -> nota_3110

#data.frame(nota_3110, dados$`3110`) %>% View

pesos3110 %>% round(2) %>%
  as.data.frame -> pesos3110

colnames(pesos3110) = "Peso"
color.me <- which(pesos3110$Peso == max(pesos3110$Peso))

kable(pesos3110, caption="Pesos da prática 3110",
             col.names = "Pesos") %>%
  kable_styling() %>%
  row_spec(which(pesos3110$Peso == max(pesos3110$Peso)), 
           bold = T, color = "white", background = "red")
Pesos da prática 3110
Pesos
item3111 0.26
item3112 0.19
item3113 0.20
item3114 0.19
item3115 0.16

8 Indicador 3120

# pratica 3120 ------------------------------------------------------------

pratica_3120 = data.frame(item3121 = items$`3121`,
                          item3122 = items$`3122`,
                          item3123 = items$`3123`,
                          item3124 = items$`3124`)


pesos3120 = extrator_de_pesos(pratica_3120)

# verificando se os pesos estao corretos:
matrix(c(dados$`3121`,dados$`3122`, dados$`3123`, dados$`3124`), 498,
       length(pesos3120)) %*% 
  matrix(pesos3120, length(pesos3120), 1) -> nota_3120

#data.frame(nota_3120, dados$`3120`) %>% View

pesos3120 %>% round(2) %>%
  as.data.frame -> pesos3120

colnames(pesos3120) = "Peso"
color.me <- which(pesos3120$Peso == max(pesos3120$Peso))

kable(pesos3120, caption="Pesos da prática 3120",
             col.names = "Pesos") %>%
  kable_styling() %>%
  row_spec(which(pesos3120$Peso == max(pesos3120$Peso)), 
           bold = T, color = "white", background = "red")
Pesos da prática 3120
Pesos
item3121 0.20
item3122 0.28
item3123 0.29
item3124 0.23

9 Indicador 4110

# pratica 4110 ------------------------------------------------------------

pratica_4110 = data.frame(item4111 = items$`4111`,
                          item4112 = items$`4112`,
                          item4113 = items$`4113`)


pesos4110 = extrator_de_pesos(pratica_4110)

# verificando se os pesos estao corretos:
matrix(c(dados$`4111`,dados$`4112`, dados$`4113`), 498,
       length(pesos4110)) %*% 
  matrix(pesos4110, length(pesos4110), 1) -> nota_4110

#data.frame(nota_4110, dados$`4110`) %>% View

pesos4110 %>% round(2) %>%
  as.data.frame -> pesos4110

colnames(pesos4110) = "Peso"
color.me <- which(pesos4110$Peso == max(pesos4110$Peso))

kable(pesos4110, caption="Pesos da prática 4110",
             col.names = "Pesos") %>%
  kable_styling() %>%
  row_spec(which(pesos4110$Peso == max(pesos4110$Peso)), 
           bold = T, color = "white", background = "red")
Pesos da prática 4110
Pesos
item4111 0.36
item4112 0.35
item4113 0.28

10 Indicador 4120

# pratica 4120 ------------------------------------------------------------

pratica_4120 = data.frame(item4121 = items$`4121`,
                          item4122 = items$`4122`,
                          item4123 = items$`4123`,
                          item4124 = items$`4124`)


pesos4120 = extrator_de_pesos(pratica_4120)

# verificando se os pesos estao corretos:
matrix(c(dados$`4121`,dados$`4122`, dados$`4123`, dados$`4124`), 498,
       length(pesos4120)) %*% 
  matrix(pesos4120, length(pesos4120), 1) -> nota_4120

#data.frame(nota_4120, dados$`4120`) %>% View

pesos4120 %>% round(2) %>%
  as.data.frame -> pesos4120

colnames(pesos4120) = "Peso"
color.me <- which(pesos4120$Peso == max(pesos4120$Peso))

kable(pesos4120, caption="Pesos da prática 4120",
             col.names = "Pesos") %>%
  kable_styling() %>%
  row_spec(which(pesos4120$Peso == max(pesos4120$Peso)), 
           bold = T, color = "white", background = "red")
Pesos da prática 4120
Pesos
item4121 0.26
item4122 0.26
item4123 0.27
item4124 0.21

11 Indicador 4130

# pratica 4130 ------------------------------------------------------------

pratica_4130 = data.frame(item4131 = items$`4131`,
                          item4132 = items$`4132`,
                          item4133 = items$`4133`,
                          item4134 = items$`4134`)


pesos4130 = extrator_de_pesos(pratica_4130)

# verificando se os pesos estao corretos:
matrix(c(dados$`4131`,dados$`4132`, dados$`4133`, dados$`4134`), 498,
       length(pesos4130)) %*% 
  matrix(pesos4130, length(pesos4130), 1) -> nota_4130

#data.frame(nota_4130, dados$`4130`) %>% View

pesos4130 %>% round(2) %>%
  as.data.frame -> pesos4130

colnames(pesos4130) = "Peso"
color.me <- which(pesos4130$Peso == max(pesos4130$Peso))

kable(pesos4130, caption="Pesos da prática 4130",
             col.names = "Pesos") %>%
  kable_styling() %>%
  row_spec(which(pesos4130$Peso == max(pesos4130$Peso)), 
           bold = T, color = "white", background = "red")
Pesos da prática 4130
Pesos
item4131 0.25
item4132 0.26
item4133 0.25
item4134 0.24

12 Indicador 4140

# pratica 4140 ------------------------------------------------------------

pratica_4140 = data.frame(item4141 = items$`4141`,
                          item4142 = items$`4142`,
                          item4143 = items$`4143`,
                          item4144 = items$`4144`)


pesos4140 = extrator_de_pesos(pratica_4140)

# verificando se os pesos estao corretos:
matrix(c(dados$`4141`,dados$`4142`, dados$`4143`, dados$`4144`), 498,
       length(pesos4140)) %*% 
  matrix(pesos4140, length(pesos4140), 1) -> nota_4140

#data.frame(nota_4140, dados$`4140`) %>% View

pesos4140 %>% round(2) %>%
  as.data.frame -> pesos4140

colnames(pesos4140) = "Peso"
color.me <- which(pesos4140$Peso == max(pesos4140$Peso))

kable(pesos4140, caption="Pesos da prática 4140",
             col.names = "Pesos") %>%
  kable_styling() %>%
  row_spec(which(pesos4140$Peso == max(pesos4140$Peso)), 
           bold = T, color = "white", background = "red")
Pesos da prática 4140
Pesos
item4141 0.23
item4142 0.20
item4143 0.29
item4144 0.28

13 Indicador 4150

# pratica 4150 ------------------------------------------------------------

pratica_4150 = data.frame(item4151 = items$`4151`,
                          item4152 = items$`4152`,
                          item4153 = items$`4153`,
                          item4154 = items$`4154`)


pesos4150 = extrator_de_pesos(pratica_4150)

# verificando se os pesos estao corretos:
matrix(c(dados$`4151`,dados$`4152`, dados$`4153`, dados$`4154`), 498,
       length(pesos4150)) %*% 
  matrix(pesos4150, length(pesos4150), 1) -> nota_4150

#data.frame(nota_4150, dados$`4150`) %>% View

pesos4150 %>% round(2) %>%
  as.data.frame -> pesos4150

colnames(pesos4150) = "Peso"
color.me <- which(pesos4150$Peso == max(pesos4150$Peso))

kable(pesos4150, caption="Pesos da prática 4150",
             col.names = "Pesos") %>%
  kable_styling() %>%
  row_spec(which(pesos4150$Peso == max(pesos4150$Peso)), 
           bold = T, color = "white", background = "red")
Pesos da prática 4150
Pesos
item4151 0.19
item4152 0.27
item4153 0.24
item4154 0.31

14 Indicador 4160

Mais de um autovalor > 1.

# pratica 4160 ------------------------------------------------------------

pratica_4160 = data.frame(item4161 = items$`4161`,
                          item4162 = items$`4162`,
                          item4163 = items$`4163`,
                          item4164 = items$`4164`,
                          item4165 = items$`4165`,
                          item4166 = items$`4166`,
                          item4167 = items$`4167`)


pesos4160 = extrator_de_pesos(pratica_4160)

##    comp 1    comp 2    comp 3    comp 4    comp 5    comp 6    comp 7 
## 3.1373546 1.1281630 0.6991010 0.6566301 0.5278898 0.4620343 0.3888272 
## [1] "MAIS DE UM AUTOVALOR > 1"
# verificando se os pesos estao corretos:
# matrix(c(dados$`4161`,dados$`4162`, dados$`4163`, dados$`4164`, dados$`4165`,
#          dados$`4166`, dados$`4167`), 498,
#        length(pesos4160)) %*% 
#   matrix(pesos4160, length(pesos4160), 1) -> nota_4160

#data.frame(nota_4160, dados$`4160`) %>% View

15 Indicador 4170

# pratica 4170 ------------------------------------------------------------

pratica_4170 = data.frame(item4171 = items$`4171`,
                          item4172 = items$`4172`,
                          item4173 = items$`4173`,
                          item4174 = items$`4174`)


pesos4170 = extrator_de_pesos(pratica_4170)

# verificando se os pesos estao corretos:
matrix(c(dados$`4171`,dados$`4172`, dados$`4173`, dados$`4174`), 498,
       length(pesos4170)) %*% 
  matrix(pesos4170, length(pesos4170), 1) -> nota_4170

#data.frame(nota_4170, dados$`4170`) %>% View

pesos4170 %>% round(2) %>%
  as.data.frame -> pesos4170

colnames(pesos4170) = "Peso"
color.me <- which(pesos4170$Peso == max(pesos4170$Peso))

kable(pesos4170, caption="Pesos da prática 4170",
             col.names = "Pesos") %>%
  kable_styling() %>%
  row_spec(which(pesos4170$Peso == max(pesos4170$Peso)), 
           bold = T, color = "white", background = "red")
Pesos da prática 4170
Pesos
item4171 0.27
item4172 0.27
item4173 0.24
item4174 0.22

16 Indicador 4180

# pratica 4180 ------------------------------------------------------------

pratica_4180 = data.frame(item4181 = items$`4181`,
                          item4182 = items$`4182`,
                          item4183 = items$`4183`)


pesos4180 = extrator_de_pesos(pratica_4180)

# verificando se os pesos estao corretos:
matrix(c(dados$`4181`,dados$`4182`, dados$`4183`), 498,
       length(pesos4180)) %*% 
  matrix(pesos4180, length(pesos4180), 1) -> nota_4180

#data.frame(nota_4180, dados$`4180`) %>% View

pesos4180 %>% round(2) %>%
  as.data.frame -> pesos4180

colnames(pesos4180) = "Peso"
color.me <- which(pesos4180$Peso == max(pesos4180$Peso))

kable(pesos4180, caption="Pesos da prática 4180",
             col.names = "Pesos") %>%
  kable_styling() %>%
  row_spec(which(pesos4180$Peso == max(pesos4180$Peso)), 
           bold = T, color = "white", background = "red")
Pesos da prática 4180
Pesos
item4181 0.42
item4182 0.30
item4183 0.28

17 Indicador 213P

# pratica 213P ------------------------------------------------------------

pratica_213P = data.frame(item2133 = items$`2133`,
                          item2134 = items$`2134`)


pesos213P = extrator_de_pesos(pratica_213P)

# verificando se os pesos estao corretos:
matrix(c(dados$`2133`,dados$`2134`), 498,
       length(pesos213P)) %*% 
  matrix(pesos213P, length(pesos213P), 1) -> nota_213P

#data.frame(nota_213P, dados$`213P`) %>% View

pesos213P %>% round(2) %>%
  as.data.frame -> pesos213P

colnames(pesos213P) = "Peso"
color.me <- which(pesos213P$Peso == max(pesos213P$Peso))

kable(pesos213P, caption="Pesos da prática 213P",
             col.names = "Pesos") %>%
  kable_styling() %>%
  row_spec(which(pesos213P$Peso == max(pesos213P$Peso)), 
           bold = T, color = "white", background = "red")
Pesos da prática 213P
Pesos
item2133 0.51
item2134 0.49

18 Indicador AvaliaTI

# Monitor avalia TI -------------------------------------------------------

pratica_MonitorAvaliaTI = data.frame(item2136 = items$`2136`,
                                     item3123E = dados$`3123E`,
                                     item3123F = dados$`3123F`,
                                     item3123G = dados$`3123G`)


pesosMonitorAvaliaTI = extrator_de_pesos(pratica_MonitorAvaliaTI)

# verificando se os pesos estao corretos:
matrix(c(dados$`2136`, dados$`3123E`, dados$`3123F`, dados$`3123G`), 498,
       length(pesosMonitorAvaliaTI)) %*% 
  matrix(pesosMonitorAvaliaTI, length(pesosMonitorAvaliaTI), 1) -> nota_MonitorAvaliaTI

#data.frame(nota_MonitorAvaliaTI, dados$`MonitorAvaliaTI`) %>% View

pesosMonitorAvaliaTI %>% round(2) %>%
  as.data.frame -> pesosMonitorAvaliaTI

colnames(pesosMonitorAvaliaTI) = "Peso"
color.me <- which(pesosMonitorAvaliaTI$Peso == max(pesosMonitorAvaliaTI$Peso))

kable(pesosMonitorAvaliaTI, caption="Pesos da prática MonitorAvaliaTI",
             col.names = "Pesos") %>%
  kable_styling() %>%
  row_spec(which(pesosMonitorAvaliaTI$Peso == max(pesosMonitorAvaliaTI$Peso)), 
           bold = T, color = "white", background = "red")
Pesos da prática MonitorAvaliaTI
Pesos
item2136 0.16
item3123E 0.25
item3123F 0.29
item3123G 0.30

19 Indicador ProcessoSegInfo

# ProcessoSegInfo -------------------------------------------------------

pratica_ProcessoSegInfo = data.frame(item4261 = items$`4261`,
                                     item4262 = items$`4262`,
                                     item4263 = items$`4263`,
                                     item4264 = items$`4264`)


pesosProcessoSegInfo = extrator_de_pesos(pratica_ProcessoSegInfo)

# verificando se os pesos estao corretos:
matrix(c(dados$`4261`, dados$`4262`, dados$`4263`, dados$`4264`), 498,
       length(pesosProcessoSegInfo)) %*% 
  matrix(pesosProcessoSegInfo, length(pesosProcessoSegInfo), 1) -> nota_ProcessoSegInfo

#data.frame(nota_ProcessoSegInfo, dados$`ProcessoSegInfo`) %>% View

pesosProcessoSegInfo %>% round(2) %>%
  as.data.frame -> pesosProcessoSegInfo

colnames(pesosProcessoSegInfo) = "Peso"
color.me <- which(pesosProcessoSegInfo$Peso == max(pesosProcessoSegInfo$Peso))

kable(pesosProcessoSegInfo, caption="Pesos da prática ProcessoSegInfo",
             col.names = "Pesos") %>%
  kable_styling() %>%
  row_spec(which(pesosProcessoSegInfo$Peso == max(pesosProcessoSegInfo$Peso)), 
           bold = T, color = "white", background = "red")
Pesos da prática ProcessoSegInfo
Pesos
item4261 0.26
item4262 0.24
item4263 0.25
item4264 0.25

20 Indicador EstruturaSegInfo

# EstruturaSegInfo ----------------------------------------------------

pratica_EstruturaSegInfo = data.frame(item4251 = items$`4251`,
                                      item4252 = items$`4252`,
                                      item4253 = items$`4253`,
                                      item4254 = items$`4254`)


pesosEstruturaSegInfo = extrator_de_pesos(pratica_EstruturaSegInfo)

# verificando se os pesos estao corretos:
matrix(c(dados$`4251`, dados$`4252`, dados$`4253`, dados$`4254`), 498,
       length(pesosEstruturaSegInfo)) %*% 
  matrix(pesosEstruturaSegInfo, length(pesosEstruturaSegInfo), 1) -> nota_EstruturaSegInfo

#data.frame(nota_EstruturaSegInfo, dados$`EstruturaSegInfo`) %>% View

pesosEstruturaSegInfo %>% round(2) %>%
  as.data.frame -> pesosEstruturaSegInfo

colnames(pesosEstruturaSegInfo) = "Peso"
color.me <- which(pesosEstruturaSegInfo$Peso == max(pesosEstruturaSegInfo$Peso))

kable(pesosEstruturaSegInfo, caption="Pesos da prática EstruturaSegInfo",
             col.names = "Pesos") %>%
  kable_styling() %>%
  row_spec(which(pesosEstruturaSegInfo$Peso == max(pesosEstruturaSegInfo$Peso)), 
           bold = T, color = "white", background = "red")
Pesos da prática EstruturaSegInfo
Pesos
item4251 0.29
item4252 0.26
item4253 0.25
item4254 0.19

21 Indicador iGestRiscosTI

# iGestRiscosTI ----------------------------------------------------

pratica_iGestRiscosTI = data.frame(item4241 = items$`4241`,
                                   item4242 = items$`4242`,
                                   item2111 = items$`2111`,
                                   item2112 = items$`2112`,
                                   item2113 = items$`2113`)


pesosiGestRiscosTI = extrator_de_pesos(pratica_iGestRiscosTI)

# verificando se os pesos estao corretos:
matrix(c(dados$`4241`, dados$`4242`, dados$`2111`, dados$`2112`, dados$`2113`), 498,
       length(pesosiGestRiscosTI)) %*% 
  matrix(pesosiGestRiscosTI, length(pesosiGestRiscosTI), 1) -> nota_iGestRiscosTI

#data.frame(nota_iGestRiscosTI, dados$`iGestRiscosTI`) %>% View

pesosiGestRiscosTI %>% round(2) %>%
  as.data.frame -> pesosiGestRiscosTI

colnames(pesosiGestRiscosTI) = "Peso"
color.me <- which(pesosiGestRiscosTI$Peso == max(pesosiGestRiscosTI$Peso))

kable(pesosiGestRiscosTI, caption="Pesos da prática iGestRiscosTI",
             col.names = "Pesos") %>%
  kable_styling() %>%
  row_spec(which(pesosiGestRiscosTI$Peso == max(pesosiGestRiscosTI$Peso)), 
           bold = T, color = "white", background = "red")
Pesos da prática iGestRiscosTI
Pesos
item4241 0.16
item4242 0.14
item2111 0.17
item2112 0.22
item2113 0.31

22 Indicador iGestNiveisServicoTI

# iGestNiveisServicoTI ----------------------------------------------------

pratica_iGestNiveisServicoTI = data.frame(item4231 = items$`4231`,
                                          item4232 = items$`4232`,
                                          item4233 = items$`4233`)


pesosiGestNiveisServicoTI = extrator_de_pesos(pratica_iGestNiveisServicoTI)

# verificando se os pesos estao corretos:
matrix(c(dados$`4231`, dados$`4232`, dados$`4233`), 498,
       length(pesosiGestNiveisServicoTI)) %*% 
  matrix(pesosiGestNiveisServicoTI, length(pesosiGestNiveisServicoTI), 1) -> nota_iGestNiveisServicoTI

#data.frame(nota_iGestNiveisServicoTI, dados$`iGestNiveisServicoTI`) %>% View

pesosiGestRiscosTI %>% round(2) %>%
  as.data.frame -> pesosiGestRiscosTI

colnames(pesosiGestRiscosTI) = "Peso"
color.me <- which(pesosiGestRiscosTI$Peso == max(pesosiGestRiscosTI$Peso))

kable(pesosiGestRiscosTI, caption="Pesos da prática iGestRiscosTI",
             col.names = "Pesos") %>%
  kable_styling() %>%
  row_spec(which(pesosiGestRiscosTI$Peso == max(pesosiGestRiscosTI$Peso)), 
           bold = T, color = "white", background = "red")
Pesos da prática iGestRiscosTI
Pesos
item4241 0.16
item4242 0.14
item2111 0.17
item2112 0.22
item2113 0.31

23 Indicador iGestServicosTI

# iGestServicosTI ----------------------------------------------------

pratica_iGestServicosTI = data.frame(item4221 = items$`4221`,
                                     item4222 = items$`4222`,
                                     item4223 = items$`4223`,
                                     item4224 = items$`4224`)


pesosiGestServicosTI = extrator_de_pesos(pratica_iGestServicosTI)

# verificando se os pesos estao corretos:
matrix(c(dados$`4221`, dados$`4222`, dados$`4223`, dados$`4224`), 498,
       length(pesosiGestServicosTI)) %*% 
  matrix(pesosiGestServicosTI, length(pesosiGestServicosTI), 1) -> nota_iGestServicosTI

#data.frame(nota_iGestServicosTI, dados$`iGestServicosTI`) %>% View

pesosiGestServicosTI %>% round(2) %>%
  as.data.frame -> pesosiGestServicosTI

colnames(pesosiGestServicosTI) = "Peso"
color.me <- which(pesosiGestServicosTI$Peso == max(pesosiGestServicosTI$Peso))

kable(pesosiGestServicosTI, caption="Pesos da prática iGestServicosTI",
             col.names = "Pesos") %>%
  kable_styling() %>%
  row_spec(which(pesosiGestServicosTI$Peso == max(pesosiGestServicosTI$Peso)), 
           bold = T, color = "white", background = "red")
Pesos da prática iGestServicosTI
Pesos
item4221 0.22
item4222 0.27
item4223 0.25
item4224 0.25

24 Indicador PlanejamentoTI

# PlanejamentoTI ----------------------------------------------------

pratica_PlanejamentoTI = data.frame(item4211 = items$`4211`,
                                    item4212 = items$`4212`)


pesosPlanejamentoTI = extrator_de_pesos(pratica_PlanejamentoTI)

# verificando se os pesos estao corretos:
matrix(c(dados$`4211`, dados$`4212`), 498,
       length(pesosPlanejamentoTI)) %*% 
  matrix(pesosPlanejamentoTI, length(pesosPlanejamentoTI), 1) -> nota_PlanejamentoTI

#data.frame(nota_PlanejamentoTI, dados$`PlanejamentoTI`) %>% View

pesosPlanejamentoTI %>% round(2) %>%
  as.data.frame -> pesosPlanejamentoTI

colnames(pesosPlanejamentoTI) = "Peso"
color.me <- which(pesosPlanejamentoTI$Peso == max(pesosPlanejamentoTI$Peso))

kable(pesosPlanejamentoTI, caption="Pesos da prática PlanejamentoTI",
             col.names = "Pesos") %>%
  kable_styling() %>%
  row_spec(which(pesosPlanejamentoTI$Peso == max(pesosPlanejamentoTI$Peso)), 
           bold = T, color = "white", background = "red")
Pesos da prática PlanejamentoTI
Pesos
item4211 0.51
item4212 0.49

25 Indicador ProcessosTI

# ProcessosTI ----------------------------------------------------

pratica_ProcessosTI = data.frame(itemiGestServicosTI = dados$iGestServicosTI,
                                 itemiGestNiveisServico = dados$iGestNiveisServicoTI,
                                 itemiGestRiscosTI = dados$iGestRiscosTI,
                                 itemiGestSegInfo = dados$iGestSegInfo,
                                 itemProcessoSoftware = dados$ProcessoSoftware,
                                 itemiGestProjetosTI = dados$iGestProjetosTI,
                                 itemiGestContratos = dados$iGestContratosTI)


pesosProcessosTI = extrator_de_pesos(pratica_ProcessosTI)

# verificando se os pesos estao corretos:
matrix(c(dados$iGestServicosTI, 
         dados$iGestNiveisServicoTI, 
         dados$iGestRiscosTI, 
         dados$iGestSegInfo, 
         dados$ProcessoSoftware, 
         dados$iGestProjetosTI, 
         dados$iGestContratosTI), 498,
       length(pesosProcessosTI)) %*% 
  matrix(pesosProcessosTI, length(pesosProcessosTI), 1) -> nota_ProcessosTI


#data.frame(nota_ProcessosTI, dados$`ProcessosTI`) %>% View

pesosProcessosTI %>% round(2) %>%
  as.data.frame -> pesosProcessosTI

colnames(pesosProcessosTI) = "Peso"
color.me <- which(pesosProcessosTI$Peso == max(pesosProcessosTI$Peso))

kable(pesosProcessosTI, caption="Pesos da prática ProcessosTI",
             col.names = "Pesos") %>%
  kable_styling() %>%
  row_spec(which(pesosProcessosTI$Peso == max(pesosProcessosTI$Peso)), 
           bold = T, color = "white", background = "red")
Pesos da prática ProcessosTI
Pesos
itemiGestServicosTI 0.16
itemiGestNiveisServico 0.11
itemiGestRiscosTI 0.22
itemiGestSegInfo 0.17
itemProcessoSoftware 0.11
itemiGestProjetosTI 0.12
itemiGestContratos 0.11

26 Indicador PessoasTI

# PessoasTI ----------------------------------------------------

pratica_PessoasTI = data.frame(item4121D = dados$`4121D`,
                               item4122D = dados$`4122D`,
                               item4123D = dados$`4123D`,
                               item4131D = dados$`4131D`,
                               item4151C = dados$`4151C`,
                               item4172D = dados$`4172D`)


pesosPessoasTI = extrator_de_pesos(pratica_PessoasTI)

# verificando se os pesos estao corretos:
matrix(c(dados$`4121D`,
         dados$`4122D`,
         dados$`4123D`,
         dados$`4131D`,
         dados$`4151C`,
         dados$`4172D`), 498,
       length(pesosPessoasTI)) %*% 
  matrix(pesosPessoasTI, length(pesosPessoasTI), 1) -> nota_PessoasTI

#data.frame(nota_PessoasTI, dados$`PessoasTI`) %>% View

pesosPessoasTI %>% round(2) %>%
  as.data.frame -> pesosPessoasTI

colnames(pesosPessoasTI) = "Peso"
color.me <- which(pesosPessoasTI$Peso == max(pesosPessoasTI$Peso))

kable(pesosPessoasTI, caption="Pesos da prática PessoasTI",
             col.names = "Pesos") %>%
  kable_styling() %>%
  row_spec(which(pesosPessoasTI$Peso == max(pesosPessoasTI$Peso)), 
           bold = T, color = "white", background = "red")
Pesos da prática PessoasTI
Pesos
item4121D 0.17
item4122D 0.20
item4123D 0.16
item4131D 0.19
item4151C 0.16
item4172D 0.11

27 Indicador iGestContratosTI

# iGestContratosTI ----------------------------------------------------

pratica_iGestContratosTI = data.frame(item4332D = dados$`4332D`,
                                      item4341A = dados$`4341A`,
                                      item4342 = dados$`4342`)


pesosiGestContratosTI = extrator_de_pesos(pratica_iGestContratosTI)

# verificando se os pesos estao corretos:
matrix(c(dados$`4332D`,
         dados$`4341A`,
         dados$`4342`), 498,
       length(pesosiGestContratosTI)) %*% 
  matrix(pesosiGestContratosTI, length(pesosiGestContratosTI), 1) -> nota_iGestContratosTI

#data.frame(nota_iGestContratosTI, dados$`iGestContratosTI`) %>% View

pesosiGestContratosTI %>% round(2) %>%
  as.data.frame -> pesosiGestContratosTI

colnames(pesosiGestContratosTI) = "Peso"
color.me <- which(pesosiGestContratosTI$Peso == max(pesosiGestContratosTI$Peso))

kable(pesosiGestContratosTI, caption="Pesos da prática iGestContratosTI",
             col.names = "Pesos") %>%
  kable_styling() %>%
  row_spec(which(pesosiGestContratosTI$Peso == max(pesosiGestContratosTI$Peso)), 
           bold = T, color = "white", background = "red")
Pesos da prática iGestContratosTI
Pesos
item4332D 0.31
item4341A 0.32
item4342 0.37

28 Indicador iGestInfo

# iGestSegInfo ----------------------------------------------------

pratica_iGestSegInfo = data.frame(itemEstruturaSegInfo = dados$EstruturaSegInfo,
                                  itemProcessoSegInfo = dados$ProcessoSegInfo)


pesosiGestSegInfo = extrator_de_pesos(pratica_iGestSegInfo)

# verificando se os pesos estao corretos:
matrix(c(dados$EstruturaSegInfo,
         dados$ProcessoSegInfo), 498,
       length(pesosiGestSegInfo)) %*% 
  matrix(pesosiGestSegInfo, length(pesosiGestSegInfo), 1) -> nota_iGestSegInfo

#data.frame(nota_iGestSegInfo, dados$`iGestSegInfo`) %>% View

pesosiGestSegInfo %>% round(2) %>%
  as.data.frame -> pesosiGestSegInfo

colnames(pesosiGestSegInfo) = "Peso"
color.me <- which(pesosiGestSegInfo$Peso == max(pesosiGestSegInfo$Peso))

kable(pesosiGestSegInfo, caption="Pesos da prática iGestSegInfo",
             col.names = "Pesos") %>%
  kable_styling() %>%
  row_spec(which(pesosiGestSegInfo$Peso == max(pesosiGestSegInfo$Peso)), 
           bold = T, color = "white", background = "red")
Pesos da prática iGestSegInfo
Pesos
itemEstruturaSegInfo 0.47
itemProcessoSegInfo 0.53

29 Indicador iGestTI

# iGestTI ----------------------------------------------------

pratica_iGestTI = data.frame(itemPlanejamentoTI = dados$PlanejamentoTI,
                             itemPessoasTI = dados$PessoasTI,
                             itemProcessosTI = dados$ProcessosTI)


pesosiGestTI = extrator_de_pesos(pratica_iGestTI)

# verificando se os pesos estao corretos:
matrix(c(dados$PlanejamentoTI,
         dados$PessoasTI,
         dados$ProcessosTI), 498,
       length(pesosiGestTI)) %*% 
  matrix(pesosiGestTI, length(pesosiGestTI), 1) -> nota_iGestTI

#data.frame(nota_iGestTI, dados$`iGestTI`) %>% View

pesosiGestTI %>% round(2) %>%
  as.data.frame -> pesosiGestTI

colnames(pesosiGestTI) = "Peso"
color.me <- which(pesosiGestTI$Peso == max(pesosiGestTI$Peso))

kable(pesosiGestTI, caption="Pesos da prática iGestTI",
             col.names = "Pesos") %>%
  kable_styling() %>%
  row_spec(which(pesosiGestTI$Peso == max(pesosiGestTI$Peso)), 
           bold = T, color = "white", background = "red")
Pesos da prática iGestTI
Pesos
itemPlanejamentoTI 0.27
itemPessoasTI 0.25
itemProcessosTI 0.49

30 Indicador GovernancaTI

# GovernancaTI ----------------------------------------------------

pratica_GovernancaTI = data.frame(itemModeloTI = dados$ModeloTI,
                             itemMonitorAvaliaTI = dados$MonitorAvaliaTI,
                             itemResultadoTI = dados$ResultadoTI)


pesosGovernancaTI = extrator_de_pesos(pratica_GovernancaTI)

# verificando se os pesos estao corretos:
matrix(c(dados$ModeloTI,
         dados$MonitorAvaliaTI,
         dados$ResultadoTI), 498,
       length(pesosGovernancaTI)) %*% 
  matrix(pesosGovernancaTI, length(pesosGovernancaTI), 1) -> nota_GovernancaTI

#data.frame(nota_GovernancaTI, dados$`GovernancaTI`) %>% View

pesosGovernancaTI %>% round(2) %>%
  as.data.frame -> pesosGovernancaTI

colnames(pesosGovernancaTI) = "Peso"
color.me <- which(pesosGovernancaTI$Peso == max(pesosGovernancaTI$Peso))

kable(pesosGovernancaTI, caption="Pesos da prática GovernancaTI",
             col.names = "Pesos") %>%
  kable_styling() %>%
  row_spec(which(pesosGovernancaTI$Peso == max(pesosGovernancaTI$Peso)), 
           bold = T, color = "white", background = "red")
Pesos da prática GovernancaTI
Pesos
itemModeloTI 0.32
itemMonitorAvaliaTI 0.33
itemResultadoTI 0.35

31 Indicador iGovTI

# iGovTI ----------------------------------------------------

pratica_iGovTI = data.frame(itemGovernancaTI = dados$GovernancaTI,
                             itemiGestTI = dados$iGestTI)


pesosiGovTI = extrator_de_pesos(pratica_iGovTI)

# verificando se os pesos estao corretos:
matrix(c(dados$GovernancaTI,
         dados$iGestTI), 498,
       length(pesosiGovTI)) %*% 
  matrix(pesosiGovTI, length(pesosiGovTI), 1) -> nota_iGovTI

#data.frame(nota_iGovTI, dados$`iGovTI`) %>% View

pesosiGovTI %>% round(2) %>%
  as.data.frame -> pesosiGovTI

colnames(pesosiGovTI) = "Peso"
color.me <- which(pesosiGovTI$Peso == max(pesosiGovTI$Peso))

kable(pesosiGovTI, caption="Pesos da prática iGovTI",
             col.names = "Pesos") %>%
  kable_styling() %>%
  row_spec(which(pesosiGovTI$Peso == max(pesosiGovTI$Peso)), 
           bold = T, color = "white", background = "red")
Pesos da prática iGovTI
Pesos
itemGovernancaTI 0.46
itemiGestTI 0.54

32 Indicador Acc

# Acc ----------------------------------------------------

pratica_Acc = data.frame(item3110 = dados$`3110`,
                         item3120 = dados$`3120`)


pesosAcc = extrator_de_pesos(pratica_Acc)

# verificando se os pesos estao corretos:
matrix(c(dados$`3110`,
         dados$`3120`), 498,
       length(pesosAcc)) %*% 
  matrix(pesosAcc, length(pesosAcc), 1) -> nota_Acc

#data.frame(nota_Acc, dados$Acct) %>% View

pesosAcc %>% round(2) %>%
  as.data.frame -> pesosAcc

colnames(pesosAcc) = "Peso"
color.me <- which(pesosAcc$Peso == max(pesosAcc$Peso))

kable(pesosAcc, caption="Pesos da prática Acc",
             col.names = "Pesos") %>%
  kable_styling() %>%
  row_spec(which(pesosAcc$Peso == max(pesosAcc$Peso)), 
           bold = T, color = "white", background = "red")
Pesos da prática Acc
Pesos
item3110 0.55
item3120 0.45

33 Indicador iGG

# iGG ----------------------------------------------------

pratica_iGG = data.frame(itemiGovPub = dados$iGovPub,
                         itemiGestPessoas = dados$iGestPessoas,
                         itemiGestTI = dados$iGestTI,
                         itemiGestContratos = dados$iGestContrat)


pesosiGG = extrator_de_pesos(pratica_iGG)

# verificando se os pesos estao corretos:
matrix(c(dados$iGovPub,
         dados$iGestPessoas,
         dados$iGestTI,
         dados$iGestContrat), 498,
       length(pesosiGG)) %*% 
  matrix(pesosiGG, length(pesosiGG), 1) -> nota_iGG

data.frame(nota_iGG, dados$iGG, dados$ID) %>% round(2) %>% View

pesosiGG %>% round(2) %>%
  as.data.frame -> pesosiGG

colnames(pesosiGG) = "Peso"
color.me <- which(pesosiGG$Peso == max(pesosiGG$Peso))

kable(pesosiGG, caption="Pesos da prática iGG",
             col.names = "Pesos") %>%
  kable_styling() %>%
  row_spec(which(pesosiGG$Peso == max(pesosiGG$Peso)), 
           bold = T, color = "white", background = "red")
Pesos da prática iGG
Pesos
itemiGovPub 0.27
itemiGestPessoas 0.25
itemiGestTI 0.23
itemiGestContratos 0.24