9 votos

Algoritmos estándar para hacer jerárquico de regresión lineal?

Existen algoritmos estándar (en oposición a los programas) para hacer jerárquico de regresión lineal? Hacer que la gente normalmente MCMC o hay más especializados, tal vez parcialmente cerrados forma, los algoritmos?

10voto

Berek Bryan Puntos 349

Hay Harvey Goldstein iterativo generalizada de mínimos cuadrados (IGLS) para el algoritmo de uno, y también es menor modificación, restringido iterativo generalizada de mínimos cuadrados (RIGLS), que da imparcial de las estimaciones de la variación de parámetros.

Estos algoritmos son todavía iterativo, por lo que no forma cerrada, pero son computacionalmente más simple que MCMC o de máxima verosimilitud. Usted acaba de recorrer hasta que los parámetros convergen.

  • Goldstein, H. Multinivel Lineales Mixtos-Modelo De Análisis Mediante Iterativo Generalizada De Los Mínimos Cuadrados. Biometrika 1986; 73(1):43-56. doi: 10.1093/biomet/73.1.43

  • Goldstein, H. Restringido Imparcial Iterativo Generalizada De Mínimos Cuadrados De La Estimación. Biometrika 1989; 76(3):622-623. doi: 10.1093/biomet/76.3.622

Para obtener más información sobre este y alternativas, véase por ejemplo:

4voto

Axl Puntos 141

El paquete lme4 en R utiliza de forma iterativa reponderadas de los mínimos cuadrados (NIÑAS) y penalizado de forma iterativa reponderadas de los mínimos cuadrados (PIRLS). Ver el PDF aquí:

http://rss.acs.unt.edu/Rdoc/library/lme4/doc/index.html

2voto

paul Puntos 181

Otra buena fuente de información para los "algoritmos de computación" para HLM (de nuevo en la medida en que se consideran como similares especificaciones de LMM) sería:

  • McCulloch, C., Searle, S., Neuhaus, J. (2008). Lineales generalizados y Modelos Mixtos. 2ª Edición. Wiley. Capítulo 14 - La Informática.

Los algoritmos que lista para el cómputo de LMM incluyen:

  • Algoritmo EM
  • Newton Raphson algoritmo

Los algoritmos que lista para GLMM incluyen:

  • Numérico de cuadratura (GH cuadratura)
  • Algoritmo EM
  • Algoritmos MCMC (como usted menciona)
  • Estocástico de los algoritmos de aproximación
  • Simulado de máxima verosimilitud

Otros algoritmos para GLMM que se sugieren son:

  • Penalizado cuasi-verosimilitud métodos
  • Laplace aproximaciones
  • PQL/Laplace con bootstrap corrección del sesgo de

0voto

paul Puntos 181

Si usted considera que la reunión de alto nivel para ser un tipo de modelo lineal mixto, usted podría considerar el algoritmo EM. Página 22-23 de las siguientes notas indican cómo implementar el clásico algoritmo EM para el modelo mixto:

http://www.stat.ucla.edu/~yuille/cursos/stat153/emtutorial.pdf

###########################################################
#     Classical EM algorithm for Linear  Mixed Model      #
###########################################################
em.mixed <- function(y, x, z, beta, var0, var1,maxiter=2000,tolerance = 1e-0010)
    {
    time <-proc.time()
    n <- nrow(y)
    q1 <- nrow(z)
    conv <- 1
    L0 <- loglike(y, x, z, beta, var0, var1)
    i<-0
    cat("  Iter.       sigma0                 sigma1        Likelihood",fill=T)
    repeat {
            if(i>maxiter) {conv<-0
                    break}
    V <- c(var1) * z %*% t(z) + c(var0) * diag(n)
    Vinv <- solve(V)
    xb <- x %*% beta
    resid <- (y-xb)
    temp1 <- Vinv %*% resid
    s0 <- c(var0)^2 * t(temp1)%*%temp1 + c(var0) * n - c(var0)^2 * tr(Vinv)
    s1 <- c(var1)^2 * t(temp1)%*%z%*%t(z)%*%temp1+ c(var1)*q1 -
                                                c(var1)^2 *tr(t(z)%*%Vinv%*%z)
    w <- xb + c(var0) * temp1
    var0 <- s0/n
    var1 <- s1/q1
    beta <- ginverse( t(x) %*% x) %*% t(x)%*% w
    L1 <- loglike(y, x, z, beta, var0, var1)
    if(L1 < L0) { print("log-likelihood must increase, llikel <llikeO, break.")
                             conv <- 0
break
}
    i <- i + 1
    cat("  ", i,"  ",var0,"  ",var1,"  ",L1,fill=T)
    if(abs(L1 - L0) < tolerance) {break}  #check for convergence
    L0 <- L1
    }
list(beta=beta, var0=var0,var1=var1,Loglikelihood=L0)
}

#########################################################
#  loglike calculates the LogLikelihood for Mixed Model #
#########################################################
loglike<- function(y, x, z, beta, var0, var1)
}
{
n<- nrow(y)
V <- c(var1) * z %*% t(z) + c(var0) * diag(n)
Vinv <- ginverse(V)
xb <- x %*% beta
resid <- (y-xb)
temp1 <- Vinv %*% resid
(-.5)*( log(det(V)) + t(resid) %*% temp1 )
}

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X