Estamos teniendo problemas para ejecutar modelos lineales generalizados con datos proporcionales.
Por ejemplo, tenemos datos como este:
Species Trait(Diet) IndividualsinForest TotalIndividuals ProportionForest
X Insectivore 300.5 500.7 0.60
Y Frugivore 32.3 47.6 0.67
Y queremos determinar si el rasgo influye en la proporción de individuos en el bosque. Note que los números individuales son continuos (tienen decimales), porque los conteos originales han sido ajustados a DISTANCIA.
La mayoría de los modelos que hemos visto en R tratan con datos de conteo. Por ejemplo, véase M.J. Crawley Estadísticas: Una introducción usando R Capítulo 10: Análisis de los datos de las proporciones ( pdf ).
Estos modelos utilizan el cbind
para unir el número de éxitos y el número de fracasos y luego relacionarlo con el predictor:
model.1 <- glm (cbind(IndividualsinForest, (TotalIndividuals-IndividualsinForest))~Diet,
family=binomial)
Sin embargo, parece que hay dos problemas al usar este enfoque para nuestra situación:
-
Estamos usando
glm
en uncbind
que combinaba vectores con valores continuos (punto decimal); no está claro si esto está permitido, aunque funciona en R. Hemos jugado a multiplicar todo por 1000 para deshacernos de los decimales, pero encontramos que los resultados cambian mucho con esta técnica (resultados muy diferentes si se multiplica por 10, por 100, por 1000) -
cbind
ejecuta una regresión ponderada, como explicó Crawley. Esto significa que el modelo ponderará los datos de la Especie X, arriba, con 500,7 individuos totales más que los datos de la Especie Y, con 47,6 individuos.
Pero conceptualmente, no queremos una regresión ponderada, porque queremos tratar a todas las especies por igual: los datos de una especie rara son tan importantes para nosotros como los datos de una especie abundante. La especie es la unidad de replicación aquí.
Tratamos de forzar una regresión no ponderada usando el mismo código, añadiendo columnas a los datos, por ejemplo,
Species ProportionForest PInForest PTotal
X .60 60 100
Y .67 67 100
Y luego correr:
model.3 <- glm(cbind(PInForest, (PTotal-PInForest))~Diet, family=binomial)
Pero los análisis resultantes están muy dispersos, y ejecutarlos con family=quasibinomial
da resultados extraños (pruebas completamente insensibles, con grandes valores p para diferencias bastante claras).
Por lo tanto, nuestra estrategia analítica actual es recurrir a la transformación de la proporción en arcoseno y luego ejecutar un modelo lineal general. Pero preferiríamos ejecutar un modelo lineal generalizado porque la transformación de arcoseno parece ser una reliquia de las viejas estadísticas precomputadoras.
¿Alguna idea?