[R-es] GFI en modelos estructurales con lavaan
José Luis Cañadas
canadasreche en gmail.com
Jue Mayo 3 11:12:38 CEST 2012
Hola.
Añado algunas funciones más para calcular el AGFI ,GFI y PNFI, por si le
sirven a alguien. (tiene que estar cargado el paquete lavaan)
# bondad de ajuste para modelos lavaan
GFI <- function (modelo) {
# fitted matrix
matriz.sigma <- fitted(modelo)$cov
# inverse
matriz.sigma.inv <- solve(matriz.sigma)
#observed matrix
matriz.muestral <- modelo en Sample@cov[[1]]
# auxiliary matrix
A <- matriz.sigma.inv %*% (matriz.muestral - matriz.sigma)
A <- A %*% A
B <- matriz.sigma.inv %*% matriz.muestral
B <- B %*% B
GFI <- 1- sum(diag(A))/sum(diag(B))
return(GFI)
}
AGFI <- function(modelo){
n <- modelo en Model@nvar
df <- modelo en Fit@test[[1]]$df
AGFI <- 1 - n * (n+1) / (2*df) * (1-GFI(modelo))
AGFI
}
PGFI <- function(modelo){
df0<-modelo en Model@nvar*(modelo en Model@nvar-1)/2
dfmin <- modelo en Fit@test[[1]]$df
pgfi <- dfmin/df0*GFI(modelo)
}
PNFI <- function(modelo){
df0<-modelo en Model@nvar*(modelo en Model@nvar-1)/2
dfmin <- modelo en Fit@test[[1]]$df
f0 <- fitMeasures(modelo,'baseline.chisq')
fmin <- fitMeasures(modelo,'chisq')
pnfi <- dfmin/df0*(f0-fmin)/f0
pnfi
}
medidasAjuste <- function(modelo){
medidas <- fitMeasures(modelo,'all')
medidas['gfi'] <- GFI(modelo)
medidas['agfi'] <- AGFI(modelo)
medidas['pgfi'] <- PGFI(modelo)
medidas['pnfi'] <- PNFI(modelo)
medidas
}
Más información sobre la lista de distribución R-help-es