Estoy buscando analizar la correlación entre una variable de entrada categórica y una variable de respuesta binomial, pero no estoy seguro de cómo organizar mis datos o si estoy planeando el análisis correcto.

Aquí está mi tabla de datos (las variables se explican a continuación):

species<-c("Aaeg","Mcin","Ctri","Crip","Calb","Tole","Cfus","Mdes","Hill","Cpat","Mabd","Edim","Tdal","Tmin","Edia","Asus","Ltri","Gmor","Sbul","Cvic","Egra","Pvar")
scavenge<-c(1,1,0,1,1,1,1,0,1,0,1,1,1,0,0,1,0,0,0,0,1,1)
dung<-c(0,0,0,0,0,0,1,0,1,0,0,0,0,1,0,0,0,0,1,1,0,0)
pred<-c(0,1,1,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0)
nectar<-c(1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,1,1,0,0)
plant<-c(0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,1,0,0,0,0,0)
blood<-c(1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0)
mushroom<-c(0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0)
loss<-c(0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0,1,0,0,0,0,0) #1 means yes, 0 means no
data<-cbind(species,scavenge,dung,pred,nectar,plant,blood,mushroom,loss)
data #check data table

explicación de la tabla de datos

Tengo una lista de especies individuales y las siguientes columnas son sus tipos de alimentación anotados. Un 1 en una columna dada significa sí y un 0 significa no. Algunas especies tienen múltiples tipos de alimentación, mientras que otras solo tienen un tipo de alimentación. La variable de respuesta que me interesa es "pérdida", que indica la pérdida de un rasgo. Tengo curiosidad por saber si alguno de los tipos de alimentación predice o se correlaciona con el estado de "pérdida".

pensamientos

No estaba seguro de si había una buena manera de incluir los tipos de alimentación como una variable categórica con múltiples categorías. No creo que pueda organizarlo como una sola variable con los tipos c ("scavenge", "estiércol", "pred", etc.) ya que algunas especies tienen múltiples tipos de alimentación, así que las dividí en columnas e indicaron su estado como 1 (sí) o 0 (no). Por el momento, estaba pensando en intentar utilizar un análisis log-lineal, pero los ejemplos que encuentro no tienen datos comparables ... y estoy feliz por las sugerencias.

¡Cualquier ayuda o señalar en la dirección correcta es muy apreciada!

1
Crawdaunt 17 nov. 2019 a las 20:16

1 respuesta

La mejor respuesta

Hay muy pocas muestras, tienes 4 pérdidas == 0 y 18 pérdidas == 1. Te encontrarás con problemas para ajustar una regresión logística completa (es decir, incluir todas las variables). Sugiero probar la asociación para cada hábito de alimentación utilizando una prueba de Fisher:

library(dplyr)
library(purrr)

# function for the fisher test
FISHER <- function(x,y){
       FT = fisher.test(table(x,y))

data.frame(
       pvalue=FT$p.value,
       oddsratio=as.numeric(FT$estimate),
       lower_limit_OR = FT$conf.int[1],
       upper_limit_OR = FT$conf.int[2]
)
}
# define variables to test
FEEDING <- c("scavenge","dung","pred","nectar","plant","blood","mushroom")
# we loop through and test association between each variable and "loss"

results <- data[,FEEDING] %>% 
map_dfr(FISHER,y=data$loss) %>% 
add_column(var=FEEDING,.before=1)

Obtienes los resultados para cada hábito de alimentación:

> results
       var      pvalue oddsratio lower_limit_OR upper_limit_OR
1 scavenge 0.264251538 0.1817465    0.002943469       2.817560
2     dung 1.000000000 1.1582683    0.017827686      20.132849
3     pred 0.263157895 0.0000000    0.000000000       3.189217
4   nectar 0.535201640 0.0000000    0.000000000       5.503659
5    plant 0.002597403       Inf    2.780171314            Inf
6    blood 1.000000000 0.0000000    0.000000000      26.102285
7 mushroom 0.337662338 5.0498688    0.054241930     467.892765

El valor p es el valor p de fisher.test, básicamente con una razón de probabilidades> 1, la variable está asociada positivamente con la pérdida. De todas sus variables, la planta es la más fuerte y puede verificar:

> table(loss,plant)
    plant
loss  0  1
   0 18  0
   1  1  3

Casi todos los que son plant = 1, son loss = 1 .. Entonces, con su conjunto de datos actual, creo que esto es lo mejor que puede hacer. Debería obtener un tamaño de muestra más grande para ver si esto aún se mantiene.

1
StupidWolf 17 nov. 2019 a las 20:17