Luis Lizasoain
([email protected])
Department of Research Methods in Education
University of the Basque Country
Syntax for Computing Random Effect Estimates in SPSS
Adaptación y traducción al español del archivo de sintaxis SPSS
This program has been developed by Curran-Bauer Analytics, the original
version is available at http://curranbauer.org/resources/spssrandom/ and it has
been adapted and translated by Luis Lizasoain with the permission of the
authors.
Este programa ha sido elaborado por Curran-Bauer Analytics, el original está
disponible en http://curranbauer.org/resources/spssrandom/ y ha sido traducido
y adaptado por Luis Lizasoain con permiso de los autores.
1
ARCHIVO DE SINTAXIS:
*This program has been developed by Curran-Bauer Analytics, the original version is
available at http://curranbauer.org/resources/spssrandom/ and it has been adapted and
translated by Luis Lizasoain with the permission of the authors.
*Este programa ha sido elaborado por Curran-Bauer Analytics, el original está
disponible en http://curranbauer.org/resources/spssrandom/ y ha sido traducido y
adaptado por Luis Lizasoain con permiso de los autores.
* Codificación: UTF-8.
* Relación de nombres genéricos de variables o de listas genéricas de variables que
aparecen en el programa. Han de ser editadas por el usuario introduciendo en el
programa las que proceda según la estructura de datos y variables a analizar:
*VARDEP nombre de la variable dependiente.
* COVARIABLES lista de TODAS las covariables incluidas en el modelo.
* COVARIABLES1 lista de las covariables CON INTERCEPTOS ALEATORIOS.
* COVARIABLES2 lista de las covariables CON PENDIENTES ALEATORIAS.
* IDENTIFN2 variable identificadora de las unidades de nivel 2, por ejemplo
ESCUELA.
* NUMERO DE UNIDADES DE N2 es un número entero (número de unidades del
nivel 2, número de escuelas).
* valorifilaj valor i de la fila j de la matriz de varianzas-covarianzas.
* valorsigma2 valor de la varianza de los residuos de nivel 1.
* Siempre ha de usarse el punto como separador decimal.
*Especificación del modelo según sintaxis de SPSS.
MIXED VARDEP WITH COVARIABLES
/FIXED= COVARIABLES1
/RANDOM=INTERCEPT COVARIABLES2 | SUBJECT(IDENTIFN2) COVTYPE(UN)
/PRINT=SOLUTION TESTCOV G
/SAVE=FIXPRED.
*Clasifica los casos según el identificador del nivel 2.
SORT CASES BY IDENTIFN2 (A).
*Fija el máximo número de ciclos (MXLOOP) al número de unidades del nivel 2
(número de centros o escuelas, por ejemplo).
SET MXLOOP = NUMERO DE UNIDADES DE N2.
MATRIX.
*Introducir el número de unidades de nivel 2 (número de escuelas).
COMPUTE N = NUMERO DE UNIDADES DE N2.
*Introducir los valores de la matriz de varianzas-covarianzas para los efectos aleatorios
del nivel 2 (Tau, en el listado de SPSS aparece como G).
* Los valores de cada fila se escriben separados por comas y los de cada fila se
separan por punto y coma.
COMPUTE Tau = {valor1fila2, valor2fila1; valor1fila2, valor2fila2 }.
2
*Introducir la varianza estimada de los residuos del nivel 1 (Sigma2).
COMPUTE Sigma2 = {valorsigma2}.
*Introducir el nombre de la variable que opera como identificador de las unidades de
nivel 2.
GET ID / VARIABLES IDENTIFN2.
*Introducir el nombre de la variable dependiente.
GET y / VARIABLES VARDEP.
*Establece el nombre de la variable para los valores estimados basados en los efectos
fijos, se obtiene con la opción FIXPRED del subcomando SAVE.
GET fixpred / VARIABLES FXPRED_1.
*Asignar etiquetas para la variables que conformarán el archivo agregado con los
residuos: identificador de las unidades de nivel 2 (por ejemplo Centro) y efectos
aleatorios (u0, u1, u2…).
*Poner tantos u1, u2… como sean necesarios según el modelo, como covariables con
pendientes aleatorias haya.
COMPUTE labels = {"Centro", "u0", "u1"}.
*SI EL MODELO ES SOLO DE INTERCEPTOS ALEATORIOS (SIN PENDIENTES
ALEATORIAS) HAY QUE INCLUIR LA SIGUIENTE LÍNEA; EN CASO CONTRARIO
MANTENERLA COMO COMENTARIO (NO QUITAR EL ASTERISCO INICIAL) PARA
QUE NO SE EJECUTE.
*Incluir pero no modificar la siguiente línea; construye el vector constante para el
intercepto aleatorio.
*COMPUTE Z= MAKE(NROW(y),1,1).
*SI EL MODELO TIENE PENDIENTES ALEATORIAS, ENTONCES HAY QUE
INCLUIR LAS SIGUIENTES LÍNEAS. EN CASO CONTRARIO PASARLAS A
COMENTARIOS PONIENDO AL INICIO EL ASTERISCO PARA QUE NO SE
EJECUTEN.
* Incluir a continuación la lista de todos los predictores con pendientes aleatorias en el
mismo orden en que aparecen en la matriz de covarianzas.
GET Zpred / VARIABLES COVARIABLES2.
*Incluir SIN MODIFICAR las dos líneas siguientes; generan la matriz de valores
predictores para los predictores con efectos aleatorios añadiendo la constante para el
intercepto.
COMPUTE Zconst = MAKE(NROW(y),1,1).
COMPUTE Z = {Zconst, Zpred}.
*A PARTIR DE AQUÍ VA EL RESTO DEL PROGRAMA QUE NO REQUIERE DE
NINGUNA MODIFICACIÓN POR PARTE DEL USUARIO.
*Determina el número de observaciones para cada unidad del nivel 2.
COMPUTE NObs = MAKE(N,1,1).
COMPUTE rec = 0.
LOOP #j = 1 to N.
COMPUTE rec = rec + 1.
COMPUTE i = 1.
LOOP.
COMPUTE rec = rec + 1.
COMPUTE i = i + 1.
3
COMPUTE NObs(#j) = NObs(#j) + 1.
END LOOP IF (id(rec) <> id(rec + 1)).
END LOOP.
COMPUTE firstobs = 1.
COMPUTE u = MAKE(N,NCOL(Z)+1,0).
LOOP #j = 1 to N.
COMPUTE lastobs = firstobs + nobs(#j) -1.
COMPUTE Zj = Z(firstobs:lastobs,:).
COMPUTE Rj = Ident(NObs(#j))*Sigma2.
COMPUTE Vj = Zj*Tau*T(Zj) + Rj.
COMPUTE uj = Tau*T(Zj)*INV(Vj)*(y(firstobs:lastobs) - fixpred(firstobs:lastobs)).
COMPUTE u(#j,:) = {ID(firstobs),T(uj)}.
COMPUTE firstobs = lastobs + 1.
END LOOP.
SAVE u / OUTFILE = * / NAMES labels .
END MATRIX.