Quiero realizar un análisis ANCOVA de los datos relacionados con la densidad de epífitas vegetales. Al principio, me gustaría saber si hay alguna diferencia en la densidad de plantas entre dos pendientes, una N y una S, pero tengo otros datos como la altitud, la apertura del dosel y la altura de la planta huésped. Sé que mi covariable deberían ser las dos pendientes (N y S). Construí este modelo que corre en R y aunque no tengo idea si funciona bien. También me gustaría saber cuál es la diferencia si uso el símbolo + o *.

model1 <- aov(density~slope+altitude+canopy+height) summary(model1) model1 

Comentarios

  • + calculará únicamente los efectos principales, * estimará las interacciones entre factores relacionados con *. Los marcos de ANCOVA suelen estimar solo un efecto principal del factor continuo, pero las interacciones entre todos los factores agrupados.

Respuesta

La herramienta básica para esto es lm; tenga en cuenta que aov es un contenedor para lm.

En particular, si tiene alguna variable de agrupación (factor), $ g $ y una covariable continua $ x $ , el modelo y ~ x + g encajaría en un modelo ANCOVA de efectos principales, mientras que y ~ x * g encajaría en un modelo que incluye interacción con la covariable. aov tomará las mismas fórmulas.

Preste especial atención a Note en la ayuda sobre aov.

En cuanto a + vs *, russellpierce prácticamente lo cubre, pero te recomiendo que consultes ?lm y ?formula y, sobre todo, la sección 11.1 del manual Una introducción a R que viene con R (o puede encontrarlo en línea si no ha averiguado cómo encontrarlo en su computadora; lo más fácil es encontrar el menú desplegable «Ayuda» en R o RStudio).

Comentarios

  • Supongamos que tengo dos factores de grupo $ g_1, g_2 $ y dos covariables $ x_1, x_2 $, siendo mi modelo $$ y_ {ij} = \ mu + \ alpha_i + \ eta_j + x_ {ij1} \ gamma_1 + x_ {ij2} \ gamma_2 + \ epsilon_ {ij} $$ ¿Y ~ g_1 + g_2 + x_1 + x_2 ¿hace el mismo truco? ¿Los valores F obtenidos contra x_1 y x_2 prueban $ \ gamma_1 = 0 $ y $ \ gamma_2 = 0 $ respectivamente?
  • No estoy seguro de cómo me perdí esto. Si. …. y si desea probar ambos a la vez, ajuste ambos con y sin ellos y pase los objetos lm ajustados a anova (usted ‘ pronto veré si los da en el orden incorrecto porque algunos SS serán negativos si lo hace)

Responder

Recomiendo obtener y leer Descubriendo estadísticas con R por campo. Tiene una buena sección sobre ANCOVA.

Para ejecutar ANCOVA en R, cargue los siguientes paquetes:

car compute.es effects ggplot2 multcomp pastecs WRS 

Si está usando lm o aov (yo uso aov) asegúrate de establecer los contrastes usando «contrasts «antes de realizar aov o lm. R usa contrastes no ortogonales por defecto que pueden estropear todo en un ANCOVA. Si desea establecer contrastes ortogonales use:

