4 votos

¿Significativamente más avistamientos en los últimos años?

Esta es, probablemente, algo muy fácil para muchos de ustedes, pero no estoy seguro de si estoy haciendo este derecho. Yo soy biólogo y he estado buscando por la ocurrencia (por año) de una determinada especie en un área determinada desde el año 2001 hasta el año 2016. Como esta es una especie rara, en dos años hemos visto ninguno, en los otros años hemos visto 1-10 personas. Parece que los animales son más visto en los últimos años y creo que no hay un aumento significativo de ellos a lo largo de los años. Pero, ¿cómo puedo probar esto? He simplificado mi conjunto de datos sólo años y un número de avistamientos en ese año (de diferentes personas, así que no hay doble cuenta): enter image description here Si quiero correr una regresión lineal en SPSS mi p-valor es significativo. Pero es esta la manera correcta de hacerlo?

enter image description here

Gracias! :)

5voto

kjetil b halvorsen Puntos 7012

Pequeña cuenta como con un par de avistamientos de animales raros son por lo general bien modelada por una distribución de Poisson, por lo que de regresión de Poisson es el indicado. La variabilidad en el número de avistamientos de un raro animal que bien podría ser causada por distintos niveles de esfuerzo, de abajo supongo que este no es el caso, esto es, el esfuerzo es aproximadamente constante a lo largo del tiempo. (Si usted tiene datos de esfuerzo, podría ser incluido como un desplazamiento a través del argumento de offset=log(effort) en la glm comando de abajo).

Os muestro a continuación un análisis de los datos mediante regresión de Poisson en R, que creo que es más adecuado que el análisis que se presenta en la pregunta. R código es:

year      <-  2001:2016
sighting  <-  c(1,0,3,2,0,4,2,2,5,4,4,10,8,3,6,5)
dat  <-  data.frame(year,sighting)
# Poisson regression model:
mod.0  <-  glm(sighting ~ year, family=poisson, data=dat)
summary(mod.0)
confint(mod.0)
plot(mod.0)

El cual se produce la siguiente salida:

> mod.0  <-  glm(sighting ~ year, family=poisson, data=dat)
> summary(mod.0)

Call:
glm(formula = sighting ~ year, family = poisson, data = dat)

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-2.0802  -0.7293  -0.2194   0.8220   2.0665  

Coefficients:
              Estimate Std. Error z value Pr(>|z|)    
(Intercept) -227.69850   61.49336  -3.703 0.000213 ***
year           0.11395    0.03058   3.726 0.000194 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

(Dispersion parameter for poisson family taken to be 1)

    Null deviance: 33.801  on 15  degrees of freedom
Residual deviance: 18.770  on 14  degrees of freedom
AIC: 67.106

Number of Fisher Scoring iterations: 5

> confint(mod.0)
Waiting for profiling to be done...
                    2.5 %       97.5 %
(Intercept) -351.90183933 -109.9909922
year           0.05539646    0.1757022

(Yo no se muestran aquí las parcelas, lo cual no indica ningún problema con el modelo)

Tenga en cuenta que el intervalo de confianza de la pendiente parámetro está lejos de cero, por lo que algunos incremento de la abundancia con el tiempo es el indicado. Con tan pocos datos de un modelo efectivo de la crítica (basado en los residuos y tal) no es realmente posible, por lo que la necesidad de creer en el modelo!

2voto

icelava Puntos 548

Como kjetil escribe, hay más bien poco de los datos aquí - demasiado poco para dibujar realmente conclusiones firmes.

Mi personal de impulso en tal situación es mirar varios modelos y ver si están de acuerdo en principio.

Primero vamos a dibujar un gráfico.

year <- 2001:2016
sightings <- ts(c(1,0,3,2,0,4,2,2,5,4,4,10,8,3,6,5),start=2001)
plot(sightings,type="o",pch=19)

sightings

Así, en el gráfico se ve bastante convincente, incluso si es sólo 16 puntos de datos. Yo sin duda más bien apuesta en el 2017 observación a ser mayor que 4, en lugar de 4 o menos.

Aquí está la R analógica a la regresión lineal se calculó con el programa estadístico SPSS. Tenga en cuenta que los valores de p de partido:

summary(lm(sightings~year))

Coefficients:
             Estimate Std. Error t value Pr(>|t|)   
(Intercept) -796.7588   220.6300  -3.611  0.00283 **
year           0.3985     0.1098   3.628  0.00274 **

Como kjetil sugerido, una regresión de Poisson también tendría sentido:

summary(glm(sightings~year,family="poisson"))

Coefficients:
              Estimate Std. Error z value Pr(>|z|)    
(Intercept) -227.69850   61.49336  -3.703 0.000213 ***
year           0.11395    0.03058   3.726 0.000194 ***

Este modelo también se encuentra una tendencia significativa. Sin embargo, la lineal y la regresión de Poisson postulan muy específicos tendencias: uno lineal en el primer caso y una exponencial uno en el segundo caso.

Una alternativa podría ser la prueba de la correlación entre los avistamientos y año. El correlación de nuevo calcula una tendencia lineal:

cor.test(sightings,year,method="pearson")

t = 3.628, df = 14, p-value = 0.002742

Nota cómo el valor de p es exactamente el mismo que para el simple modelo lineal.

Las alternativas serían el y correlaciones, lo que prueba que para cualquier tipo de relación monótona entre los años y los avistamientos, no sólo lineal o exponencial:

cor.test(sightings,year,method="kendall")

z = 2.9576, p-value = 0.0031

cor.test(sightings,year,method="spearman")

S = 156.75, p-value = 0.0004915

Aunque ambas pruebas de salida de las advertencias, porque no se puede calcular con exactitud los valores de p si los lazos están presentes, se vuelve a encontrar las tendencias más importantes.

Finalmente, como Michael Chernick notas, en realidad tiene una serie de tiempo, por lo que un análisis de series de tiempo pueden ser útiles. Su número de datos que realmente llame para una INAR modelo o similar, pero en realidad no hay común recuento de datos de series de tiempo los modelos que dan cuenta de la tendencia, así que sólo voy a ajustar un modelo ARIMA y una ETS uno:

library(forecast)
auto.arima(sightings)

Series: sightings 
ARIMA(0,1,0)                    

sigma^2 estimated as 8:  log likelihood=-36.88
AIC=75.76   AICc=76.07   BIC=76.47

ets(sightings)

ETS(A,N,N) 

Call:
 ets(y = sightings) 

  Smoothing parameters:
    alpha = 0.3891 

  Initial states:
    l = 1.3 

  sigma:  2.3277

Tomamos nota de que auto.arima() modelos ARIMA(0,1,0) proceso, lo que significa que se cree que las primeras diferencias son ruido blanco. Primeras diferencias de nuevo indicar una tendencia. Finalmente, ETS es el único que no encuentra una tendencia, sólo se encuentra un aditivo de error (la primera "a"), no hay una tendencia ("N") y sin estacionalidad ("N"). Sin embargo, encuentra una gran suavizado valor de $\alpha = 0.39$, por lo que piensa que su avistamientos podría ser una débil clase de una caminata aleatoria. Tenga en cuenta que estos modelos están equipados utilizando los criterios de información, por lo que no tiene sentido asignar un valor de p de las tendencias que encontrar (o no).

En resumen, la mayoría de estos diferentes modelos encontramos una tendencia, incluso si están diseñados para observar diferentes tipos de tendencias (lineal, exponencial, general monotono, primeras diferencias). Esto, junto con la trama, sin duda sería suficiente para convencerme de que, efectivamente, hay una tendencia en los datos.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X