Hola buenas, estoy trabajando con el package lme4 y la función lmer. Querria hallar los coeficientes beta estandar, pero como no hay ninguna función que lo haga automáticamente, que yo sepa (lo he buscado). Lo que me extraña es la diferencia de las R^2, alguien sabe porque pasa esto. ¿No deberían ser parecidas? ¿Como se pueden hallar los beta estandarizados con lmer? Os paso lo que he intentado. set.seed(10) # Fijo la semilla para que todos obtengamos lo mismo y <- 1:20 # Variable a predecir x <- c(2*y[1:5], 3*y[6:10], 1.5*y[11:15], 9*y[16:20] ) y <- y + rnorm(20) # Le doy ruido a la y, por eso del realismo Suj <- c(rep(1,5), rep(2,5) , rep(3,5) , rep(4,5)) Suj <- rep( c(1:4) , 5) cbind(y,x,Suj) # Para que veais los datos generados. Datos <- cbind(y,x,Suj) Datos <- as.data.frame(Datos) reg1 <-lm(y ~ x ) summary(reg1) # install.packages("yhat") # Instalalo si no lo tienes yhat::regr(lm(y ~ x )) # Para estos modelos existe una manera de ver los coeficientes # beta = 0.7809658 y R^2 = 0.5852 # La función yhat es los mismo que hacer esto reg2 <- lm(scale(y) ~ -1 +scale(x)) # Definición pura de los beta regresores estandarizados summary(reg2) # beta =0.781 y R^2 = 0.5894 # Con lmer no existe, que yo sepa un equivalente a yhat::regr y tampoco fuciona la definción. Tiene su logica # install.packages("lme4") # Instalalo si no lo tienes reg1me <- lmer(Datos$y ~ Datos$x + (1|Datos$Suj), Datos) reg1me # install.packages("MuMIn") # Instalalo si no lo tienes MuMIn::r.squaredLR(reg1me) # Calculo la R^2 = 0.495526 # Mismo truco reg2me <- lmer(scale(Datos$y) ~ -1 + scale(Datos$x) + (1|Datos$Suj), Datos) reg2me MuMIn::r.squaredLR(reg2me) # Calculo la R^2 = 0.6045464 [[alternative HTML version deleted]]
¿es esto lo que buscas? Datos2 <- as.data.frame(scale(Datos)) reg_1me <- lmer(Datos2$y ~ Datos2$x + (1|Datos2$Suj), Datos2) reg_1me Daniel Merino El día 30 de noviembre de 2012 15:01, Javier Villacampa González <javier.villacampa.gonzalez en gmail.com> escribió:> Hola buenas, estoy trabajando con el package lme4 y la función lmer. > Querria hallar los coeficientes beta estandar, pero como no hay ninguna > función que lo haga automáticamente, que yo sepa (lo he buscado). > > Lo que me extraña es la diferencia de las R^2, alguien sabe porque pasa > esto. > > ¿No deberían ser parecidas? > ¿Como se pueden hallar los beta estandarizados con lmer? > > > Os paso lo que he intentado. > > > set.seed(10) # Fijo la > semilla para que todos obtengamos lo mismo > > y <- 1:20 # Variable a > predecir > x <- c(2*y[1:5], 3*y[6:10], 1.5*y[11:15], 9*y[16:20] ) > y <- y + rnorm(20) # Le doy > ruido a la y, por eso del realismo > > Suj <- c(rep(1,5), rep(2,5) , rep(3,5) , rep(4,5)) > Suj <- rep( c(1:4) , 5) > > cbind(y,x,Suj) # Para que veais los datos generados. > Datos <- cbind(y,x,Suj) > Datos <- as.data.frame(Datos) > > reg1 <-lm(y ~ x ) > summary(reg1) > > # install.packages("yhat") # Instalalo > si no lo tienes > yhat::regr(lm(y ~ x )) # Para estos > modelos existe una manera de ver los coeficientes > > # beta = 0.7809658 y R^2 = 0.5852 > > # La función yhat es los mismo que hacer esto > reg2 <- lm(scale(y) ~ -1 +scale(x)) # Definición > pura de los beta regresores estandarizados > summary(reg2) > # beta =0.781 y R^2 = 0.5894 > > # Con lmer no existe, que yo sepa un equivalente a yhat::regr y tampoco > fuciona la definción. Tiene su logica > # install.packages("lme4") # Instalalo > si no lo tienes > reg1me <- lmer(Datos$y ~ Datos$x + (1|Datos$Suj), Datos) > reg1me > > # install.packages("MuMIn") # Instalalo > si no lo tienes > MuMIn::r.squaredLR(reg1me) # Calculo la > R^2 = 0.495526 > > # Mismo truco > reg2me <- lmer(scale(Datos$y) ~ -1 + scale(Datos$x) + (1|Datos$Suj), Datos) > reg2me > MuMIn::r.squaredLR(reg2me) # Calculo la > R^2 = 0.6045464 > > [[alternative HTML version deleted]] > > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es >-- Daniel
Si basicamente sí, aunque habría que quitar el intercepto. Lo que me extrañaba era el tema de las R^2 pero ya lo he mirado. Datos2 <- as.data.frame(scale(Datos)) reg_1me <- lmer(Datos2$y ~ -1 + Datos2$x + (1|Datos2$Suj), Datos2) reg_1me El 2 de diciembre de 2012 16:29, daniel <daniel319@gmail.com> escribió:> ¿es esto lo que buscas? > > Datos2 <- as.data.frame(scale(Datos)) > reg_1me <- lmer(Datos2$y ~ Datos2$x + (1|Datos2$Suj), Datos2) > reg_1me > > Daniel Merino > > > El día 30 de noviembre de 2012 15:01, Javier Villacampa González > <javier.villacampa.gonzalez@gmail.com> escribió: > > Hola buenas, estoy trabajando con el package lme4 y la función lmer. > > Querria hallar los coeficientes beta estandar, pero como no hay ninguna > > función que lo haga automáticamente, que yo sepa (lo he buscado). > > > > Lo que me extraña es la diferencia de las R^2, alguien sabe porque pasa > > esto. > > > > ¿No deberían ser parecidas? > > ¿Como se pueden hallar los beta estandarizados con lmer? > > > > > > Os paso lo que he intentado. > > > > > > set.seed(10) # Fijo la > > semilla para que todos obtengamos lo mismo > > > > y <- 1:20 # > Variable a > > predecir > > x <- c(2*y[1:5], 3*y[6:10], 1.5*y[11:15], 9*y[16:20] ) > > y <- y + rnorm(20) # Le doy > > ruido a la y, por eso del realismo > > > > Suj <- c(rep(1,5), rep(2,5) , rep(3,5) , rep(4,5)) > > Suj <- rep( c(1:4) , 5) > > > > cbind(y,x,Suj) # Para que veais los datos generados. > > Datos <- cbind(y,x,Suj) > > Datos <- as.data.frame(Datos) > > > > reg1 <-lm(y ~ x ) > > summary(reg1) > > > > # install.packages("yhat") # > Instalalo > > si no lo tienes > > yhat::regr(lm(y ~ x )) # Para > estos > > modelos existe una manera de ver los coeficientes > > > > # beta = 0.7809658 y R^2 = 0.5852 > > > > # La función yhat es los mismo que hacer esto > > reg2 <- lm(scale(y) ~ -1 +scale(x)) # > Definición > > pura de los beta regresores estandarizados > > summary(reg2) > > # beta =0.781 y R^2 = 0.5894 > > > > # Con lmer no existe, que yo sepa un equivalente a yhat::regr y tampoco > > fuciona la definción. Tiene su logica > > # install.packages("lme4") # > Instalalo > > si no lo tienes > > reg1me <- lmer(Datos$y ~ Datos$x + (1|Datos$Suj), Datos) > > reg1me > > > > # install.packages("MuMIn") # Instalalo > > si no lo tienes > > MuMIn::r.squaredLR(reg1me) # Calculo > la > > R^2 = 0.495526 > > > > # Mismo truco > > reg2me <- lmer(scale(Datos$y) ~ -1 + scale(Datos$x) + (1|Datos$Suj), > Datos) > > reg2me > > MuMIn::r.squaredLR(reg2me) # Calculo > la > > R^2 = 0.6045464 > > > > [[alternative HTML version deleted]] > > > > > > _______________________________________________ > > R-help-es mailing list > > R-help-es@r-project.org > > https://stat.ethz.ch/mailman/listinfo/r-help-es > > > > > > -- > Daniel >[[alternative HTML version deleted]]