superponer - ¿Qué significa la fórmula R y ~ 1?
superponer graficas en r (3)
En general, tal fórmula describe la relación entre variables dependientes e independientes en forma de un modelo lineal. El lado izquierdo son las variables dependientes, el lado derecho es el independiente. Las variables independientes se utilizan para calcular el componente de tendencia del modelo lineal, luego se asume que los residuos tienen algún tipo de distribución. Cuando los independientes son iguales a uno ~ 1
, el componente de tendencia es un valor único, por ejemplo, el valor medio de los datos, es decir, el modelo lineal solo tiene una intersección.
Estaba leyendo la documentación sobre R Formula , y tratando de encontrar la manera de trabajar con depmix (del paquete depmixS4) .
Ahora, en la documentación de depmixS4, la fórmula de muestra tiende a ser algo así como y ~ 1
. Para casos simples como y ~ x
, está definiendo una relación entre la entrada x y la salida y, así que entiendo que es similar a y = a * x + b
, donde a
es la pendiente, y b
es la intersección.
Si volvemos a y ~ 1
, la fórmula me está echando. ¿Es equivalente a y = 1
(una línea horizontal en y = 1)?
Para agregar un poco de contexto, si observa la documentación de depmixs4, hay un ejemplo a continuación.
depmix(list(rt~1,corr~1),data=speed,nstates=2,family=list(gaussian(),multinomial()))
Creo que, en general, la fórmula que termina con ~ 1
me confunde. ¿Puede alguno explicar lo que significa ~ 1
o y ~ 1
? ¡Gracias un montón!
Muchos de los operadores utilizados en las fórmulas modelo (asterix, plus, caret) en R tienen un significado específico para el modelo y este es uno de ellos: el símbolo ''uno'' indica una intersección.
En otras palabras, es el valor que se espera que tenga la variable dependiente cuando las variables independientes son cero o no tienen influencia. (Para usar el significado matemático más común de los términos del modelo, envuélvelos en I()
). Las intercepciones se suelen suponer, por lo que es más común verlas en el contexto de la declaración explícita de un modelo sin una intercepción.
Aquí hay dos formas de especificar el mismo modelo para un modelo de regresión lineal de y en x. El primero tiene un término de intercepción implícito, y el segundo un término explícito:
y ~ x
y ~ 1 + x
Aquí hay formas de dar una regresión lineal de y en x a través del origen (es decir, sin un término de intersección):
y ~ 0 + x
y ~ -1 + x
y ~ x - 1
En el caso específico que menciona (y ~ 1), y no está siendo pronosticado por ninguna otra variable, por lo que la predicción natural es la media de y, como dijo Paul Hiemstra:
> data(city)
> r <- lm(x~1, data=city)
> r
Call:
lm(formula = x ~ 1, data = city)
Coefficients:
(Intercept)
97.3
> mean(city$x)
[1] 97.3
Y eliminar la intersección con un -1
te deja sin nada:
> r <- lm(x ~ -1, data=city)
> r
Call:
lm(formula = x ~ -1, data = city)
No coefficients
formula()
es una función para extraer fórmulas de objetos y su archivo de ayuda no es el mejor lugar para leer sobre cómo especificar fórmulas de modelos en R. Sugiero que consulte esta explicación o el Capítulo 11 de Una introducción a R.
Si su modelo fuera de la forma y ~ x1 + x2
esto (en términos generales) representa:
y = β0 + β1(x1) + β2(x2)
Which is of course the same as
y = β0(1) + β1(x1) + β2(x2)
Hay un +1
implícito en la fórmula anterior. Entonces, la fórmula anterior es y ~ 1 + x1 + x2
Podríamos tener una fórmula muy simple, por la cual y no depende de ninguna otra variable. Esta es la fórmula a la que se refiere, y ~ 1
que aproximadamente equivaldría a
y = β0(1) = β0
Como @Paul señala, cuando resuelves el modelo simple, obtienes β0 = mean (y)
Aquí hay un ejemplo
# Let''s make a small sample data frame
dat <- data.frame(y= (-2):3, x=3:8)
# Create the linear model as above
simpleModel <- lm(y ~ 1, data=dat)
## COMPARE THE COEFFICIENTS OF THE MODEL TO THE MEAN(y)
simpleModel$coef
# (Intercept)
# 0.5
mean(dat$y)
# [1] 0.5