studio robusta regresiĆ³n regresion predecir polinomial paquetes multiple modelo lineal estimada cuadratica r regression lm beta standardized

robusta - extrayendo coeficientes estandarizados de lm en R



regresion robusta en r (2)

Hay una función de conveniencia en el paquete QuantPsyc para eso, llamada lm.beta . Sin embargo, creo que la forma más sencilla es estandarizar las variables. Los coeficientes serán automáticamente los coeficientes "beta" estandarizados (es decir, los coeficientes en términos de desviaciones estándar).

Por ejemplo,

lm(scale(your.y) ~ scale(your.x), data=your.Data)

Te dará el coeficiente estandarizado.

¿Son realmente los mismos? Lo siguiente ilustra que ambos son idénticos:

library("QuantPsyc") mod <- lm(weight ~ height, data=women) coef_lmbeta <- lm.beta(mod) coef_lmbeta > height 0.9955 mod2 <- lm(scale(weight) ~ scale(height), data=women) coef_scale <- coef(mod2)[2] coef_scale > scale(height) 0.9955 all.equal(coef_lmbeta, coef_scale, check.attributes=F) [1] TRUE

lo que demuestra que ambos son idénticos, como deberían ser.

¿Cómo evitar nombres de variables torpes? En caso de que no quiera lidiar con estos nombres de variables torpes, como la scale(height) , una opción es estandarizar las variables fuera de la llamada lm en el propio conjunto de datos. Por ejemplo,

women2 <- lapply(women, scale) # standardizes all variables mod3 <- lm(weight ~ height, data=women2) coef_alt <- coef(mod3)[2] coef_alt > height 0.9955 all.equal(coef_lmbeta, coef_alt) [1] TRUE

¿Cómo puedo estandarizar múltiples variables convenientemente? En el caso probable de que no desee estandarizar todas las variables en su conjunto de datos, podría seleccionar todo lo que ocurre en su fórmula. Por ejemplo, refiriéndose ahora al conjunto de mtcars mtcars (ya que las women solo contienen height y weight ):

Digamos que el siguiente es el modelo de regresión que quiero estimar:

modelformula <- mpg ~ cyl + disp + hp + drat + qsec

Podemos usar el hecho de que all.vars me da un vector de los nombres de las variables.

all.vars(modelformula) [1] "mpg" "cyl" "disp" "hp" "drat" "qsec"

Podemos usar esto para subcontratar el conjunto de datos en consecuencia. Por ejemplo,

mycars <- lapply(mtcars[, all.vars(modelformula)], scale)

Me dará un conjunto de datos en el que se han estandarizado todas las variables. Las regresiones lineales que usan mycars ahora darán betas estandarizadas. ¡Por favor, asegúrese de que la estandarización de todas estas variables tenga sentido, sin embargo!

Mis disculpas por la pregunta tonta ... pero parece que no puedo encontrar una solución simple

Quiero extraer los coeficientes estandarizados de un modelo lineal ajustado (en R), debe haber una forma o función simple que lo haga. me puedes decir que es

EDITAR (siguiendo algunos de los comentarios a continuación): Probablemente debería haber proporcionado más información contextual sobre mi pregunta. Estaba enseñando un taller introductorio de R para un grupo de psicólogos. Para ellos, un modelo lineal sin la capacidad de obtener coeficientes estandarizados es como si no ejecutara el modelo en absoluto (bueno, esto es un poco exagerado, pero se entiende el punto). Cuando hicimos algunas regresiones, esta fue su primera pregunta, que (mi mala) no anticipé (no soy psicóloga). Por supuesto, puedo programarlo yo mismo y, por supuesto, puedo buscar paquetes que lo hagan por mí. Pero al mismo tiempo, creo que esta es una característica básica y obligatoria de los modelos lineales, que en el momento creo que debería haber una función básica que lo haga sin necesidad de instalar más y más paquetes ( que se percibe como una dificultad para los principiantes). Así que pregunté (y esta también fue una oportunidad para mostrarles cómo obtener ayuda cuando la necesitan).

Mis disculpas por aquellos que piensan que hice una pregunta estúpida, y muchas gracias por los que se tomaron el tiempo de responderla.


solo use los nombres de los colonos (datos) con lapply o sapply como: lapply (datos [, colnames (datos)], escala)