contrasts(dataname$factorvariable)=contr.poly(# of levels, i.e. 3) 

luego ejecute su modelo como

model.1=aov(dv~covariate+factorvariable, data=dataname) 

Para ver el modelo, utilice:

Anova(model.1, type="III") 

Asegúrese de utilizar la «A» Anova aquí y no anova. Esto dará resultados utilizando SS tipo III.

summary.lm(model.1) dará otro resumen e incluye el R-sq. producción.

posth=glht(model.1, linfct=mcp(factorvariable="Tukey")) ##gives the post-hoc Tukey analysis summary(posth) ##shows the output in a nice format. 

Si desea probar la homogeneidad de las pendientes de regresión, también puede incluir un término de interacción para el IV y la covariable. Eso sería:

model=aov(dv~covariate+IV+covariate:IV, data=dataname) 

Si el término de interacción es significativo, entonces no tiene homogeneidad.

Comentarios

  • ¿Por qué los contrastes no ortogonales estropean todo?
  • Para responder la pregunta anterior sobre » por qué los contrastes no ortogonales estropean todo arriba «. La respuesta es que R por defecto es no ortogonal (es decir, diferencia entre medias), lo que puede causar problemas si desea ver la contribución de cada IV por separado. Cuando especificamos contrastes ortogonales, le decimos a R que queremos que el SS de los IV ‘ s esté completamente particionado y no se superponga. De esta forma podemos ver la variación atribuida a cada predictor de forma limpia y clara. Si no lo especifica, R opta por un enfoque más liberal del contraste.
  • ¿Por qué el interés en las SS tipo III?

Respuesta

Aquí hay una documentación complementaria http://goo.gl/yxUZ1R del procedimiento sugerido por @Butorovich. Además, mi observación es que cuando la covariable es binaria, el uso de summary (lm.object) daría la misma estimación de IV que genera Anova (lm.object, type = «III»).

Comentarios

  • No está ‘ claro que se supone que esto es una respuesta. ¿Lo es? Si es así, edite para aclarar. Si es una pregunta, haga clic en ASK QUESTION en la parte superior & preguntando allí. Entonces podemos ayudarlo adecuadamente.
  • De acuerdo. El mensaje ha sido revisado como una respuesta (complementaria) al anterior.

Respuesta

Usamos Regresión análisis para crear modelos que describan el efecto de la variación en las variables predictoras sobre la variable de respuesta. A veces, si tenemos una variable categórica con valores como Sí / No o Hombre / Mujer, etc., el análisis de regresión simple da múltiples resultados para cada valor de la variable categórica. En tal escenario, podemos estudiar el efecto de la variable categórica usándola junto con la variable predictora y comparando las líneas de regresión para cada nivel de la variable categórica. Este tipo de análisis se denomina Análisis de covarianza, también denominado ANCOVA.

Ejemplo
Considere los R datos integrados establecer mtcars. En él observamos que el campo am representa el tipo de transmisión (automática o manual). Es una variable categórica con valores 0 y 1. El valor de millas por galón (mpg) de un automóvil también puede depender de él, además del valor de los caballos de fuerza (hp). Estudiamos el efecto del valor de am en la regresión entre mpg y hp. Se hace usando la función aov() seguida de la función anova() para comparar las regresiones múltiples.

Datos de entrada
Cree un marco de datos que contenga los campos mpg, hp y am del conjunto de datos mtcars. Aquí tomamos mpg como variable de respuesta, hp como variable de predicción y am como la variable categórica.

input <- mtcars[,c("am","mpg","hp")] head(input) 

Cuando ejecutamos el código anterior, produce el siguiente resultado:

 am mpg hp Mazda RX4 1 21.0 110 Mazda RX4 Wag 1 21.0 110 Datsun 710 1 22.8 93 Hornet 4 Drive 0 21.4 110 Hornet Sportabout 0 18.7 175 Valiant 0 18.1 105 

Análisis ANCOVA
Creamos un modelo de regresión tomando hp como variable de predicción y mpg como variable de respuesta teniendo en cuenta la interacción entre am y hp.

Modelo con interacción entre variable categórica y variable predictiva

Crear modelo de regresión1

result1 <- aov(mpg~hp*am,data=mtcars) summary(result1) 

Cuando ejecutamos el código anterior, produce el siguiente resultado:

 Df Sum Sq Mean Sq F value Pr(>F) hp 1 678.4 678.4 77.391 1.50e-09 *** am 1 202.2 202.2 23.072 4.75e-05 *** hp:am 1 0.0 0.0 0.001 0.981 Residuals 28 245.4 8.8 --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

Este resultado muestra que tanto la potencia como el tipo de transmisión tienen un efecto significativo en las millas por galón, ya que el valor p en ambos casos es menor que 0.05. Pero la interacción entre estas dos variables no es significativa ya que el valor p es más de 0.05.

Modelo sin interacción entre la variable categórica y la variable predictiva

Cree el modelo de regresión2

result2 <- aov(mpg~hp+am,data=mtcars) summary(result2) 

Cuando ejecutamos el código anterior, produce el siguiente resultado:

 Df Sum Sq Mean Sq F value Pr(>F) hp 1 678.4 678.4 80.15 7.63e-10 *** am 1 202.2 202.2 23.89 3.46e-05 *** Residuals 29 245.4 8.5 --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

Este resultado muestra que tanto la potencia como el tipo de transmisión tienen un efecto significativo en las millas por galón, ya que el valor p en ambos casos es menor a 0.05.

Comparación de dos modelos
Ahora podemos comparar los dos modelos para concluir si la interacción de las variables es realmente insignificante. Para esto usamos la función anova().

 anova(result1,result2) Model 1: mpg ~ hp * am Model 2: mpg ~ hp + am Res.Df RSS Df Sum of Sq F Pr(>F) 1 28 245.43 2 29 245.44 -1 -0.0052515 6e-04 0.9806 

Como el valor p es mayor que 0.05 concluimos que la interacción entre caballos de fuerza y tipo de transmisión no es significativa. Por lo tanto, el millaje por galón dependerá de manera similar de la potencia del automóvil en el modo de transmisión manual y automático.

Comentarios

  • Entonces ¿Qué fue primero, esta respuesta o esta publicación sobre el punto de tutoriales? tutorialspoint.com/r/r_analysis_of_covariance.htm . ¿Debería eliminarse esta respuesta como plagio? ¿O los tutoriales apuntan simplemente a copiar desde aquí?

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *