Lista 1 - Psicometria em R
Programa de Pós Graduação em Bioestatística - UEM
1.1 Obtenção da matriz de covariância a partir de erros-padrões e correlações
Para calcular o desvio-padrão de cada composição, multiplicamos o erro-padrão correspondente por \(\sqrt{n}\) (onde \(n = 212\)), operação que é justificada pelas propriedades da distribuição da média amostral.
Em uma amostra aleatória de tamanho \(n\), com observações independentes e variância populacional \(\sigma^2\), a variância da média amostral é dada por \(\operatorname{Var}(\bar{X}) = \frac{\sigma^2}{n}\).
Extraindo a raiz quadrada de ambos os lados da equação, obtemos a relação direta entre o erro-padrão da média e o desvio-padrão da amostra:
\[EP(\bar{X}) = \frac{DP(X)}{\sqrt{n}}.\]
Isolando o desvio-padrão,
\[DP(X) = EP(\bar{X}) \cdot \sqrt{n}.\]
De tal forma, adicionei a tabela fornecida no exercício ao R, e multipliquei cada um dos erros-padrão de \(\bar{X}\) por \(\sqrt{212}\), obtendo os desvios-padrão de \(X\):
# Criando a tabela com erros-padrão da média
composicao <- c(
"MC (kg)",
"IMC (kg/m²)",
"CB (cm)",
"CC (cm)",
"CP (cm)",
"DCP (mm)",
"DCT (mm)",
"DCS (mm)"
)
ep_media <- c(1.05, 0.3, 0.29, 0.81, 0.26, 0.51, 0.44, 0.47)
tab_ep <- data.frame(composicao, ep_media)
# Calculando os desvios-padrão
tab_ep$dp_var <- round(tab_ep$ep_media * sqrt(212), 2)| Composição | Erro-padrão \(\bar{X}\) | Desvio-padrão \(X\) |
|---|---|---|
| MC (kg) | 1.05 | 15.29 |
| IMC (kg/m²) | 0.30 | 4.37 |
| CB (cm) | 0.29 | 4.22 |
| CC (cm) | 0.81 | 11.79 |
| CP (cm) | 0.26 | 3.79 |
| DCP (mm) | 0.51 | 7.43 |
| DCT (mm) | 0.44 | 6.41 |
| DCS (mm) | 0.47 | 6.84 |
Para transformar a matriz de correlações em matriz de covariâncias, basta utilizar o resultado obtido acima, uma vez que, para duas variáveis \(X_i\) e \(X_j\), a correlação é definida como:
\[r_{ij}=\frac{\operatorname{Cov}(X_i,X_j)} {DP_iDP_j} \]
Reorganizando a equação,
\[\operatorname{Cov}(X_i,X_j) = r_{ij}DP_iDP_j.\]
Ou seja, a covariância entre \(X_i\) e \(X_j\) pode ser escrita como a correlação entre \(X_i\) e \(X_j\) multiplicada pelos desvios padrão de \(X_i\) e \(X_j\).
Abaixo, inseri a matriz de correlações no R e calculei a matriz de covariâncias.
# Criando a matriz de correlações
tab_corr <- matrix(
c(
1.000, 0.890, 0.932, 0.887, 0.914, 0.591, 0.573, 0.688,
0.890, 1.000, 0.933, 0.939, 0.882, 0.759, 0.746, 0.836,
0.932, 0.933, 1.000, 0.890, 0.905, 0.693, 0.691, 0.758,
0.887, 0.939, 0.890, 1.000, 0.819, 0.765, 0.779, 0.839,
0.914, 0.882, 0.905, 0.819, 1.000, 0.643, 0.601, 0.653,
0.591, 0.759, 0.693, 0.765, 0.643, 1.000, 0.912, 0.818,
0.573, 0.746, 0.691, 0.779, 0.601, 0.912, 1.000, 0.856,
0.688, 0.836, 0.758, 0.839, 0.653, 0.818, 0.856, 1.000
),
nrow = 8,
ncol = 8,
byrow = TRUE
)
dimnames(tab_corr) <- list(composicao, composicao)
# Transformando em matriz de covariâncias ------
# Matriz diagonal com os desvios-padrão obtidos no item anterior
D <- diag(tab_ep$dp_var)
dimnames(D) <- list(composicao, composicao)
# Transformando a matriz de correlações em matriz de covariâncias
tab_cov <- D %*% tab_corr %*% D
# Arredondando os resultados
tab_cov <- round(tab_cov, 2)| MC (kg) | IMC (kg/m²) | CB (cm) | CC (cm) | CP (cm) | DCP (mm) | DCT (mm) | DCS (mm) | |
|---|---|---|---|---|---|---|---|---|
| MC (kg) | 233.78 | 59.47 | 60.14 | 159.90 | 52.97 | 67.14 | 56.16 | 71.95 |
| IMC (kg/m²) | 59.47 | 19.10 | 17.21 | 48.38 | 14.61 | 24.64 | 20.90 | 24.99 |
| CB (cm) | 60.14 | 17.21 | 17.81 | 44.28 | 14.47 | 21.73 | 18.69 | 21.88 |
| CC (cm) | 159.90 | 48.38 | 44.28 | 139.00 | 36.60 | 67.01 | 58.87 | 67.66 |
| CP (cm) | 52.97 | 14.61 | 14.47 | 36.60 | 14.36 | 18.11 | 14.60 | 16.93 |
| DCP (mm) | 67.14 | 24.64 | 21.73 | 67.01 | 18.11 | 55.20 | 43.44 | 41.57 |
| DCT (mm) | 56.16 | 20.90 | 18.69 | 58.87 | 14.60 | 43.44 | 41.09 | 37.53 |
| DCS (mm) | 71.95 | 24.99 | 21.88 | 67.66 | 16.93 | 41.57 | 37.53 | 46.79 |
1.2 Especificação de modelos de trajetória em lavaan
Na figura fornecida pelo exercício, \(A\), \(B\), \(C\) e \(D\) são variáveis manifestas (observadas). \(E_C\) e \(E_D\) são variáveis latentes, representando os termos de erro das variáveis \(C\) e \(D\) (variância que não é explicada pelas variáveis preditoras do modelo).
\(A\) e \(B\) são variáveis exógenas (atuam apenas como preditoras), uma vez que nenhuma seta aponta pra elas. Em contrapartida, \(C\) e \(D\) são variáveis endógenas, uma vez que recebem setas de outras variáveis. \(C\) atua como mediadora (dependente de \(A\) e \(B\), mas preditora de \(D\)). Por fim, \(D\) recebe efeitos diretos de \(A\) e \(C\), e indiretos de \(B\).
As setas retas representam efeitos diretos de regressão, com as letras \(w\), \(x\), \(y\) e \(z\) sendo os coeficientes (pesos) da regressão. Fixar os pesos dos termos de erro em 1 garante que, para cada variação de 1 unidade no erro, a variável manifesta varie em exatamente 1 unidade da sua própria escala. A seta bidimensional entre \(A\) e \(B\) mostra que existe covariância entre as variáveis. E, por fim, as setas em \(E_C\) e \(E_D\) representam as variâncias dos termos de erro, escritas como \(\sigma^2_{E_C}\) e \(\sigma^2_{E_D}\).
Utilizando a linguagem do pacote lavaan, podemos
escrever:
\[C \space \sim \space y*B \space + \space w*A\]
\[D \space \sim \space z*C \space + \space x*A\]
\[A \sim\sim B\]
Com \(\sim\) indicando regressões diretas, e \(\sim\sim\) covariância.
1.3 Modelagem de mediação em lavaan
1.3.1 Inserção da matriz de covariâncias
Inserindo a matriz de covariâncias no R:
1.3.2 Especificação do modelo de mediação
Especificação do modelo, avaliando efeitos diretos e indiretos das expectativas dos professores sobre o desempenho dos alunos:
1.3.3 Estimação e interpretação dos efeitos indiretos
Para estimar e interpretar os efeitos indiretos, podemos ajustar o
modelo especificado no item anterior utilizando a função
sem(), do pacote lavaan. Basta inserir a
matriz de covariâncias e o valor de \(n\), ambos fornecidos no enunciado do
exercício.
# Ajuste do modelo
ajuste <- sem(modelo_mediacao,
sample.cov = mat_cov,
sample.nobs = 40)
# Visualização dos resultados
lavaan::summary(ajuste, fit.measures = TRUE, standardized = TRUE, ci = TRUE)## lavaan 0.7-2 ended normally after 2 iterations
##
## Estimator ML
## Optimization method NLMINB
## Number of model parameters 8
##
## Number of observations 40
##
## Model Test User Model:
##
## Test statistic 3.687
## Degrees of freedom 1
## P-value (Chi-square) 0.055
##
## Model Test Baseline Model:
##
## Test statistic 58.874
## Degrees of freedom 6
## P-value 0.000
##
## User Model versus Baseline Model:
##
## Comparative Fit Index (CFI) 0.949
## Tucker-Lewis Index (TLI) 0.695
##
## Loglikelihood and Information Criteria:
##
## Loglikelihood user model (H0) -424.587
## Loglikelihood unrestricted model (H1) -422.743
##
## Akaike (AIC) 865.174
## Bayesian (BIC) 878.685
## Sample-size adjusted Bayesian (SABIC) 853.651
##
## Root Mean Square Error of Approximation:
##
## RMSEA 0.259
## 90 Percent confidence interval - lower 0.000
## 90 Percent confidence interval - upper 0.564
## P-value H_0: RMSEA <= 0.050 0.067
## P-value H_0: RMSEA >= 0.080 0.914
##
## Standardized Root Mean Square Residual:
##
## SRMR 0.089
##
## Goodness of Fit Index:
##
## Goodness of Fit Index (GFI) 1.000
## 90 Percent confidence interval - lower 1.000
## 90 Percent confidence interval - upper 1.000
##
## Parameter Estimates:
##
## Standard errors Standard
## Information Expected
## Information saturated (h1) model Structured
##
## Regressions:
## Estimate Std.Err z-value P(>|z|) ci.lower ci.upper
## clima ~
## expectatv (a1) 0.840 0.154 5.456 0.000 0.538 1.142
## conteudo ~
## expectatv (a2) 0.222 0.142 1.559 0.119 -0.057 0.501
## desempenho ~
## clima (b1) 0.569 0.142 4.006 0.000 0.291 0.847
## conteudo (b2) 0.530 0.154 3.446 0.001 0.228 0.831
## expectatv (c) 0.112 0.186 0.603 0.546 -0.252 0.476
## Std.lv Std.all
##
## 0.840 0.653
##
## 0.222 0.239
##
## 0.569 0.545
## 0.530 0.366
## 0.112 0.084
##
## Variances:
## Estimate Std.Err z-value P(>|z|) ci.lower ci.upper
## .clima 78.448 17.542 4.472 0.000 44.067 112.829
## .conteudo 67.023 14.987 4.472 0.000 37.649 96.396
## .desempenho 63.323 14.159 4.472 0.000 35.571 91.075
## Std.lv Std.all
## 78.448 0.573
## 67.023 0.943
## 63.323 0.425
##
## Defined Parameters:
## Estimate Std.Err z-value P(>|z|) ci.lower ci.upper
## ind_clima 0.478 0.148 3.229 0.001 0.188 0.768
## ind_conteudo 0.118 0.083 1.421 0.155 -0.045 0.280
## Std.lv Std.all
## 0.478 0.356
## 0.118 0.088
Respondendo à pergunta do exercício, os efeitos indiretos estimados
pelo modelo são encontrados na seção Defined Parameters, ao
final da saída da função summary().
Efeito indireto do clima social (ind_clima): A estimativa do efeito não padronizado é \(0,478\) (IC 95%: [0,188; 0,768]), com um efeito padronizado (Std.all) de \(0,356\). O efeito é estatisticamente significativo (\(p = 0,001\)).
Efeito indireto do conteúdo coberto (ind_conteudo): A estimativa do efeito não padronizado é \(0,118\) (IC 95%: [-0,045; 0,281]), com um efeito padronizado (Std.all) de \(0,088\). O efeito não apresenta significância estatística ao nível de 5% (\(p = 0,155\)), o que também é evidenciado pelo intervalo de confiança, que contém zero.
1.4 Modelagem com variáveis latentes em lavaan
1.4.1 Matriz de covariância
Inserindo a matriz de covariâncias no R:
conceito <- c("depressao_1", "depressao_2", "depressao_3", "atv_social",
"quedas", "cronicas", "atv_fisica", "mobilidade")
vet_cov <- c(0.77, 0.38, 0.39, -0.25, 0.31, 0.24, -3.16, -0.92,
0.38, 0.65, 0.39, -0.32, 0.29, 0.25, -3.56, -0.88,
0.39, 0.39, 0.62, -0.27, 0.26, 0.19, -2.63, -0.72,
-0.25, -0.32, -0.27, 6.09, -0.36, -0.18, 6.09, 0.88,
0.31, 0.29, 0.26, -0.36, 7.67, 0.51, -3.12, -1.49,
0.24, 0.25, 0.19, -0.18, 0.51, 1.69, -4.58, -1.41,
-3.16, -3.56, -2.63, 6.09, -3.12, -4.58, 204.79, 16.53,
-0.92, -0.88, -0.72, 0.88, -1.49, -1.41, 16.53, 7.24)
mat_cov <- matrix(vet_cov, nrow = 8)
dimnames(mat_cov) <- list(conceito, conceito)1.4.2 Ajuste e interpretação do modelo de equações estruturais
Especificação do modelo, utilizando a matriz de covariâncias e o valor de \(n\) fornecidos no exercício, onde \(= \sim\) é utilizado para mensurar a má saúde física e psicológica através das variáveis latentes, e \(\sim\) para estimar o efeito direto das mesmas sobre a mobilidade dos indivíduos.
modelo <- '
# Modelo de mensuração (variáveis latentes)
ma_saude_psico =~ depressao_1 + depressao_2 + depressao_3 + atv_social
ma_saude_fisica =~ cronicas + atv_fisica + quedas
# Modelo estrutural (efeitos diretos)
mobilidade ~ ma_saude_psico + ma_saude_fisica
'
# Ajuste do modelo
ajuste <- sem(modelo, sample.cov = mat_cov, sample.nobs = 6053)
# Visualização dos resultados
lavaan::summary(ajuste, standardized = TRUE, fit.measures = TRUE, ci = TRUE)## lavaan 0.7-2 ended normally after 62 iterations
##
## Estimator ML
## Optimization method NLMINB
## Number of model parameters 18
##
## Number of observations 6053
##
## Model Test User Model:
##
## Test statistic 254.865
## Degrees of freedom 18
## P-value (Chi-square) 0.000
##
## Model Test Baseline Model:
##
## Test statistic 10290.938
## Degrees of freedom 28
## P-value 0.000
##
## User Model versus Baseline Model:
##
## Comparative Fit Index (CFI) 0.977
## Tucker-Lewis Index (TLI) 0.964
##
## Loglikelihood and Information Criteria:
##
## Loglikelihood user model (H0) -95467.244
## Loglikelihood unrestricted model (H1) -95339.812
##
## Akaike (AIC) 190970.488
## Bayesian (BIC) 191091.238
## Sample-size adjusted Bayesian (SABIC) 191034.038
##
## Root Mean Square Error of Approximation:
##
## RMSEA 0.047
## 90 Percent confidence interval - lower 0.042
## 90 Percent confidence interval - upper 0.052
## P-value H_0: RMSEA <= 0.050 0.856
## P-value H_0: RMSEA >= 0.080 0.000
##
## Standardized Root Mean Square Residual:
##
## SRMR 0.027
##
## Goodness of Fit Index:
##
## Goodness of Fit Index (GFI) 0.991
## 90 Percent confidence interval - lower 0.988
## 90 Percent confidence interval - upper 0.992
##
## Parameter Estimates:
##
## Standard errors Standard
## Information Expected
## Information saturated (h1) model Structured
##
## Latent Variables:
## Estimate Std.Err z-value P(>|z|) ci.lower ci.upper
## ma_saude_psico =~
## depressao_1 1.000 1.000 1.000
## depressao_2 1.015 0.020 49.994 0.000 0.976 1.055
## depressao_3 0.972 0.020 49.608 0.000 0.934 1.011
## atv_social -0.771 0.056 -13.683 0.000 -0.881 -0.660
## ma_saude_fisica =~
## cronicas 1.000 1.000 1.000
## atv_fisica -12.005 0.442 -27.173 0.000 -12.871 -11.139
## quedas 1.073 0.070 15.337 0.000 0.935 1.210
## Std.lv Std.all
##
## 0.624 0.712
## 0.634 0.786
## 0.607 0.771
## -0.481 -0.195
##
## 0.610 0.469
## -7.319 -0.511
## 0.654 0.236
##
## Regressions:
## Estimate Std.Err z-value P(>|z|) ci.lower ci.upper
## mobilidade ~
## ma_saude_psico 0.433 0.196 2.215 0.027 0.050 0.816
## ma_saude_fisic -4.034 0.286 -14.107 0.000 -4.594 -3.474
## Std.lv Std.all
##
## 0.270 0.101
## -2.459 -0.914
##
## Covariances:
## Estimate Std.Err z-value P(>|z|) ci.lower ci.upper
## ma_saude_psico ~~
## ma_saude_fisic 0.250 0.011 22.634 0.000 0.228 0.271
## Std.lv Std.all
##
## 0.656 0.656
##
## Variances:
## Estimate Std.Err z-value P(>|z|) ci.lower ci.upper
## .depressao_1 0.380 0.009 41.810 0.000 0.362 0.398
## .depressao_2 0.248 0.007 33.798 0.000 0.234 0.262
## .depressao_3 0.251 0.007 35.721 0.000 0.238 0.265
## .atv_social 5.858 0.107 54.534 0.000 5.647 6.068
## .cronicas 1.318 0.028 46.833 0.000 1.263 1.373
## .atv_fisica 151.194 3.462 43.667 0.000 144.408 157.981
## .quedas 7.241 0.134 54.019 0.000 6.978 7.504
## .mobilidade 1.990 0.239 8.318 0.000 1.521 2.459
## ma_saude_psico 0.390 0.014 28.811 0.000 0.363 0.416
## ma_saude_fisic 0.372 0.024 15.334 0.000 0.324 0.419
## Std.lv Std.all
## 0.380 0.494
## 0.248 0.382
## 0.251 0.405
## 5.858 0.962
## 1.318 0.780
## 151.194 0.738
## 7.241 0.944
## 1.990 0.275
## 1.000 1.000
## 1.000 1.000
O modelo estimou um coeficiente de \(0,433\) (IC 95%: [0,05; 0,82]) para a má saúde psicológica, e \(-4,034\) (IC 95%: [-4,59; -3,47]) para a má saúde física, indicando que ambas afetam a mobilidade pessoal de forma estatisticamente significativa (\(p < 0,05\)).
Como as variáveis latentes medem a má saúde (depressão, histórico de quedas e doenças crônicas), o coeficiente de -4,034 mostra que uma saúde física comprometida prejudica a mobilidade dos indivíduos. A cada aumento de 1 unidade no escore de má saúde física, a mobilidade pessoal reduz, em média, 4,034 unidades, mantendo os demais fatores constantes.
Já o coeficiente de 0,433 para a má saúde psicológica é contraintuitivo, indicando que mais problemas psicológicos aumentariam a mobilidade, efeito que pode ter sido gerado pela covariância presente entre as duas variáveis latentes.
De tal forma, considerando também o fato de que o limite inferior do intervalo de confiança para o coeficiente da má saúde psicológica é igual a 0,05 (próximo de 0), concluo que apenas a saúde física é preditiva da mobilidade pessoal, com a ressalva de que a saúde psicológica é correlacionada com a saúde física, influenciando, de certa forma, a mobilidade de forma indireta.
1.5 Comparação de efeitos em regressão linear múltipla
Antes de verificar a importância das variáveis, fiz a leitura dos dados e ajustei o modelo de regressão linear múltipla na escala original, confirmando que os coeficientes refletem os valores fornecidos no enunciado:
# Leitura do conjunto de dados
World95 <- haven::read_sav("World95.sav")
# Ajuste do modelo de regressão linear múltipla
modelo_reg <- lm(LIFEEXPF ~ FERTILTY + BABYMORT, data = World95)
# Confirmando se os coeficientes batem com a equação do exercício
round(coef(modelo_reg), 2)## (Intercept) FERTILTY BABYMORT
## 82.68 -0.66 -0.24
Para verificar a importância das variáveis independentes, foram utilizados os coeficientes de regressão padronizados, uma vez que FERTILTY e BABYMORT estão em escalas diferentes.
Assim, a variável independente mais importante é aquela que apresenta o maior valor absoluto do coeficiente \(\beta\). Isso indica que uma variação de um desvio-padrão nessa variável está associada à maior variação, em desvios-padrão, na expectativa de vida feminina, mantendo a outra variável constante.
# Ajuste do modelo com coeficientes padronizados
modelo_reg_pad <- lm(scale(LIFEEXPF) ~ scale(FERTILTY) + scale(BABYMORT), data = World95)
# Coeficientes padronizados
round(coef(modelo_reg_pad), 2)## (Intercept) scale(FERTILTY) scale(BABYMORT)
## 0.00 -0.12 -0.86
Como o valor absoluto do coeficiente de BABYMORT é superior, conclui-se que a mortalidade infantil é a variável mais importante. Mantendo a fertilidade constante, um aumento de um desvio-padrão na mortalidade infantil está associado a uma redução de 0,86 desvio-padrão na expectativa de vida feminina.
Outro critério, dentro das limitações do modelo de regressão, seria comparar os valores do Coeficiente de Determinação (\(R^2\)), antes e depois da inclusão das variáveis no modelo. O \(R^2\) representa a proporção da variabilidade da variável resposta que é explicada pelo modelo ajustado.
modelo_BABYMORT <- lm(LIFEEXPF ~ BABYMORT, data = World95)
modelo_FERTILTY <- lm(LIFEEXPF ~ FERTILTY, data = World95)
coef_det_df <- data.frame(
BABYMORT = summary(modelo_BABYMORT)$r.squared,
FERTILTY = summary(modelo_FERTILTY)$r.squared,
AMBAS = summary(modelo_reg)$r.squared
) %>%
round(3)| BABYMORT | FERTILTY | AMBAS |
|---|---|---|
| 0.926 | 0.702 | 0.929 |
A inclusão da variável FERTILTY no modelo aumenta o \(R^2\) de \(0,926\) para \(0,929\), representando um acréscimo de apenas \(0,003\) na proporção da variabilidade de LIFEEXPF explicada pelo modelo. De tal forma, dentro desse critério, BABYMORT também é mais importante.
1.6 Modelos de referência para avaliação de ajuste
Os três modelos a serem ajustados diferem pelo número de restrições impostas à matriz de covariâncias. O modelo de independência total é o mais restritivo, pois assume que as variáveis não possuem covariâncias, apresentando o pior ajuste. O modelo saturado é o menos restritivo, pois estima todas as variâncias e covariâncias, apresentando ajuste perfeito. Já o modelo proposto ocupa uma posição intermediária, buscando um bom ajuste com um número menor de parâmetros.
Leitura dos dados:
data(HolzingerSwineford1939)
HolzingerSwineford1939.Pasteur <- subset(HolzingerSwineford1939,
school == "Pasteur",
select = x1:x9)
n <- nrow(HolzingerSwineford1939.Pasteur) # 156
covar <- cov(HolzingerSwineford1939.Pasteur)1.6.1 Modelo de independência total
Modelo em que todas as variáveis são independentes entre si (nenhuma covariância é estimada):
modelo_indep <- '
x1 ~~ x1
x2 ~~ x2
x3 ~~ x3
x4 ~~ x4
x5 ~~ x5
x6 ~~ x6
x7 ~~ x7
x8 ~~ x8
x9 ~~ x9
'
ajuste_indep <- sem(modelo_indep, data = HolzingerSwineford1939.Pasteur)
fitMeasures(
ajuste_indep,
c("chisq", "df", "pvalue", "cfi", "tli", "rmsea", "srmr")
)## chisq df pvalue cfi tli rmsea srmr
## 452.002 36.000 0.000 0.000 0.000 0.272 0.273
Como temos \(k=9\) variáveis, o número de variâncias é 9, com total de elementos únicos na matriz de covariância de
\[ \frac{k(k+1)}{2} = \frac{9(10)}{2} = 45.\]
Portanto, o modelo de independência possui \(df=45-9=36\) graus de liberdade.
1.6.2 Modelo saturado
No modelo saturado, todas as variâncias e covariâncias são estimadas. Como existem 45 elementos únicos na matriz de covariâncias, temos \(df=45−45=0\) graus de liberdade.
Ajuste do modelo:
modelo_sat <- '
x1 ~~ x2 + x3 + x4 + x5 + x6 + x7 + x8 + x9
x2 ~~ x3 + x4 + x5 + x6 + x7 + x8 + x9
x3 ~~ x4 + x5 + x6 + x7 + x8 + x9
x4 ~~ x5 + x6 + x7 + x8 + x9
x5 ~~ x6 + x7 + x8 + x9
x6 ~~ x7 + x8 + x9
x7 ~~ x8 + x9
x8 ~~ x9
'
ajuste_sat <- sem(modelo_sat, sample.cov = covar, sample.nobs = n)
fitMeasures(
ajuste_sat,
c("chisq", "df", "pvalue", "cfi", "tli", "rmsea", "srmr")
)## chisq df pvalue cfi tli rmsea srmr
## 0 0 NA 1 1 0 0
1.6.3 Modelo proposto
No exemplo de Holzinger-Swineford, existem três fatores latentes: Visual, Textual e Speed, medidos pelas variáveis observadas.
Um modelo de Análise Fatorial Confirmatória (CFA) pode ser escrito como:
Uma vez que x1, x2 e x3 representam medidas relacionadas à habilidade visual, x4, x5 e x6 à habilidade textual e x7, x8 e x9 à velocidade, o modelo proposto agrupa essas variáveis em três fatores latentes.
Ajuste do modelo:
ajuste_proposto <- cfa(modelo_proposto, data = HolzingerSwineford1939.Pasteur)
fitMeasures(
ajuste_proposto,
c("chisq", "df", "pvalue", "cfi", "tli", "rmsea", "srmr")
)## chisq df pvalue cfi tli rmsea srmr
## 64.309 24.000 0.000 0.903 0.855 0.104 0.077
No modelo proposto, os graus de liberdade são calculados como a diferença entre as 45 informações únicas da matriz de covariâncias e os 21 parâmetros (6 cargas fatoriais, 9 variâncias dos erros, 3 variâncias dos fatores e 3 covariâncias entre os fatores) estimados pelo modelo, resultando em 24 graus de liberdade.