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]]