TALLER ANÁLISIS FACTORIAL Y CONSISTENCIA INTERNA
Curso: Validación de mediciones y escalas en salud
Maestría en Epidemiología
Facultad Nacional de Salud Pública
Universidad de Antioquia
Objetivos
1. Aplicar los métodos para la descripción estadística de un proceso de validación de bases de datos.
2. Aplicar los métodos para el análisis factorial exploratorio de una validación de escalas.
3. Interpretar los resultados y definir teóricamente los factores en una validación.
4. Aplicar los métodos para el análisis factorial confirmatorio de una validación de escalas.
5. Interpretar los resultados de un análisis factorial confirmatorio como parte de un proceso de evaluación de la validez estructural.
6. Aplicar los métodos e interpretar los resultados de un proceso de evaluación de la consistencia interna de un instrumento.
Nota: Por favor, no leer de corrido el taller, leer cada parte y resolverlo antes de pasar al siguiente. Esto permitirá mantener la dinámica del proceso
if(!require(psych)) install.packages("psych")
if(!require(tidyverse)) install.packages("tidyverse")
if(!require(lavaan)) install.packages("lavaan")
if(!require(MVN)) install.packages("MVN")
if(!require(gridExtra)) install.packages("gridExtra")
if(!require(foreign)) install.packages("foreign")
if(!require(GPArotation)) install.packages("GPArotation")
if(!require(corrplot)) install.packages("corrplot")
if(!require(readxl)) install.packages("readxl")
if(!require(lavaanPlot)) install.packages("lavaanPlot")
afe <- read_excel("afe.xlsx")
afe1 <- afe
afc <- read_excel("afc.xlsx")
afc1<-afc
Imagine que usted es un investigador en salud que ha desarrollado una escala para la medición de la calidad de vida relacionada con la salud en personas con autismo. Durante este proceso usted ya ha realizado diferentes procesos para la generación de los ítems, la forma de puntuación, la evaluación de la validez de apariencia y contenido y un piloto.
Ahora usted realizó una aplicación de su instrumento de 10 ítems en 352 personas con autismo.
Las preguntas son:
Número | Pregunta |
---|---|
1 | ¿Cuánto disfruta de la vida? |
2 | ¿En qué medida siente que su vida tiene sentido? |
3 | ¿Tiene energía suficiente para la vida diaria? |
4 | Tiene suficiente dinero para cubrir sus necesidades? |
5 | ¿Qué disponibilidad tiene de la información que necesita en su vida diaria? |
6 | ¿Es capaz de desplazarse de un lugar a otro? |
7 | ¿Cuán satisfecho/a está con su capacidad de trabajo? |
8 | ¿Cuán satisfecho/a está de sí mismo? |
9 | ¿Cuán satisfecho/a está de las condiciones del lugar donde vive? |
10 | ¿Cuán satisfecho/a está con el acceso que tiene a los servicios sanitarios? |
Todas las preguntas se responden en una escala Likert de 1 a 5, donde 5 representa mayor intensidad del constructo medido y 1 menor intensidad, la opción 3 representa un nivel neutro en la pregunta.
Realice inspección de los datos y describa los datos en términos estadísticos ¿Qué piensa o qué interpreta de los datos? ¿Tienen distribución normal? ¿Cuál es la medida de tendencia central y de dispersión? ¿Existe efecto piso o efecto techo?
tabla1 <-describe(afe1, quant=c(.1,.25,.5,.75,.90))
tabla1 <-tabla1[c(2,3,4,5,8, 9, 11,12,13, 14, 15, 16,17,18)]
colnames(tabla1) <-c("Número de observaciones", "Media", "Desviación estándar", "Mediana", "Mínimo", "Máximo" ,"Sesgo", "Curtosis", "Error Estándar", "P10", "P25" ,"P50", "P75", "P90")
tabla1
## Número de observaciones Media Desviación estándar Mediana Mínimo Máximo
## P1 352 2.78 0.93 3 1 5
## P2 352 2.55 1.11 3 1 5
## P3 352 2.84 1.15 3 1 5
## P4 352 3.25 1.29 3 1 5
## P5 352 3.28 1.10 3 1 5
## P6 352 3.66 1.19 4 1 5
## P7 352 2.52 1.26 2 1 5
## P8 352 2.63 1.11 3 1 5
## P9 352 3.37 1.22 4 1 5
## P10 352 3.11 1.23 3 1 5
## Sesgo Curtosis Error Estándar P10 P25 P50 P75 P90
## P1 -0.01 -0.36 0.05 2 2 3 3 4
## P2 0.06 -1.08 0.06 1 2 3 3 4
## P3 0.12 -0.94 0.06 1 2 3 4 4
## P4 -0.30 -1.00 0.07 1 2 3 4 5
## P5 -0.31 -0.63 0.06 2 3 3 4 5
## P6 -0.54 -0.69 0.06 2 3 4 5 5
## P7 0.42 -0.94 0.07 1 1 2 4 4
## P8 0.20 -0.79 0.06 1 2 3 3 4
## P9 -0.37 -0.88 0.07 2 2 4 4 5
## P10 -0.27 -0.97 0.07 1 2 3 4 5
tabla2 <- t(apply((afe1), 2, table))
tabla2
## 1 2 3 4 5
## P1 31 99 148 65 9
## P2 78 91 102 75 6
## P3 43 110 85 88 26
## P4 46 56 82 101 67
## P5 24 62 102 120 44
## P6 18 48 76 103 107
## P7 90 106 66 62 28
## P8 61 107 101 67 16
## P9 30 63 75 116 68
## P10 49 63 83 116 41
list <-lapply(1:ncol(afe1),
function(col) ggplot2::qplot(afe1[[col]],
geom = "histogram",
binwidth = 1))
cowplot::plot_grid(plotlist = list)
# 1.2. Normalidad
Realice evaluación de la normalidad univariada y multivariada. ¿Por qué es importante?
mvn(afe1, mvnTest = "mardia" , univariateTest = "SW", multivariatePlot = "qq", univariatePlot="histogram")
## $multivariateNormality
## Test Statistic p value Result
## 1 Mardia Skewness 333.365795118388 1.21655900528497e-06 NO
## 2 Mardia Kurtosis 4.78017001058921 1.75147020398114e-06 NO
## 3 MVN <NA> <NA> NO
##
## $univariateNormality
## Test Variable Statistic p value Normality
## 1 Shapiro-Wilk P1 0.8988 <0.001 NO
## 2 Shapiro-Wilk P2 0.8898 <0.001 NO
## 3 Shapiro-Wilk P3 0.9079 <0.001 NO
## 4 Shapiro-Wilk P4 0.8980 <0.001 NO
## 5 Shapiro-Wilk P5 0.9071 <0.001 NO
## 6 Shapiro-Wilk P6 0.8745 <0.001 NO
## 7 Shapiro-Wilk P7 0.8842 <0.001 NO
## 8 Shapiro-Wilk P8 0.9075 <0.001 NO
## 9 Shapiro-Wilk P9 0.8969 <0.001 NO
## 10 Shapiro-Wilk P10 0.8996 <0.001 NO
##
## $Descriptives
## n Mean Std.Dev Median Min Max 25th 75th Skew Kurtosis
## P1 352 2.778409 0.9347912 3 1 5 2 3 -0.007907398 -0.3555838
## P2 352 2.545455 1.1058930 3 1 5 2 3 0.055515104 -1.0800013
## P3 352 2.840909 1.1511061 3 1 5 2 4 0.121797840 -0.9405929
## P4 352 3.247159 1.2937469 3 1 5 2 4 -0.299027847 -0.9985726
## P5 352 3.278409 1.1025946 3 1 5 3 4 -0.309432056 -0.6318281
## P6 352 3.661932 1.1896633 4 1 5 3 5 -0.542581484 -0.6897798
## P7 352 2.522727 1.2629028 2 1 5 1 4 0.422880296 -0.9394848
## P8 352 2.630682 1.1119509 3 1 5 2 3 0.203680900 -0.7888096
## P9 352 3.366477 1.2215123 4 1 5 2 4 -0.368048647 -0.8757003
## P10 352 3.105114 1.2347195 3 1 5 2 4 -0.271887625 -0.9718959
Revise la matriz de correlaciones de los ítems, ¿existe correlación? ¿Hay correlaciones entre |0,3| a |0,7|? En caso de que sí, por qué esto es importante y de forma visual qué piensa de esta. En caso de que no, ¿qué piensa de este hallazgo?
corafe <- cor(afe1, method= "spearman")
corrplot(corafe, method = "number")
Realice el test de esfericidad de Bartlett ¿Qué evalúa este? ¿Qué es la matriz identidad? ¿Cuáles son las Ha y Ho de este? Utiice un nivel de alfa de 0,05. ¿Qué significa el resultado?
cortest.bartlett(afe1)
## R was not square, finding R from data
## $chisq
## [1] 1291.486
##
## $p.value
## [1] 4.086553e-241
##
## $df
## [1] 45
Realice el nivel cálculo cálculo de la medida de adecuación de Kaiser-Meyer-Olkin. Según los criterios de Kaiser, ¿cómo interpreta el resultado?
KMO(corafe)
## Kaiser-Meyer-Olkin factor adequacy
## Call: KMO(r = corafe)
## Overall MSA = 0.89
## MSA for each item =
## P1 P2 P3 P4 P5 P6 P7 P8 P9 P10
## 0.87 0.84 0.92 0.89 0.90 0.92 0.89 0.88 0.89 0.90
Defina el número de factores, para esto utilice tres criterios: 1. El criterio de Kaiser 2. El criterio gráfico (utilizando el gráfico de sedimentación o Cattell’s Scree Test) 3. Mediante el análisis paralelo de Horn
¿Cuántos factores encuentra utilizando los tres criterios? ¿Con cuantos criterios factores decide quedarse?
eigbd2<- eigen(corafe)
round(eigbd2$values, 2)
## [1] 4.56 1.19 0.84 0.69 0.57 0.51 0.49 0.44 0.38 0.33
fa.parallel(afe1, fm ="wls")
## Parallel analysis suggests that the number of factors = 2 and the number of components = 1
Realice el análisis factorial Realice un primer análisis factorial sin rotación, luego con una rotación ortogonal (intente con varimax), luego con una no ortogonal (intente con oblimin)
fa1<- fa(afe1, nfactors = 2, fm="wls", rotate ="none")
print(fa1, sort=T)
## Factor Analysis using method = wls
## Call: fa(r = afe1, nfactors = 2, rotate = "none", fm = "wls")
## Standardized loadings (pattern matrix) based upon correlation matrix
## item WLS1 WLS2 h2 u2 com
## P1 1 0.72 -0.34 0.63 0.37 1.4
## P3 3 0.68 0.00 0.47 0.53 1.0
## P7 7 0.67 -0.05 0.45 0.55 1.0
## P8 8 0.66 -0.39 0.60 0.40 1.6
## P5 5 0.65 0.31 0.52 0.48 1.4
## P2 2 0.63 -0.33 0.50 0.50 1.5
## P6 6 0.61 0.24 0.43 0.57 1.3
## P10 10 0.59 0.17 0.37 0.63 1.2
## P4 4 0.57 0.32 0.43 0.57 1.6
## P9 9 0.57 0.21 0.37 0.63 1.3
##
## WLS1 WLS2
## SS loadings 4.06 0.70
## Proportion Var 0.41 0.07
## Cumulative Var 0.41 0.48
## Proportion Explained 0.85 0.15
## Cumulative Proportion 0.85 1.00
##
## Mean item complexity = 1.3
## Test of the hypothesis that 2 factors are sufficient.
##
## The degrees of freedom for the null model are 45 and the objective function was 3.72 with Chi Square of 1291.49
## The degrees of freedom for the model are 26 and the objective function was 0.24
##
## The root mean square of the residuals (RMSR) is 0.04
## The df corrected root mean square of the residuals is 0.05
##
## The harmonic number of observations is 352 with the empirical chi square 53.16 with prob < 0.0013
## The total number of observations was 352 with Likelihood Chi Square = 84.54 with prob < 4.1e-08
##
## Tucker Lewis Index of factoring reliability = 0.918
## RMSEA index = 0.08 and the 90 % confidence intervals are 0.061 0.099
## BIC = -67.91
## Fit based upon off diagonal values = 0.99
## Measures of factor score adequacy
## WLS1 WLS2
## Correlation of (regression) scores with factors 0.94 0.77
## Multiple R square of scores with factors 0.89 0.60
## Minimum correlation of possible factor scores 0.78 0.19
fa.diagram(fa1)
fa2<- fa(afe1, nfactors = 2, fm="wls", rotate ="varimax")
print(fa2, sort=T)
## Factor Analysis using method = wls
## Call: fa(r = afe1, nfactors = 2, rotate = "varimax", fm = "wls")
## Standardized loadings (pattern matrix) based upon correlation matrix
## item WLS1 WLS2 h2 u2 com
## P5 5 0.68 0.22 0.52 0.48 1.2
## P4 4 0.63 0.16 0.43 0.57 1.1
## P6 6 0.61 0.24 0.43 0.57 1.3
## P9 9 0.56 0.24 0.37 0.63 1.4
## P10 10 0.55 0.27 0.37 0.63 1.5
## P3 3 0.50 0.47 0.47 0.53 2.0
## P8 8 0.22 0.74 0.60 0.40 1.2
## P1 1 0.30 0.74 0.63 0.37 1.3
## P2 2 0.23 0.67 0.50 0.50 1.2
## P7 7 0.46 0.49 0.45 0.55 2.0
##
## WLS1 WLS2
## SS loadings 2.49 2.27
## Proportion Var 0.25 0.23
## Cumulative Var 0.25 0.48
## Proportion Explained 0.52 0.48
## Cumulative Proportion 0.52 1.00
##
## Mean item complexity = 1.4
## Test of the hypothesis that 2 factors are sufficient.
##
## The degrees of freedom for the null model are 45 and the objective function was 3.72 with Chi Square of 1291.49
## The degrees of freedom for the model are 26 and the objective function was 0.24
##
## The root mean square of the residuals (RMSR) is 0.04
## The df corrected root mean square of the residuals is 0.05
##
## The harmonic number of observations is 352 with the empirical chi square 53.16 with prob < 0.0013
## The total number of observations was 352 with Likelihood Chi Square = 84.54 with prob < 4.1e-08
##
## Tucker Lewis Index of factoring reliability = 0.918
## RMSEA index = 0.08 and the 90 % confidence intervals are 0.061 0.099
## BIC = -67.91
## Fit based upon off diagonal values = 0.99
## Measures of factor score adequacy
## WLS1 WLS2
## Correlation of (regression) scores with factors 0.86 0.87
## Multiple R square of scores with factors 0.73 0.75
## Minimum correlation of possible factor scores 0.47 0.51
fa.diagram(fa2)
fa3<- fa(afe1, nfactors = 2, fm="wls", rotate ="oblimin")
print(fa3, sort=T)
## Factor Analysis using method = wls
## Call: fa(r = afe1, nfactors = 2, rotate = "oblimin", fm = "wls")
## Standardized loadings (pattern matrix) based upon correlation matrix
## item WLS1 WLS2 h2 u2 com
## P5 5 0.74 -0.03 0.52 0.48 1.0
## P4 4 0.70 -0.08 0.43 0.57 1.0
## P6 6 0.64 0.03 0.43 0.57 1.0
## P9 9 0.58 0.05 0.37 0.63 1.0
## P10 10 0.55 0.09 0.37 0.63 1.1
## P3 3 0.40 0.35 0.47 0.53 2.0
## P8 8 -0.05 0.80 0.60 0.40 1.0
## P1 1 0.05 0.77 0.63 0.37 1.0
## P2 2 0.00 0.71 0.50 0.50 1.0
## P7 7 0.35 0.39 0.45 0.55 2.0
##
## WLS1 WLS2
## SS loadings 2.55 2.22
## Proportion Var 0.25 0.22
## Cumulative Var 0.25 0.48
## Proportion Explained 0.53 0.47
## Cumulative Proportion 0.53 1.00
##
## With factor correlations of
## WLS1 WLS2
## WLS1 1.00 0.63
## WLS2 0.63 1.00
##
## Mean item complexity = 1.2
## Test of the hypothesis that 2 factors are sufficient.
##
## The degrees of freedom for the null model are 45 and the objective function was 3.72 with Chi Square of 1291.49
## The degrees of freedom for the model are 26 and the objective function was 0.24
##
## The root mean square of the residuals (RMSR) is 0.04
## The df corrected root mean square of the residuals is 0.05
##
## The harmonic number of observations is 352 with the empirical chi square 53.16 with prob < 0.0013
## The total number of observations was 352 with Likelihood Chi Square = 84.54 with prob < 4.1e-08
##
## Tucker Lewis Index of factoring reliability = 0.918
## RMSEA index = 0.08 and the 90 % confidence intervals are 0.061 0.099
## BIC = -67.91
## Fit based upon off diagonal values = 0.99
## Measures of factor score adequacy
## WLS1 WLS2
## Correlation of (regression) scores with factors 0.91 0.92
## Multiple R square of scores with factors 0.83 0.84
## Minimum correlation of possible factor scores 0.66 0.69
fa.diagram(fa3)
De acuerdo al método que usted seleccionó, ¿qué piensa de los resultados? ¿Cómo llamaría a los dominios encontrados? ¿por qué? ¿ qué sustento teórico utiliza para definirlos? ¿Cómo estos factores “encajan” en el constructo de calidad de vida relacionada con la salud?
Imagine que usted es un investigador en salud que está evaluando la validez estructural de una escala para medir la calidad de vida relacionada con la salud en personas con autismo. Usted decide realizar esta evaluación mediante un análisis factorial confirmatorio. Para esto usted aplica los 10 ítems del instrumento en 352 participantes.
Las preguntas son:
Número | Pregunta |
---|---|
1 | ¿En qué medida piensa que el dolor (físico) le impide hacer lo que necesita? |
2 | ¿Cuánto disfruta de la vida? |
3 | ¿Cuál es su capacidad de concentración? |
4 | ¿Cuánta seguridad siente en su vida diaria? |
5 | ¿Tiene energía suficiente para la vida diaria? |
6 | ¿Tiene suficiente dinero para cubrir sus necesidades? |
7 | ¿Cuán satisfecho/a está con su sueño? |
8 | ¿Cuán satisfecho/a está con su capacidad de trabajo? |
9 | ¿Cuán satisfecho/a está de sí mismo? |
10 | ¿Cuán satisfecho/a está de las condiciones del lugar donde vive? |
Todas las preguntas se responden en una escala Likert de 1 a 5, donde 5 representa mayor intensidad del constructo medido y 1 menor intensidad, la opción 3 representa un nivel neutro en la pregunta.
Realice inspección de los datos y describa los datos en términos estadísticos ¿Qué piensa o qué interpreta de los datos? ¿Tienen distribución normal? ¿Cuál es la medida de tendencia central y de dispersión? ¿Existe efecto piso o efecto techo?
tabla3 <-describe(afc1, quant=c(.1,.25,.5,.75,.90))
tabla3 <-tabla3[c(2,3,4,5,8, 9, 11,12,13, 14, 15, 16,17,18)]
colnames(tabla3) <-c("Número de observaciones", "Media", "Desviación estándar", "Mediana", "Mínimo", "Máximo" ,"Sesgo", "Curtosis", "Error Estándar", "P10", "P25" ,"P50", "P75", "P90")
tabla3
## Número de observaciones Media Desviación estándar Mediana Mínimo Máximo
## P1 352 2.86 1.41 3 1 5
## P2 352 2.78 0.93 3 1 5
## P3 352 2.81 0.97 3 1 5
## P4 352 3.02 1.06 3 1 5
## P5 352 2.84 1.15 3 1 5
## P6 352 3.25 1.29 3 1 5
## P7 352 2.66 1.26 3 1 5
## P8 352 2.52 1.26 2 1 5
## P9 352 2.63 1.11 3 1 5
## P10 352 3.37 1.22 4 1 5
## Sesgo Curtosis Error Estándar P10 P25 P50 P75 P90
## P1 0.13 -1.30 0.08 1 2 3 4 5
## P2 -0.01 -0.36 0.05 2 2 3 3 4
## P3 0.30 -0.25 0.05 2 2 3 3 4
## P4 -0.14 -0.42 0.06 2 2 3 4 4
## P5 0.12 -0.94 0.06 1 2 3 4 4
## P6 -0.30 -1.00 0.07 1 2 3 4 5
## P7 0.18 -1.16 0.07 1 2 3 4 4
## P8 0.42 -0.94 0.07 1 1 2 4 4
## P9 0.20 -0.79 0.06 1 2 3 3 4
## P10 -0.37 -0.88 0.07 2 2 4 4 5
tabla4 <- t(apply((afc1), 2, table))
tabla4
## 1 2 3 4 5
## P1 81 75 69 66 61
## P2 31 99 148 65 9
## P3 24 115 137 57 19
## P4 34 63 144 84 27
## P5 43 110 85 88 26
## P6 46 56 82 101 67
## P7 80 94 67 86 25
## P8 90 106 66 62 28
## P9 61 107 101 67 16
## P10 30 63 75 116 68
list <-lapply(1:ncol(afc1),
function(col) ggplot2::qplot(afc1[[col]],
geom = "histogram",
binwidth = 1))
cowplot::plot_grid(plotlist = list)
Revise la matriz de correlaciones de los ítems, ¿existe correlación? En caso de que sí, por qué esto es importante y de forma visual qué piensa de esta. En caso de que no, ¿qué piensa de este hallazgo?
corafc <- cor(afc1, method= "spearman")
corrplot(corafc, method = "number")
Evalúe si hay normalidad multivariada ¿por qué importa esto? En caso de que no haya, qué precauciones se deben tener para estimar el modelo?
mvn(afc1, mvnTest = "mardia" , univariateTest = "SW", multivariatePlot = "qq", univariatePlot="histogram")
## $multivariateNormality
## Test Statistic p value Result
## 1 Mardia Skewness 301.734364449273 0.000209085806134511 NO
## 2 Mardia Kurtosis 2.23206140839474 0.0256109045903576 NO
## 3 MVN <NA> <NA> NO
##
## $univariateNormality
## Test Variable Statistic p value Normality
## 1 Shapiro-Wilk P1 0.8854 <0.001 NO
## 2 Shapiro-Wilk P2 0.8988 <0.001 NO
## 3 Shapiro-Wilk P3 0.8984 <0.001 NO
## 4 Shapiro-Wilk P4 0.9084 <0.001 NO
## 5 Shapiro-Wilk P5 0.9079 <0.001 NO
## 6 Shapiro-Wilk P6 0.8980 <0.001 NO
## 7 Shapiro-Wilk P7 0.8917 <0.001 NO
## 8 Shapiro-Wilk P8 0.8842 <0.001 NO
## 9 Shapiro-Wilk P9 0.9075 <0.001 NO
## 10 Shapiro-Wilk P10 0.8969 <0.001 NO
##
## $Descriptives
## n Mean Std.Dev Median Min Max 25th 75th Skew Kurtosis
## P1 352 2.860795 1.4143938 3 1 5 2 4 0.125693426 -1.2956598
## P2 352 2.778409 0.9347912 3 1 5 2 3 -0.007907398 -0.3555838
## P3 352 2.806818 0.9708921 3 1 5 2 3 0.298894295 -0.2509318
## P4 352 3.019886 1.0552552 3 1 5 2 4 -0.140997385 -0.4186901
## P5 352 2.840909 1.1511061 3 1 5 2 4 0.121797840 -0.9405929
## P6 352 3.247159 1.2937469 3 1 5 2 4 -0.299027847 -0.9985726
## P7 352 2.664773 1.2636076 3 1 5 2 4 0.181481873 -1.1608267
## P8 352 2.522727 1.2629028 2 1 5 1 4 0.422880296 -0.9394848
## P9 352 2.630682 1.1119509 3 1 5 2 3 0.203680900 -0.7888096
## P10 352 3.366477 1.2215123 4 1 5 2 4 -0.368048647 -0.8757003
Usted conoce que el instrumento tiente 3 dimensiones: una llamada función física (pregunas 1, 5, 7 y 8), otra llamada función psicológica (preguntas 2, 3 y 9) y otra llamada interacción con el ambiente (prefuntas 4, 6 y 10) ¿Cómo las diagramaría usted? (Realice el diagrama en R o a mano)
model <- '
#model
Física =~ P1 + P5 + P7 + P8
Psicológica =~ P2 + P3 + P9
Ambiente =~ P4 + P10 + P6
'
Estime el ajuste de los datos al modelo teórico. ¿Cuáles son las medidas de bondad de ajuste que utilizará y por qué? ¿Qué representan o indican cada una de ellas? ¿Qué umbrales va a utilizar?
cfa <-cfa(model, ordered= T, data = afc1)
summary(cfa, standardized = T, fit.measures=T)
## lavaan 0.6-10 ended normally after 100 iterations
##
## Estimator DWLS
## Optimization method NLMINB
## Number of model parameters 53
##
## Number of observations 352
##
## Model Test User Model:
## Standard Robust
## Test Statistic 52.994 86.549
## Degrees of freedom 32 32
## P-value (Chi-square) 0.011 0.000
## Scaling correction factor 0.644
## Shift parameter 4.281
## simple second-order correction
##
## Model Test Baseline Model:
##
## Test statistic 3564.206 2129.249
## Degrees of freedom 45 45
## P-value 0.000 0.000
## Scaling correction factor 1.688
##
## User Model versus Baseline Model:
##
## Comparative Fit Index (CFI) 0.994 0.974
## Tucker-Lewis Index (TLI) 0.992 0.963
##
## Robust Comparative Fit Index (CFI) NA
## Robust Tucker-Lewis Index (TLI) NA
##
## Root Mean Square Error of Approximation:
##
## RMSEA 0.043 0.070
## 90 Percent confidence interval - lower 0.021 0.052
## 90 Percent confidence interval - upper 0.063 0.088
## P-value RMSEA <= 0.05 0.686 0.033
##
## Robust RMSEA NA
## 90 Percent confidence interval - lower NA
## 90 Percent confidence interval - upper NA
##
## Standardized Root Mean Square Residual:
##
## SRMR 0.047 0.047
##
## Parameter Estimates:
##
## Standard errors Robust.sem
## Information Expected
## Information saturated (h1) model Unstructured
##
## Latent Variables:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## Física =~
## P1 1.000 0.053 0.053
## P5 15.154 15.274 0.992 0.321 0.796 0.796
## P7 11.782 11.840 0.995 0.320 0.619 0.619
## P8 14.563 14.724 0.989 0.323 0.765 0.765
## Psicológica =~
## P2 1.000 0.763 0.763
## P3 0.772 0.062 12.520 0.000 0.589 0.589
## P9 0.998 0.057 17.404 0.000 0.761 0.761
## Ambiente =~
## P4 1.000 0.704 0.704
## P10 0.941 0.078 12.099 0.000 0.663 0.663
## P6 0.880 0.083 10.632 0.000 0.620 0.620
##
## Covariances:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## Física ~~
## Psicológica 0.037 0.037 0.985 0.324 0.914 0.914
## Ambiente 0.029 0.030 0.978 0.328 0.792 0.792
## Psicológica ~~
## Ambiente 0.395 0.038 10.353 0.000 0.735 0.735
##
## Intercepts:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## .P1 0.000 0.000 0.000
## .P5 0.000 0.000 0.000
## .P7 0.000 0.000 0.000
## .P8 0.000 0.000 0.000
## .P2 0.000 0.000 0.000
## .P3 0.000 0.000 0.000
## .P9 0.000 0.000 0.000
## .P4 0.000 0.000 0.000
## .P10 0.000 0.000 0.000
## .P6 0.000 0.000 0.000
## Física 0.000 0.000 0.000
## Psicológica 0.000 0.000 0.000
## Ambiente 0.000 0.000 0.000
##
## Thresholds:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## P1|t1 -0.738 0.074 -9.984 0.000 -0.738 -0.738
## P1|t2 -0.143 0.067 -2.128 0.033 -0.143 -0.143
## P1|t3 0.356 0.068 5.205 0.000 0.356 0.356
## P1|t4 0.941 0.079 11.935 0.000 0.941 0.941
## P5|t1 -1.164 0.086 -13.493 0.000 -1.164 -1.164
## P5|t2 -0.165 0.067 -2.447 0.014 -0.165 -0.165
## P5|t3 0.457 0.069 6.575 0.000 0.457 0.457
## P5|t4 1.448 0.100 14.508 0.000 1.448 1.448
## P7|t1 -0.748 0.074 -10.084 0.000 -0.748 -0.748
## P7|t2 -0.014 0.067 -0.213 0.831 -0.014 -0.014
## P7|t3 0.481 0.070 6.889 0.000 0.481 0.481
## P7|t4 1.468 0.101 14.540 0.000 1.468 1.468
## P8|t1 -0.657 0.072 -9.069 0.000 -0.657 -0.657
## P8|t2 0.143 0.067 2.128 0.033 0.143 0.143
## P8|t3 0.657 0.072 9.069 0.000 0.657 0.657
## P8|t4 1.408 0.098 14.432 0.000 1.408 1.408
## P2|t1 -1.353 0.095 -14.290 0.000 -1.353 -1.353
## P2|t2 -0.334 0.068 -4.888 0.000 -0.334 -0.334
## P2|t3 0.806 0.075 10.682 0.000 0.806 0.806
## P2|t4 1.950 0.141 13.787 0.000 1.950 1.950
## P3|t1 -1.489 0.102 -14.566 0.000 -1.489 -1.489
## P3|t2 -0.267 0.068 -3.934 0.000 -0.267 -0.267
## P3|t3 0.786 0.075 10.484 0.000 0.786 0.786
## P3|t4 1.607 0.110 14.607 0.000 1.607 1.607
## P9|t1 -0.941 0.079 -11.935 0.000 -0.941 -0.941
## P9|t2 -0.057 0.067 -0.852 0.394 -0.057 -0.057
## P9|t3 0.720 0.074 9.782 0.000 0.720 0.720
## P9|t4 1.691 0.116 14.530 0.000 1.691 1.691
## P4|t1 -1.301 0.092 -14.120 0.000 -1.301 -1.301
## P4|t2 -0.596 0.071 -8.348 0.000 -0.596 -0.596
## P4|t3 0.481 0.070 6.889 0.000 0.481 0.481
## P4|t4 1.428 0.099 14.472 0.000 1.428 1.428
## P10|t1 -1.371 0.096 -14.341 0.000 -1.371 -1.371
## P10|t2 -0.630 0.072 -8.761 0.000 -0.630 -0.630
## P10|t3 -0.057 0.067 -0.852 0.394 -0.057 -0.057
## P10|t4 0.866 0.077 11.269 0.000 0.866 0.866
## P6|t1 -1.123 0.085 -13.255 0.000 -1.123 -1.123
## P6|t2 -0.554 0.071 -7.829 0.000 -0.554 -0.554
## P6|t3 0.057 0.067 0.852 0.394 0.057 0.057
## P6|t4 0.877 0.077 11.366 0.000 0.877 0.877
##
## Variances:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## .P1 0.997 0.997 0.997
## .P5 0.367 0.367 0.367
## .P7 0.617 0.617 0.617
## .P8 0.415 0.415 0.415
## .P2 0.418 0.418 0.418
## .P3 0.653 0.653 0.653
## .P9 0.420 0.420 0.420
## .P4 0.504 0.504 0.504
## .P10 0.561 0.561 0.561
## .P6 0.615 0.615 0.615
## Física 0.003 0.006 0.496 0.620 1.000 1.000
## Psicológica 0.582 0.049 11.869 0.000 1.000 1.000
## Ambiente 0.496 0.061 8.195 0.000 1.000 1.000
##
## Scales y*:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## P1 1.000 1.000 1.000
## P5 1.000 1.000 1.000
## P7 1.000 1.000 1.000
## P8 1.000 1.000 1.000
## P2 1.000 1.000 1.000
## P3 1.000 1.000 1.000
## P9 1.000 1.000 1.000
## P4 1.000 1.000 1.000
## P10 1.000 1.000 1.000
## P6 1.000 1.000 1.000
CFAmodel<-lavaanPlot(model = cfa, coef=TRUE, stand = TRUE, covs = TRUE)
CFAmodel
¿Los datos se ajustan al modelo teórico de los autores originales de la escala?
Imagine que usted continuó la evaluación del dominio de confiabilidad del instrumento evaluado en la parte 2. En esta usted consideró que los datos se ajustaban al modelo teórico de los autores de de la escala y a su vez al constructo de calidad de vida relacionada con la salud. Ahora usted va a evaluar el aspecto de confiabilidad.
Los datos son de tipo ordinal. ¿Qué indicador o indicadores va a utilizar y por qué?
Calcule el alfa de Cronbach y Omega de McDonald asumiendo unidimensionalidad
psych::alpha(afc1)
##
## Reliability analysis
## Call: psych::alpha(x = afc1)
##
## raw_alpha std.alpha G6(smc) average_r S/N ase mean sd median_r
## 0.8 0.81 0.82 0.3 4.4 0.016 2.9 0.7 0.33
##
## lower alpha upper 95% confidence boundaries
## 0.77 0.8 0.83
##
## Reliability if an item is dropped:
## raw_alpha std.alpha G6(smc) average_r S/N alpha se var.r med.r
## P1 0.84 0.84 0.84 0.37 5.3 0.013 0.0078 0.36
## P2 0.77 0.79 0.79 0.29 3.7 0.018 0.0252 0.33
## P3 0.78 0.80 0.81 0.31 4.0 0.017 0.0272 0.34
## P4 0.78 0.79 0.80 0.30 3.8 0.018 0.0292 0.33
## P5 0.76 0.78 0.78 0.28 3.5 0.019 0.0244 0.32
## P6 0.78 0.80 0.81 0.31 4.0 0.017 0.0289 0.34
## P7 0.78 0.80 0.80 0.30 3.9 0.017 0.0286 0.34
## P8 0.77 0.78 0.79 0.29 3.6 0.019 0.0238 0.32
## P9 0.77 0.79 0.79 0.29 3.7 0.018 0.0253 0.33
## P10 0.78 0.80 0.80 0.30 3.9 0.018 0.0301 0.33
##
## Item statistics
## n raw.r std.r r.cor r.drop mean sd
## P1 352 0.25 0.21 0.058 0.05 2.9 1.41
## P2 352 0.66 0.69 0.659 0.58 2.8 0.93
## P3 352 0.57 0.59 0.521 0.46 2.8 0.97
## P4 352 0.63 0.64 0.586 0.53 3.0 1.06
## P5 352 0.75 0.76 0.739 0.66 2.8 1.15
## P6 352 0.60 0.59 0.522 0.47 3.2 1.29
## P7 352 0.62 0.61 0.543 0.49 2.7 1.26
## P8 352 0.71 0.72 0.693 0.61 2.5 1.26
## P9 352 0.67 0.69 0.657 0.57 2.6 1.11
## P10 352 0.63 0.62 0.557 0.50 3.4 1.22
##
## Non missing response frequency for each item
## 1 2 3 4 5 miss
## P1 0.23 0.21 0.20 0.19 0.17 0
## P2 0.09 0.28 0.42 0.18 0.03 0
## P3 0.07 0.33 0.39 0.16 0.05 0
## P4 0.10 0.18 0.41 0.24 0.08 0
## P5 0.12 0.31 0.24 0.25 0.07 0
## P6 0.13 0.16 0.23 0.29 0.19 0
## P7 0.23 0.27 0.19 0.24 0.07 0
## P8 0.26 0.30 0.19 0.18 0.08 0
## P9 0.17 0.30 0.29 0.19 0.05 0
## P10 0.09 0.18 0.21 0.33 0.19 0
omega(afc1, nfactors = 1, poly= F)
## Omega_h for 1 factor is not meaningful, just omega_t
## Warning in schmid(m, nfactors, fm, digits, rotate = rotate, n.obs = n.obs, :
## Omega_h and Omega_asymptotic are not meaningful with one factor
## 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.81
## G.6: 0.82
## Omega Hierarchical: 0.82
## Omega H asymptotic: 1
## Omega Total 0.82
##
## Schmid Leiman Factor loadings greater than 0.2
## g F1* h2 u2 p2
## P1 0.00 1.00 1
## P2 0.67 0.44 0.56 1
## P3 0.53 0.29 0.71 1
## P4 0.58 0.33 0.67 1
## P5 0.75 0.56 0.44 1
## P6 0.51 0.26 0.74 1
## P7 0.55 0.30 0.70 1
## P8 0.71 0.51 0.49 1
## P9 0.66 0.44 0.56 1
## P10 0.53 0.28 0.72 1
##
## With eigenvalues of:
## g F1*
## 3.4 0.0
##
## general/max 2.863739e+16 max/min = 1
## mean percent general = 1 with sd = 0 and cv of 0
## Explained Common Variance of the general factor = 1
##
## The degrees of freedom are 35 and the fit is 0.32
## The number of observations was 352 with Chi Square = 109.07 with prob < 1.5e-09
## The root mean square of the residuals is 0.05
## The df corrected root mean square of the residuals is 0.06
## RMSEA index = 0.077 and the 10 % confidence intervals are 0.061 0.094
## BIC = -96.16
##
## 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 0.32
## The number of observations was 352 with Chi Square = 109.07 with prob < 1.5e-09
## The root mean square of the residuals is 0.05
## The df corrected root mean square of the residuals is 0.06
##
## RMSEA index = 0.077 and the 10 % confidence intervals are 0.061 0.094
## BIC = -96.16
##
## Measures of factor score adequacy
## g F1*
## Correlation of scores with factors 0.93 0
## Multiple R square of scores with factors 0.86 0
## Minimum correlation of factor score estimates 0.71 -1
##
## Total, General and Subset omega for each subset
## g F1*
## Omega total for total scores and subscales 0.82 0.82
## Omega general for total scores and subscales 0.82 0.82
## Omega group for total scores and subscales 0.00 0.00
¿Qué piensa de este alfa y de este Omega? ¿Cómo los interpreta? ¿Qué problemas o dificultades tiene?
Ahora: usted conoce que el instrumento tiene 3 dimensiones: física, psicológica y medio ambiente. Por esto, usted decide realizar el alfa y el omega por cada dimensión. Calcule el alfa y el omega teniendo en cuenta la dimensionalidad.
print("Función física")
## [1] "Función física"
psych::alpha(select(afc1, P1, P5, P7,P8))
##
## Reliability analysis
## Call: psych::alpha(x = select(afc1, P1, P5, P7, P8))
##
## raw_alpha std.alpha G6(smc) average_r S/N ase mean sd median_r
## 0.54 0.56 0.56 0.24 1.3 0.041 2.7 0.83 0.22
##
## lower alpha upper 95% confidence boundaries
## 0.46 0.54 0.62
##
## Reliability if an item is dropped:
## raw_alpha std.alpha G6(smc) average_r S/N alpha se var.r med.r
## P1 0.72 0.73 0.65 0.47 2.66 0.026 0.0077 0.474
## P5 0.28 0.30 0.28 0.13 0.43 0.067 0.0487 0.022
## P7 0.39 0.42 0.43 0.20 0.73 0.059 0.0980 0.058
## P8 0.38 0.40 0.38 0.18 0.68 0.059 0.0633 0.058
##
## Item statistics
## n raw.r std.r r.cor r.drop mean sd
## P1 352 0.45 0.40 0.033 0.022 2.9 1.4
## P5 352 0.77 0.79 0.749 0.547 2.8 1.2
## P7 352 0.70 0.71 0.567 0.410 2.7 1.3
## P8 352 0.71 0.73 0.628 0.424 2.5 1.3
##
## Non missing response frequency for each item
## 1 2 3 4 5 miss
## P1 0.23 0.21 0.20 0.19 0.17 0
## P5 0.12 0.31 0.24 0.25 0.07 0
## P7 0.23 0.27 0.19 0.24 0.07 0
## P8 0.26 0.30 0.19 0.18 0.08 0
print("función psicológica")
## [1] "función psicológica"
psych::alpha(select(afc1, P2, P3, P9))
##
## Reliability analysis
## Call: psych::alpha(x = select(afc1, P2, P3, P9))
##
## raw_alpha std.alpha G6(smc) average_r S/N ase mean sd median_r
## 0.67 0.67 0.61 0.41 2 0.03 2.7 0.78 0.36
##
## lower alpha upper 95% confidence boundaries
## 0.61 0.67 0.73
##
## Reliability if an item is dropped:
## raw_alpha std.alpha G6(smc) average_r S/N alpha se var.r med.r
## P2 0.52 0.53 0.36 0.36 1.12 0.050 NA 0.36
## P3 0.73 0.74 0.58 0.58 2.78 0.028 NA 0.58
## P9 0.43 0.43 0.28 0.28 0.76 0.060 NA 0.28
##
## Item statistics
## n raw.r std.r r.cor r.drop mean sd
## P2 352 0.79 0.80 0.66 0.53 2.8 0.93
## P3 352 0.69 0.70 0.42 0.36 2.8 0.97
## P9 352 0.85 0.83 0.73 0.59 2.6 1.11
##
## Non missing response frequency for each item
## 1 2 3 4 5 miss
## P2 0.09 0.28 0.42 0.18 0.03 0
## P3 0.07 0.33 0.39 0.16 0.05 0
## P9 0.17 0.30 0.29 0.19 0.05 0
print("Medio ambiente")
## [1] "Medio ambiente"
psych::alpha(select(afc1, P4, P6, P10))
##
## Reliability analysis
## Call: psych::alpha(x = select(afc1, P4, P6, P10))
##
## raw_alpha std.alpha G6(smc) average_r S/N ase mean sd median_r
## 0.65 0.65 0.56 0.39 1.9 0.032 3.2 0.92 0.41
##
## lower alpha upper 95% confidence boundaries
## 0.59 0.65 0.71
##
## Reliability if an item is dropped:
## raw_alpha std.alpha G6(smc) average_r S/N alpha se var.r med.r
## P4 0.59 0.59 0.41 0.41 1.4 0.044 NA 0.41
## P6 0.50 0.51 0.34 0.34 1.0 0.052 NA 0.34
## P10 0.57 0.58 0.41 0.41 1.4 0.045 NA 0.41
##
## Item statistics
## n raw.r std.r r.cor r.drop mean sd
## P4 352 0.72 0.76 0.55 0.44 3.0 1.1
## P6 352 0.81 0.79 0.62 0.50 3.2 1.3
## P10 352 0.77 0.76 0.56 0.45 3.4 1.2
##
## Non missing response frequency for each item
## 1 2 3 4 5 miss
## P4 0.10 0.18 0.41 0.24 0.08 0
## P6 0.13 0.16 0.23 0.29 0.19 0
## P10 0.09 0.18 0.21 0.33 0.19 0
semTools::reliability(cfa, return.total=T)
## For constructs with categorical indicators, Zumbo et al.`s (2007) "ordinal alpha" is calculated in addition to the standard alpha, which treats ordinal variables as numeric. See Chalmers (2018) for a critique of "alpha.ord" and the response by Zumbo & Kroc (2019). Likewise, average variance extracted is calculated from polychoric (polyserial) not Pearson correlations.
## Física Psicológica Ambiente total
## alpha 0.5367030 0.6729987 0.6522358 0.7999747
## alpha.ord 0.5960894 0.7080181 0.6979352 0.8364737
## omega 0.6107369 0.7148563 0.6601140 0.8285658
## omega2 0.6107369 0.7148563 0.6601140 0.8285658
## omega3 0.6241214 0.7440310 0.6592619 0.8336655
## avevar 0.4008740 0.5027300 0.4400250 0.4431761
¿Qué piensa de este alfa y de este Omega? ¿Cómo los interpreta? ¿Eliminaría algún item? Compárelos con los obtenidos en el punto anterior.
Compare los alfas y omegas obtenidos en los puntos 3.2. y 3.3. ¿qué piensa de estos? ¿por qué son diferentes? ¿qué es la tau-equivalencia y por qué influye sobre los resultados? ¿por qué realizamos análisis de consistencia interna con alfa de Cronbach por dimensión?