Me gustaría probar la diferencia en la respuesta de dos variables a un predictor. Aquí hay un ejemplo mínimo reproducible.
library(nlme)
## gls is used in the application; lm would suffice for this example
m.set <- gls(Sepal.Length ~ Petal.Width, data = iris,
subset = Species == "setosa")
m.vir <- gls(Sepal.Length ~ Petal.Width, data = iris,
subset = Species == "virginica")
m.ver <- gls(Sepal.Length ~ Petal.Width, data = iris,
subset = Species == "versicolor")
Puedo ver que los coeficientes de la pendiente son diferentes:
m.set$coefficients
(Intercept) Petal.Width
4.7771775 0.9301727
m.vir$coefficients
(Intercept) Petal.Width
5.2694172 0.6508306
m.ver$coefficients
(Intercept) Petal.Width
4.044640 1.426365
Tengo tres preguntas:
- ¿Cómo puedo probar la diferencia entre pendientes?
- ¿Cómo puedo probar la diferencia entre las variaciones residuales?
- ¿Cuál es una manera simple y efectiva de presentar estas comparaciones?
Una pregunta relacionada, Método para comparar el coeficiente variable en dos modelos de regresión , sugiere volver a ejecutar el modelo con una variable ficticia para diferenciar las pendientes, ¿hay opciones que permitan el uso de conjuntos de datos independientes?
Respuestas:
¿Cómo puedo probar la diferencia entre pendientes?
Incluya un maniquí para especies, deje que interactúe con y vea si este maniquí es significativo. Supongamos que es la longitud del sépalo y el ancho del pedal y son las variables ficticias para las tres especies. El comparar el modeloPi Li Pi S1,S2,S3
con el modelo que permite que el efecto de sea diferente para cada especie:Pi
Los estimadores GLS son MLE y el primer modelo es un submodelo en el segundo, por lo que puede usar la prueba de razón de probabilidad aquí. Las probabilidades se pueden extraer utilizando la4 4
logLik
función y los grados de libertad para la prueba serán ya que ha eliminado parámetros para llegar al submodelo.¿Cuál es una manera simple y efectiva de presentar la comparación?
Creo que la forma más atractiva sería trazar las líneas de regresión para cada especie en todos los mismos ejes, tal vez con barras de error basadas en los errores estándar. Esto haría que la diferencia (o no diferencia) entre las especies y su relación con muy evidente.Pi
Editar: noté que se agregó otra pregunta al cuerpo. Entonces, estoy agregando una respuesta a eso:
¿Cómo puedo probar la diferencia entre las variaciones residuales?
Para esto, deberá estratificar el conjunto de datos y ajustar modelos separados, ya que el modelo basado en la interacción que sugerí limitará la varianza residual para que sea la misma en cada grupo. Si se ajusta a modelos separados, esta restricción desaparece. En ese caso, aún puede usar la prueba de razón de probabilidad (la probabilidad para el modelo más grande ahora se calcula sumando las probabilidades de los tres modelos separados). El modelo "nulo" depende de con qué quiere compararlo
si solo desea probar la varianza, dejando los efectos principales, entonces el modelo "nulo" debería ser el modelo con las interacciones que he escrito anteriormente. Los grados de libertad para la prueba son entonces .2
Si desea probar la varianza conjuntamente con los coeficientes, entonces el modelo nulo debería ser el primer modelo que he escrito anteriormente. Los grados de libertad para la prueba son entonces .6
fuente
gls(Sepal.Length ~ species:Petal.Width, data = iris)
species
gls(Sepal.Length ~ species*Petal.Width, data=iris)
gls
modelo pero permitiendo diferentes variaciones residuales para cada especie con la opciónweights=varIdent(form=~1|Species)
(con respecto a la segunda pregunta).Para responder estas preguntas con el código R, use lo siguiente:
1. ¿Cómo puedo probar la diferencia entre pendientes?
Respuesta: Examine el valor p de ANOVA a partir de la interacción de Petal.Width por Species, luego compare las pendientes usando lsmeans :: lstrends, de la siguiente manera.
2. ¿Cómo puedo probar la diferencia entre las variaciones residuales?
Si entiendo la pregunta, puede comparar las correlaciones de Pearson con una transformación de Fisher, también llamada "Fisher de r a z", de la siguiente manera.
3. ¿Cuál es una manera simple y efectiva de presentar estas comparaciones?
"Utilizamos la regresión lineal para comparar la relación de la longitud del sepal con el ancho del pétalo para cada especie. No encontramos una interacción significativa en las relaciones de la longitud del sepal con el ancho del pétalo para I. Setosa (B = 0.9), I. Versicolor (B = 1.4), ni I. Virginica (B = 0.6); F (2, 144) = 1.6, p = 0.19. Una comparación de Fisher de z a z indicó que la correlación de Pearson para I. Setosa (r = 0.28) fue significativamente menor (p = 0.02) que I. Versicolor (r = 0.55). Similarmente, la correlación para I. Virginica (r = 0.28) fue significativamente más débil (p = 0.02) que la observada para I. Versicolor".
Finalmente, ¡visualiza siempre tus resultados!
fuente
Estoy de acuerdo con la sugerencia anterior. Debe ajustar un modelo de regresión múltiple con una variable ficticia para cada conjunto de datos. Esto le permitirá probar si las intersecciones son diferentes. Si también desea saber si las pendientes difieren, también debe incluir las interacciones entre los dummies y la variable en cuestión. No hay problema con el hecho de que los datos son independientes. Tenga en cuenta que si ambas son especies independientes y (por ejemplo) diferentes, entonces no podrá saber si la diferencia que encuentra se debe a las diferentes especies o los diferentes conjuntos de datos, ya que están perfectamente confundidos. Sin embargo, no hay prueba / tarjeta para salir de la cárcel que lo ayudará a resolver ese problema sin reunir una nueva muestra y ejecutar su estudio nuevamente.
fuente