Introdução Este relatório apresenta a análise psicométrica da Escala de Literacia em Saúde, seguindo as etapas de preparação dos dados, análise de correlação, análise de confiabilidade, análise fatorial exploratória (AFE) e análise fatorial confirmatória (AFC). 1. Instalação dos Pacotes Necessários Os seguintes pacotes são necessários para executar este script: tidyverse: Para manipulação e exploração de dados. psych: Para análise psicométrica. corrplot: Para visualização da matriz de correlação. igraph: Para manipulação e análise de grafos. qgraph: Para visualização de redes. lavaan: Para modelagem de equações estruturais (incluindo AFC). semPlot: Para visualização do modelo AFC.
knitr::opts_chunk$set(echo = TRUE, message = FALSE, warning = FALSE)
library(tidyverse)
library(psych)
library(corrplot)
library(igraph)
library(qgraph)
library(lavaan)
library(semPlot)
knitr::opts_chunk$set(echo = TRUE, message = FALSE, warning = FALSE)
# Importar os dados do arquivo CSV
dados <- read_csv("G:/My Drive/01_PPGPS/04_Disciplinas/Estatistica no R/banco de dados_aula_Psicometria/literacia_data.csv")
# Converter variáveis numéricas que representam categorias em fatores
dados$sexo <- factor(dados$sexo)
dados$etnia <- factor(dados$etnia)
dados$estcivil <- factor(dados$estcivil)
dados$escolaridade <- factor(dados$escolaridade)
dados$economia <- factor(dados$economia)
dados$renda <- factor(dados$renda)
dados$beneficio <- factor(dados$beneficio)
dados$comunicacao <- factor(dados$comunicacao)
dados$celular <- factor(dados$celular)
dados$internet <- factor(dados$internet)
dados$acesso <- factor(dados$acesso)
knitr::opts_chunk$set(echo = TRUE, message = FALSE, warning = FALSE)
# Visualizar as primeiras linhas do dataframe
head(dados)
## # A tibble: 6 × 26
## sexo etnia idade estcivil cidade escolaridade economia profissao renda
## <fct> <fct> <dbl> <fct> <chr> <fct> <fct> <chr> <fct>
## 1 1 1 30 2 Faxinal Pr 5 3 Enfermeira 4
## 2 1 1 39 2 Faxinal 5 3 Enfermeira 4
## 3 1 1 57 2 Londrina 3 3 Vendedora 3
## 4 1 1 67 2 Londrina 3 3 Professora … 3
## 5 1 1 28 2 Faxinal 2 3 Doméstica 2
## 6 2 3 30 1 Faxinal 4 2 Professor e… 3
## # ℹ 17 more variables: beneficio <fct>, comunicacao <fct>, celular <fct>,
## # internet <fct>, acesso <fct>, L1 <dbl>, L2 <dbl>, L3 <dbl>, L4 <dbl>,
## # L5 <dbl>, L6 <dbl>, L7 <dbl>, L8 <dbl>, L9 <dbl>, L10 <dbl>,
## # literacia <dbl>, scores <dbl>
# Visualizar a estrutura do dataframe
str(dados)
## spc_tbl_ [431 × 26] (S3: spec_tbl_df/tbl_df/tbl/data.frame)
## $ sexo : Factor w/ 2 levels "1","2": 1 1 1 1 1 2 2 1 2 1 ...
## $ etnia : Factor w/ 4 levels "1","2","3","4": 1 1 1 1 1 3 1 1 1 1 ...
## $ idade : num [1:431] 30 39 57 67 28 30 37 32 45 26 ...
## $ estcivil : Factor w/ 4 levels "1","2","3","4": 2 2 2 2 2 1 2 1 2 2 ...
## $ cidade : chr [1:431] "Faxinal Pr" "Faxinal" "Londrina" "Londrina" ...
## $ escolaridade: Factor w/ 5 levels "1","2","3","4",..: 5 5 3 3 2 4 4 5 4 2 ...
## $ economia : Factor w/ 4 levels "1","2","3","4": 3 3 3 3 3 2 4 2 1 2 ...
## $ profissao : chr [1:431] "Enfermeira" "Enfermeira" "Vendedora" "Professora Municipal" ...
## $ renda : Factor w/ 5 levels "1","2","3","4",..: 4 4 3 3 2 3 3 2 2 3 ...
## $ beneficio : Factor w/ 5 levels "1","2","3","4",..: 5 5 5 5 1 5 5 5 5 5 ...
## $ comunicacao : Factor w/ 12 levels "Internet","Jornal Escrito e/ou Revistas",..: 1 1 1 1 1 10 10 1 9 1 ...
## $ celular : Factor w/ 2 levels "1","2": 1 1 1 1 1 1 1 1 2 1 ...
## $ internet : Factor w/ 2 levels "1","2": 1 1 1 1 1 1 1 1 1 1 ...
## $ acesso : Factor w/ 10 levels "Celular","Celular, Notebook",..: 4 1 1 9 1 1 4 2 3 1 ...
## $ L1 : num [1:431] 4 5 3 4 5 5 5 4 3 4 ...
## $ L2 : num [1:431] 4 5 4 5 5 4 4 4 4 5 ...
## $ L3 : num [1:431] 4 4 4 4 4 3 4 3 4 5 ...
## $ L4 : num [1:431] 4 4 4 4 4 3 4 2 3 5 ...
## $ L5 : num [1:431] 4 4 4 4 4 3 4 3 4 5 ...
## $ L6 : num [1:431] 5 5 4 4 4 4 4 3 1 5 ...
## $ L7 : num [1:431] 4 4 4 4 4 4 5 3 1 5 ...
## $ L8 : num [1:431] 4 4 4 4 4 3 4 2 1 5 ...
## $ L9 : num [1:431] 4 4 4 4 4 4 4 2 1 5 ...
## $ L10 : num [1:431] 4 4 4 4 4 2 4 3 1 5 ...
## $ literacia : num [1:431] 4.1 4.3 3.9 4.1 4.2 3.5 4.2 2.9 2.3 4.9 ...
## $ scores : num [1:431] 0.586 0.586 0.335 0.335 0.335 ...
## - attr(*, "spec")=
## .. cols(
## .. sexo = col_double(),
## .. etnia = col_double(),
## .. idade = col_double(),
## .. estcivil = col_double(),
## .. cidade = col_character(),
## .. escolaridade = col_double(),
## .. economia = col_double(),
## .. profissao = col_character(),
## .. renda = col_double(),
## .. beneficio = col_double(),
## .. comunicacao = col_character(),
## .. celular = col_double(),
## .. internet = col_double(),
## .. acesso = col_character(),
## .. L1 = col_double(),
## .. L2 = col_double(),
## .. L3 = col_double(),
## .. L4 = col_double(),
## .. L5 = col_double(),
## .. L6 = col_double(),
## .. L7 = col_double(),
## .. L8 = col_double(),
## .. L9 = col_double(),
## .. L10 = col_double(),
## .. literacia = col_double(),
## .. scores = col_double()
## .. )
## - attr(*, "problems")=<externalptr>
# Resumo estatístico das variáveis numéricas
summary(dados)
## sexo etnia idade estcivil cidade escolaridade
## 1:288 1:335 Min. :15.00 1:142 Length:431 1: 8
## 2:143 2: 16 1st Qu.:27.00 2:253 Class :character 2: 38
## 3: 64 Median :36.00 3: 31 Mode :character 3:173
## 4: 16 Mean :36.75 4: 5 4: 90
## 3rd Qu.:45.00 5:122
## Max. :76.00
##
## economia profissao renda beneficio
## 1: 57 Length:431 1: 65 1: 8
## 2:142 Class :character 2:134 2: 1
## 3: 91 Mode :character 3:148 3: 3
## 4:141 4: 45 4: 1
## 5: 39 9:418
##
##
## comunicacao celular internet
## Internet :300 1:429 1:419
## TV, Internet : 55 2: 2 2: 12
## TV : 18
## TV, Rádio, Internet : 16
## Jornal Escrito e/ou Revistas, TV, Rádio, Internet: 10
## Jornal Escrito e/ou Revistas, TV, Internet : 8
## (Other) : 24
## acesso L1 L2
## Celular :231 Min. :1.000 Min. :1.000
## Celular, Notebook : 79 1st Qu.:3.000 1st Qu.:4.000
## Computador, Celular : 52 Median :4.000 Median :4.000
## Computador, Celular, Notebook : 42 Mean :3.668 Mean :4.204
## Tablet, Celular, Notebook : 7 3rd Qu.:5.000 3rd Qu.:5.000
## Computador, Tablet, Celular, Notebook: 6 Max. :5.000 Max. :5.000
## (Other) : 14
## L3 L4 L5 L6 L7
## Min. :1.000 Min. :1.000 Min. :1.000 Min. :1.00 Min. :1.000
## 1st Qu.:3.000 1st Qu.:3.000 1st Qu.:3.000 1st Qu.:3.00 1st Qu.:3.000
## Median :4.000 Median :4.000 Median :4.000 Median :4.00 Median :4.000
## Mean :3.536 Mean :3.661 Mean :3.712 Mean :3.64 Mean :3.675
## 3rd Qu.:4.000 3rd Qu.:4.000 3rd Qu.:4.000 3rd Qu.:4.00 3rd Qu.:4.000
## Max. :5.000 Max. :5.000 Max. :5.000 Max. :5.00 Max. :5.000
##
## L8 L9 L10 literacia
## Min. :1.000 Min. :1.000 Min. :1.000 Min. :1.600
## 1st Qu.:3.000 1st Qu.:3.000 1st Qu.:2.000 1st Qu.:3.300
## Median :4.000 Median :4.000 Median :3.000 Median :3.700
## Mean :3.631 Mean :3.603 Mean :3.181 Mean :3.651
## 3rd Qu.:4.000 3rd Qu.:4.000 3rd Qu.:4.000 3rd Qu.:4.100
## Max. :5.000 Max. :5.000 Max. :5.000 Max. :5.000
##
## scores
## Min. :-1.838299
## 1st Qu.:-0.454011
## Median : 0.021178
## Mean : 0.001026
## 3rd Qu.: 0.335293
## Max. : 1.632261
##
# Verificar os nomes das colunas
names(dados)
## [1] "sexo" "etnia" "idade" "estcivil" "cidade"
## [6] "escolaridade" "economia" "profissao" "renda" "beneficio"
## [11] "comunicacao" "celular" "internet" "acesso" "L1"
## [16] "L2" "L3" "L4" "L5" "L6"
## [21] "L7" "L8" "L9" "L10" "literacia"
## [26] "scores"
# Verificar os tipos de dados de cada coluna
sapply(dados, class)
## sexo etnia idade estcivil cidade escolaridade
## "factor" "factor" "numeric" "factor" "character" "factor"
## economia profissao renda beneficio comunicacao celular
## "factor" "character" "factor" "factor" "factor" "factor"
## internet acesso L1 L2 L3 L4
## "factor" "factor" "numeric" "numeric" "numeric" "numeric"
## L5 L6 L7 L8 L9 L10
## "numeric" "numeric" "numeric" "numeric" "numeric" "numeric"
## literacia scores
## "numeric" "numeric"
# Verificar a quantidade de dados faltantes por coluna
colSums(is.na(dados))
## sexo etnia idade estcivil cidade escolaridade
## 0 0 0 0 0 0
## economia profissao renda beneficio comunicacao celular
## 0 0 0 0 0 0
## internet acesso L1 L2 L3 L4
## 0 0 0 0 0 0
## L5 L6 L7 L8 L9 L10
## 0 0 0 0 0 0
## literacia scores
## 0 0
# Verificar a proporção de dados faltantes por coluna
colMeans(is.na(dados)) * 100
## sexo etnia idade estcivil cidade escolaridade
## 0 0 0 0 0 0
## economia profissao renda beneficio comunicacao celular
## 0 0 0 0 0 0
## internet acesso L1 L2 L3 L4
## 0 0 0 0 0 0
## L5 L6 L7 L8 L9 L10
## 0 0 0 0 0 0
## literacia scores
## 0 0
knitr::opts_chunk$set(echo = TRUE, message = FALSE, warning = FALSE)
# Selecionar as variáveis de literacia (L1 a L10) e idade
dados_cor <- dados %>%
select(L1:L10, idade)
# Calcular a matriz de correlação
matriz_cor <- cor(dados_cor)
# Visualizar a matriz de correlação
corrplot(matriz_cor, method = "circle") # Exemplo com círculos
corrplot(matriz_cor, method = "number") # Correlação com Coeficientes Numéricos
corrplot(matriz_cor, method = "color") # Correlação com Cores e Intensidades
corrplot(matriz_cor, method = "circle", order = "hclust") # Correlação Ordenada
#ggcorr(dados_cor) # Visualização com GGally - Removido devido a possível não instalação
heatmap(matriz_cor) # Heatmap
#4.2. Análise de Redes
#A estrutura das relações entre as variáveis de literacia é visualizada usando análise de redes.
# Selecionar as variáveis de literacia (L1 a L10)
dados_rede <- dados %>%
select(L1:L10)
# Estimar a matriz de correlação
matriz_rede <- cor(dados_rede)
# Calcular o tamanho da amostra
n_amostra <- nrow(dados_rede)
# Criar a rede
rede <- qgraph(matriz_rede,
graph = "glasso",
layout = "spring",
vsize = 8,
sampleSize = n_amostra)
# Criar a rede com valores de correlação nas arestas
rede <- qgraph(matriz_rede,
graph = "glasso",
layout = "spring",
vsize = 8,
sampleSize = n_amostra,
edge.labels = TRUE,
edge.label.cex = 0.8)
5. Análise de Confiabilidade A consistência interna da escala é avaliada
usando o Alfa de Cronbach e o Ômega de McDonald.
knitr::opts_chunk$set(echo = TRUE, message = FALSE, warning = FALSE)
# Selecionar os itens da escala
itens_escala <- dados %>%
select(L1:L10)
# Calcular o Alfa de Cronbach
alfa <- psych::alpha(itens_escala, n.iter = 1000, check.keys = TRUE)
# Exibir os resultados do Alfa de Cronbach
print(alfa)
##
## Reliability analysis
## Call: psych::alpha(x = itens_escala, check.keys = TRUE, n.iter = 1000)
##
## raw_alpha std.alpha G6(smc) average_r S/N ase mean sd median_r
## 0.88 0.89 0.9 0.44 7.8 0.0087 3.7 0.64 0.46
##
## 95% confidence boundaries
## lower alpha upper
## Feldt 0.86 0.88 0.9
## Duhachek 0.86 0.88 0.9
## bootstrapped 0.86 0.88 0.9
##
## Reliability if an item is dropped:
## raw_alpha std.alpha G6(smc) average_r S/N alpha se var.r med.r
## L1 0.89 0.89 0.90 0.47 8.1 0.0079 0.027 0.48
## L2 0.88 0.90 0.91 0.49 8.5 0.0085 0.021 0.48
## L3 0.87 0.88 0.90 0.44 7.1 0.0096 0.032 0.46
## L4 0.86 0.87 0.88 0.42 6.6 0.0099 0.026 0.43
## L5 0.86 0.87 0.88 0.42 6.6 0.0100 0.025 0.43
## L6 0.86 0.87 0.88 0.42 6.5 0.0103 0.026 0.44
## L7 0.86 0.86 0.88 0.42 6.4 0.0104 0.026 0.44
## L8 0.86 0.87 0.89 0.42 6.6 0.0101 0.028 0.43
## L9 0.87 0.88 0.90 0.45 7.3 0.0094 0.028 0.46
## L10 0.86 0.87 0.89 0.43 6.7 0.0102 0.031 0.44
##
## Item statistics
## n raw.r std.r r.cor r.drop mean sd
## L1 431 0.57 0.53 0.45 0.41 3.7 1.22
## L2 431 0.46 0.45 0.36 0.34 4.2 0.85
## L3 431 0.68 0.69 0.64 0.60 3.5 0.81
## L4 431 0.75 0.77 0.77 0.69 3.7 0.80
## L5 431 0.76 0.78 0.77 0.69 3.7 0.80
## L6 431 0.80 0.80 0.80 0.74 3.6 0.90
## L7 431 0.81 0.82 0.82 0.76 3.7 0.87
## L8 431 0.77 0.78 0.75 0.71 3.6 0.87
## L9 431 0.66 0.66 0.61 0.56 3.6 0.94
## L10 431 0.77 0.75 0.72 0.69 3.2 1.07
##
## Non missing response frequency for each item
## 1 2 3 4 5 miss
## L1 0.07 0.08 0.28 0.24 0.33 0
## L2 0.02 0.02 0.08 0.48 0.40 0
## L3 0.01 0.09 0.32 0.50 0.07 0
## L4 0.00 0.10 0.22 0.58 0.10 0
## L5 0.01 0.08 0.20 0.61 0.10 0
## L6 0.02 0.11 0.18 0.57 0.11 0
## L7 0.02 0.10 0.18 0.59 0.11 0
## L8 0.02 0.09 0.23 0.55 0.10 0
## L9 0.03 0.10 0.24 0.50 0.13 0
## L10 0.06 0.23 0.24 0.39 0.07 0
# Calcular o Ômega de McDonald
omega <- omega(itens_escala)
# Exibir os resultados do Ômega de McDonald
print(omega)
## Omega
## Call: omegah(m = m, nfactors = nfactors, fm = fm, key = key, flip = flip,
## digits = digits, title = title, sl = sl, labels = labels,
## plot = plot, n.obs = n.obs, rotate = rotate, Phi = Phi, option = option,
## covar = covar)
## Alpha: 0.89
## G.6: 0.9
## Omega Hierarchical: 0.83
## Omega H asymptotic: 0.9
## Omega Total 0.92
##
## Schmid Leiman Factor loadings greater than 0.2
## g F1* F2* F3* h2 h2 u2 p2 com
## L1 0.38 0.89 0.93 0.93 0.07 0.15 1.35
## L2 0.30 0.32 0.19 0.81 0.46 2.03
## L3 0.55 0.30 0.42 0.42 0.58 0.72 1.77
## L4 0.65 0.69 0.90 0.90 0.10 0.47 1.99
## L5 0.68 0.53 0.74 0.74 0.26 0.62 1.89
## L6 0.82 0.68 0.68 0.32 1.00 1.00
## L7 0.86 0.74 0.74 0.26 1.00 1.00
## L8 0.79 0.62 0.62 0.38 1.00 1.01
## L9 0.63 0.42 0.42 0.58 0.96 1.10
## L10 0.74 0.55 0.55 0.45 0.98 1.04
##
## With Sums of squares of:
## g F1* F2* F3* h2
## 4.41 0.00 0.86 0.95 4.32
##
## general/max 1.02 max/min = Inf
## mean percent general = 0.74 with sd = 0.3 and cv of 0.41
## Explained Common Variance of the general factor = 0.71
##
## The degrees of freedom are 18 and the fit is 0.4
## The number of observations was 431 with Chi Square = 169.31 with prob < 1.2e-26
## The root mean square of the residuals is 0.04
## The df corrected root mean square of the residuals is 0.06
## RMSEA index = 0.14 and the 90 % confidence intervals are 0.121 0.159
## BIC = 60.12
##
## Compare this with the adequacy of just a general factor and no group factors
## The degrees of freedom for just the general factor are 35 and the fit is 1.21
## The number of observations was 431 with Chi Square = 513.4 with prob < 2.3e-86
## The root mean square of the residuals is 0.1
## The df corrected root mean square of the residuals is 0.11
##
## RMSEA index = 0.178 and the 90 % confidence intervals are 0.165 0.192
## BIC = 301.09
##
## Measures of factor score adequacy
## g F1* F2* F3*
## Correlation of scores with factors 0.95 0 0.89 0.96
## Multiple R square of scores with factors 0.91 0 0.80 0.92
## Minimum correlation of factor score estimates 0.81 -1 0.59 0.84
##
## Total, General and Subset omega for each subset
## g F1* F2* F3*
## Omega total for total scores and subscales 0.92 NA 0.89 0.78
## Omega general for total scores and subscales 0.83 NA 0.75 0.67
## Omega group for total scores and subscales 0.07 NA 0.14 0.11
knitr::opts_chunk$set(echo = TRUE, message = FALSE, warning = FALSE)
#O teste KMO é realizado para verificar a adequação da amostra para a análise fatorial.
# Selecionar os itens da escala
itens_escala <- dados %>%
select(L1:L10)
# Calcula o KMO
kmo_resultado <- KMO(itens_escala)
# Imprime o KMO geral
cat("KMO geral:", kmo_resultado$MSA, "\n")
## KMO geral: 0.8706569
# Interpreta o resultado do KMO
if (kmo_resultado$MSA >= 0.8) {
cat("A adequação da amostra é adequada.\n")
} else if (kmo_resultado$MSA >= 0.7) {
cat("A adequação da amostra é razoável.\n")
} else if (kmo_resultado$MSA >= 0.6) {
cat("A adequação da amostra é medíocre.\n")
} else if (kmo_resultado$MSA >= 0.5) {
cat("A adequação da amostra é inadequada.\n")
} else {
cat("A adequação da amostra é inaceitável.\n")
}
## A adequação da amostra é adequada.
6.2. Determinação do Número de Fatores A análise paralela é utilizada para auxiliar na determinação do número apropriado de fatores a serem extraídos.
knitr::opts_chunk$set(echo = TRUE, message = FALSE, warning = FALSE)
# Selecionar os itens da escala
itens_escala <- dados %>%
select(L1:L10)
fa.parallel(itens_escala, fa = "fa", n.iter = 100)
## Parallel analysis suggests that the number of factors = 4 and the number of components = NA
6.3. Realização da AFE A AFE é realizada com o número de fatores determinado na etapa anterior.
knitr::opts_chunk$set(echo = TRUE, message = FALSE, warning = FALSE)
# Selecionar os itens da escala
itens_escala <- dados %>%
select(L1:L10)
n_fatores <- 4
af_resultado <- fa(itens_escala, nfactors = n_fatores, rotate = "varimax", fm = "ml")
print(af_resultado)
## Factor Analysis using method = ml
## Call: fa(r = itens_escala, nfactors = n_fatores, rotate = "varimax",
## fm = "ml")
## Standardized loadings (pattern matrix) based upon correlation matrix
## ML3 ML1 ML4 ML2 h2 u2 com
## L1 0.07 0.10 0.11 0.89 0.81 0.19 1.1
## L2 0.13 0.16 0.06 0.41 0.21 0.79 1.6
## L3 0.46 0.17 0.31 0.33 0.44 0.56 3.0
## L4 0.82 0.23 0.30 0.14 0.84 0.16 1.5
## L5 0.78 0.34 0.23 0.14 0.80 0.20 1.6
## L6 0.34 0.76 0.26 0.22 0.81 0.19 1.9
## L7 0.28 0.77 0.33 0.24 0.84 0.16 1.9
## L8 0.30 0.40 0.61 0.17 0.65 0.35 2.4
## L9 0.26 0.17 0.76 0.04 0.67 0.33 1.4
## L10 0.22 0.39 0.51 0.31 0.56 0.44 3.1
##
## ML3 ML1 ML4 ML2
## SS loadings 1.92 1.75 1.64 1.33
## Proportion Var 0.19 0.18 0.16 0.13
## Cumulative Var 0.19 0.37 0.53 0.66
## Proportion Explained 0.29 0.26 0.25 0.20
## Cumulative Proportion 0.29 0.55 0.80 1.00
##
## Mean item complexity = 1.9
## Test of the hypothesis that 4 factors are sufficient.
##
## df null model = 45 with the objective function = 5.51 with Chi Square = 2344.82
## df of the model are 11 and the objective function was 0.04
##
## The root mean square of the residuals (RMSR) is 0.01
## The df corrected root mean square of the residuals is 0.02
##
## The harmonic n.obs is 431 with the empirical chi square 5.23 with prob < 0.92
## The total n.obs was 431 with Likelihood Chi Square = 15.62 with prob < 0.16
##
## Tucker Lewis Index of factoring reliability = 0.992
## RMSEA index = 0.031 and the 90 % confidence intervals are 0 0.064
## BIC = -51.11
## Fit based upon off diagonal values = 1
## Measures of factor score adequacy
## ML3 ML1 ML4 ML2
## Correlation of (regression) scores with factors 0.90 0.89 0.82 0.90
## Multiple R square of scores with factors 0.82 0.79 0.68 0.81
## Minimum correlation of possible factor scores 0.64 0.58 0.36 0.62
6.4. AFE Unidimensional Uma AFE unidimensional também é realizada para comparar com a solução multidimensional.
knitr::opts_chunk$set(echo = TRUE, message = FALSE, warning = FALSE)
# Selecionar os itens da escala
itens_escala <- dados %>%
select(L1:L10)
n_fatores <- 1
af_resultado_1_fator <- fa(itens_escala, nfactors = n_fatores, rotate = "varimax", fm = "ml")
print(af_resultado_1_fator)
## Factor Analysis using method = ml
## Call: fa(r = itens_escala, nfactors = n_fatores, rotate = "varimax",
## fm = "ml")
## Standardized loadings (pattern matrix) based upon correlation matrix
## ML1 h2 u2 com
## L1 0.40 0.16 0.84 1
## L2 0.32 0.11 0.89 1
## L3 0.61 0.37 0.63 1
## L4 0.75 0.56 0.44 1
## L5 0.77 0.59 0.41 1
## L6 0.83 0.69 0.31 1
## L7 0.84 0.71 0.29 1
## L8 0.75 0.57 0.43 1
## L9 0.61 0.37 0.63 1
## L10 0.71 0.50 0.50 1
##
## ML1
## SS loadings 4.63
## Proportion Var 0.46
##
## Mean item complexity = 1
## Test of the hypothesis that 1 factor is sufficient.
##
## df null model = 45 with the objective function = 5.51 with Chi Square = 2344.82
## df of the model are 35 and the objective function was 1.13
##
## The root mean square of the residuals (RMSR) is 0.08
## The df corrected root mean square of the residuals is 0.09
##
## The harmonic n.obs is 431 with the empirical chi square 253.09 with prob < 7.2e-35
## The total n.obs was 431 with Likelihood Chi Square = 481.23 with prob < 7.8e-80
##
## Tucker Lewis Index of factoring reliability = 0.75
## RMSEA index = 0.172 and the 90 % confidence intervals are 0.159 0.186
## BIC = 268.92
## Fit based upon off diagonal values = 0.97
## Measures of factor score adequacy
## ML1
## Correlation of (regression) scores with factors 0.96
## Multiple R square of scores with factors 0.92
## Minimum correlation of possible factor scores 0.84
fa.diagram(af_resultado_1_fator)
7. Análise Fatorial Confirmatória (AFC) A AFC é realizada para testar um
modelo fatorial específico. 7.1. Especificação do Modelo O modelo
fatorial confirmatório é definido com base na teoria.
knitr::opts_chunk$set(echo = TRUE, message = FALSE, warning = FALSE)
# Selecionar os itens da escala
itens_escala <- dados %>%
select(L1:L10)
modelo_afc <- '
Literacia =~ L1 + L2 + L3 + L4 + L5 + L6 + L7 + L8 + L9 + L10
'
7.2. Estimação do Modelo O modelo é ajustado aos dados usando a função cfa().
knitr::opts_chunk$set(echo = TRUE, message = FALSE, warning = FALSE)
# Selecionar os itens da escala
itens_escala <- dados %>%
select(L1:L10)
ajuste_afc <- cfa(modelo_afc, data = itens_escala, estimator = "ML")
7.3. Avaliação do Ajuste do Modelo O ajuste do modelo é avaliado usando várias medidas de ajuste.
knitr::opts_chunk$set(echo = TRUE, message = FALSE, warning = FALSE)
# Selecionar os itens da escala
itens_escala <- dados %>%
select(L1:L10)
summary(ajuste_afc, fit.measures = TRUE, standardized = TRUE)
## lavaan 0.6-19 ended normally after 34 iterations
##
## Estimator ML
## Optimization method NLMINB
## Number of model parameters 20
##
## Number of observations 431
##
## Model Test User Model:
##
## Test statistic 487.836
## Degrees of freedom 35
## P-value (Chi-square) 0.000
##
## Model Test Baseline Model:
##
## Test statistic 2373.267
## Degrees of freedom 45
## P-value 0.000
##
## User Model versus Baseline Model:
##
## Comparative Fit Index (CFI) 0.806
## Tucker-Lewis Index (TLI) 0.750
##
## Loglikelihood and Information Criteria:
##
## Loglikelihood user model (H0) -4737.734
## Loglikelihood unrestricted model (H1) -4493.816
##
## Akaike (AIC) 9515.468
## Bayesian (BIC) 9596.791
## Sample-size adjusted Bayesian (SABIC) 9533.322
##
## Root Mean Square Error of Approximation:
##
## RMSEA 0.173
## 90 Percent confidence interval - lower 0.160
## 90 Percent confidence interval - upper 0.187
## P-value H_0: RMSEA <= 0.050 0.000
## P-value H_0: RMSEA >= 0.080 1.000
##
## Standardized Root Mean Square Residual:
##
## SRMR 0.073
##
## Parameter Estimates:
##
## Standard errors Standard
## Information Expected
## Information saturated (h1) model Structured
##
## Latent Variables:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## Literacia =~
## L1 1.000 0.482 0.397
## L2 0.570 0.107 5.335 0.000 0.275 0.324
## L3 1.018 0.136 7.478 0.000 0.491 0.610
## L4 1.245 0.156 8.000 0.000 0.600 0.747
## L5 1.276 0.158 8.066 0.000 0.616 0.769
## L6 1.555 0.189 8.235 0.000 0.750 0.833
## L7 1.524 0.185 8.255 0.000 0.735 0.842
## L8 1.357 0.169 8.024 0.000 0.655 0.755
## L9 1.190 0.159 7.487 0.000 0.574 0.612
## L10 1.560 0.198 7.865 0.000 0.752 0.706
##
## Variances:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## .L1 1.247 0.086 14.435 0.000 1.247 0.843
## .L2 0.644 0.044 14.526 0.000 0.644 0.895
## .L3 0.407 0.029 13.901 0.000 0.407 0.628
## .L4 0.286 0.022 13.012 0.000 0.286 0.442
## .L5 0.262 0.021 12.765 0.000 0.262 0.409
## .L6 0.248 0.021 11.657 0.000 0.248 0.306
## .L7 0.222 0.019 11.440 0.000 0.222 0.291
## .L8 0.324 0.025 12.931 0.000 0.324 0.431
## .L9 0.550 0.040 13.893 0.000 0.550 0.626
## .L10 0.570 0.043 13.371 0.000 0.570 0.502
## Literacia 0.233 0.056 4.120 0.000 1.000 1.000
7.4. Visualização do Modelo O modelo fatorial é visualizado usando a função semPaths().
knitr::opts_chunk$set(echo = TRUE, message = FALSE, warning = FALSE)
# Selecionar os itens da escala
itens_escala <- dados %>%
select(L1:L10)
semPaths(ajuste_afc,
what = "std",
layout = "tree2",
edge.label.cex = 0.8,
sizeMan = 8,
sizeLat = 10,
esize = 1,
residuals = TRUE,
intercepts = FALSE)