Pregunta divertida. El problema clave, como señala @MartijnWeterings, es que el número de árboles en la fase 2 es sólo una medida parcial del número total de árboles. Sin embargo, si conociéramos el número total de árboles, podríamos resolver el problema construyendo un modelo del número de nueces observado en la fase 1 dado el número de árboles en la fase 1, y luego predecir el número de nueces en la fase 2 utilizando el número de árboles en la fase 2. Nuestra estrategia en esta respuesta es, por tanto, estimar primero el número de árboles en la etapa 2 y luego construir un modelo de frutos secos dados los árboles en la etapa 1.
Notación y suposición
A continuación, asumo que el muestreo de árboles y ardillas es aleatorio en todas las etapas. Sea $n_{1i}$ denotan la suma de todas las nueces recogidas por la ardilla $i$ en la fase 1. Sea $t_{1i}$ denotan el número total de árboles ardilla $i$ tuercas almacenadas en la fase 1. Dejemos que $n_{2j}$ denotan la suma no observada de nueces recogidas por la ardilla $j$ en la fase 2 y que $t_{2j}$ denotan el número de árboles ardilla $j$ tuercas almacenadas en la fase 2. Por último, dejemos $k_{2j}$ denotan el número parcial de árboles observados, donde $k_{2j} \le t_{2j}$ ,
Número de árboles en la fase 2
Como señala @MartijnWeterings $k_{2j}$ es siempre menor o igual que el número total de árboles $t_{2j}$ en la fase 2, que se desconoce. Nuestro objetivo es, por tanto, estimar $t_{2j}$ lo más cerca posible. Afortunadamente, tenemos alguna información sobre $t_{2j}$ . Dependiendo de su diseño de muestreo en la fase 2, hay una probabilidad $p$ que una ardilla sea capturada en una de las $t_{2j}$ árboles que visita. La probabilidad de $k_{2j}$ es por tanto binomial con parámetros $t_{2j}$ y $p$ . Sin embargo, nosotros observe binomio $k_{2j}$ el número de árboles $t_{2j}$ sin embargo, no tiene una distribución binomial dado $k_{2j}$ . No estaba seguro de su distribución exacta y por eso hice una pregunta al respecto en Matemáticas-Intercambio de pila . Recibí la útil respuesta de que la función de masa de probabilidad de $t=t_{2j}$ con $k=k_{2j}$ y $p$ viene dada por $$P(t; k ,p) = \binom{t-1}{k} p^t (1-p)^{(t-k)}, \quad t \in \{k,...,\infty\}.$$ para todos $j$ que tiene la expectativa $E(t)=k/p$ . Por lo tanto, si sabemos $k_{2j}$ y $p$ podríamos estimar $\hat{t}_{2j}=k_{2j}/p$ . Como se ha dicho, la probabilidad $p$ depende de su diseño de muestreo, pero afortunadamente podemos estimarlo a partir de los datos como $$\hat{p}=\frac{\sum_{j} k_{2j}}{\sum_{i} t_{1i}}$$ para que $\hat{t}_{2j}=k_{2j}/\hat{p}$ .
Estimación bajo el supuesto de proporcionalidad
Dejemos que
$$ \pi = \frac{1}{\#S_1} \sum_{i} \frac{n_{1i}}{t_{1i}}$$
sea la proporción media de nueces que deja una ardilla en un árbol. Una primera estimación del número total de nueces de la ardilla $j$ es
$$ \hat{n}_{2j} = \pi \hat{t}_{2j}.$$
Estimación mediante la relación entre los frutos secos y los árboles en la fase 1
Esto puede parecer insatisfactorio, porque no tiene en cuenta que puede haber una relación entre $n$ y $t$ que no sea una simple proporcionalidad. Por ejemplo, podemos imaginar que las ardillas tienen el extraño comportamiento de dejar menos nueces por árbol cuanto más nueces tienen a su disposición. Entonces el número total de nueces $n$ no aumentaría proporcionalmente con $t$ y en su lugar se aplana. Por lo tanto, podríamos decidir modelar
$$ n_{1i}= f(t_{1i},\theta) + \epsilon_i$$
donde $f$ es una función no lineal con parámetros theta y $\epsilon_i$ es un término de error de medición. Una opción obvia podría ser
$$ n_{1i} = \theta_0 + \theta_1 \log(t_{1i}) + \epsilon_i$$
con $\epsilon_i$ iid normal con expectativa 0. El modelo puede ajustarse por mínimos cuadrados no lineales o por máxima verosimilitud. Un estimador sería entonces
$$ \hat{n}_{2j} = \hat{\theta_0} + \hat{\theta_1} \log(\hat{t}_{2j})$$
Por supuesto, se podrían utilizar otras formas funcionales o se podrían utilizar técnicas de modelización flexibles para aproximar la relación funcional, como por ejemplo bosques aleatorios (juego de palabras).
Simulaciones
¿Funciona esto? Vamos a probarlo. Simulo los datos en R
según las siguientes ideas. La probabilidad de que una ardilla recoja $n+1$ tuercas viene dado por $n \sim \text{Poisson}(20)$ . Una ardilla llega entonces al primer árbol y se esconde $h_1+1$ tuercas donde $h_1 \sim \text{Poisson}(\lambda)$ y $\lambda \sim \Gamma(60/n,1)$ . Sigue escondido en $1 + (h_2,...,h_t)$ nueces hasta que llegue al árbol $t$ y no tiene nueces. Lo hace independientemente de si lo observa en la fase 1 o en la 2; sin embargo, en la fase 1 observa todo $h_t$ mientras que en la fase 2 se observa una muestra de $\{h_1,...,h_t\}$ . Como se ha dicho asumo que se tiene una muestra aleatoria simple de árboles en la fase 2 y así se observa $h_{kj}$ (el k-ésimo árbol visitado por la ardilla j) con probabilidad $p$ (abajo en el código lo llamo truncamiento).
Ahora muestro 1000 ardillas en la fase 1. El gráfico siguiente ilustra la relación entre el número total de árboles y el número total de nueces recogidas. Se puede ver que hay una decadencia en esa relación a través de $t$ .
Ahora muestro en la etapa 2 con $p=0.5$ y considerar tres estimadores. Primero el estimador bajo proporcionalidad. En segundo lugar, creo un estimador que utiliza la media condicional de $n_1$ en cada nivel observado de $t_1$ como una estimación para $n_2$ en $\hat{t}_2$ . Para la evaluación comparativa utilizo de nuevo la media condicional de $n_1$ en cada nivel observado de $t_1$ como una estimación para $n_2$ pero ahora con el verdadero número de árboles $t_2$ en la fase 2. Por supuesto, este estimador no está disponible en la práctica.
Para dos muestras, una de cada fase 1 y 2, respectivamente, y los tres estimadores llego a los siguientes sesgos, respectivamente 5,61, -0,19 y 0,24. Además, observamos los siguientes errores cuadráticos medios 15.3, 4.07, 3.32. Vemos que el estimador de la media condicional con una estimación ajustada del número de árboles en la fase 2 tiene un rendimiento casi tan bueno como el estimador que utiliza el número verdadero desconocido de árboles en la fase 2. El error restante es la varianza, que quizá pueda reducirse un poco más utilizando un modelo mejor para $n_1$ dado $t_1$ que el modelo de media condicional no paramétrico.
Aquí hay una función que crea los datos para la simulación que hice.
# A squirrel collects nuts
squirrel_set = function(n, trunc= FALSE){
nuts = rpois(n, 20) + 1
nut_seq = list()
for(i in 1:n){
j = 1
nuts_left = nuts[i]
nuts_hidden = numeric()
# squirrel hides nuts at tree j
while(nuts_left>0){
if(j == 1) {lambda = rgamma(1,60/nuts_left,1) }
if(lambda < 1){ lambda = 1}
nuts_hidden[j] = rpois(1, lambda) + 1
if(nuts_left - nuts_hidden[j] <0){
nuts_hidden[j] = nuts_left
nuts_left = 0
}
else{ nuts_left = nuts_left - nuts_hidden[j] }
j = j+1
}
nut_seq[[i]] = nuts_hidden
}
# Truncated sample
# A squirrel is caught with probability .5 at a tree
# (or a random half of the trees are observed and a squirrel is always caught)
if(trunc == TRUE){
trees = sapply(nut_seq , length)
nut_seq_obs = list()
for(i in 1:length(nut_seq)){
caught = rbinom(trees[i],1,.5)
nut_seq_obs[[i]] = nut_seq[[i]][as.logical(caught)]
}
return( list(nut_seq,nut_seq_obs) )
}
else{
return(nut_seq)
}
}
Y aquí el código utilizado en el análisis:
set.seed(12345)
n = 1000
# Phase 1
nut_seq1 = squirrel_set(n)
# Phase 2
nut_seq2 = squirrel_set(n, trunc = TRUE)
nut_seq2_true = nut_seq2[[1]]
nut_seq2_trunc = nut_seq2[[2]]
# Trees and nuts at phases 1 and 2
t1 = sapply(nut_seq1,length, simplify = TRUE) # Trees seen at phase 1
k = sapply(nut_seq2_trunc , length) # Trees seen at phase 2
nut_seq2_trunc = nut_seq2_trunc[k>0] # Squirrels with k=0 have avtually not been observed
nut_seq2_true = nut_seq2_true[k>0]
k = k[k>0]
n1 = sapply(nut_seq1,sum, simplify = TRUE) # Trees seen at phase 1
n2 = sapply(nut_seq2_true,sum, simplify = TRUE) # Trees at phase 2 (unobserved)
t2 = sapply(nut_seq2_true,length, simplify = TRUE) # Trees at phase 2 (unobserved)
# Plot
plot( t1, n1, xlab='Trees at phase 1', ylab='Total number of nuts at phase 1')
mnuts = numeric()
for(i in 1:max(t1)){
mnuts[i] = mean(n1[t1 == i])
}
lines( 1:max(t1), mnuts, col=2)
legend("bottomright",lty=1, lwd=2, col='2', legend='Conditional mean')
# Estimators
p = sum(k) / sum(t1) # Estimate of observational probability at phase 2
t2_est = k/p # Estimate of total number of trees for each squirrel at phase 2
n2_prop_est = t2_est * mean(sapply(n1,sum, simplify = TRUE)/t1 ) # proportionality
mnuts = numeric()
for(i in 1:max(t1)){
mnuts[i] = mean(n1[t1 == i]) # Conditional mean at each level of trees at phase 1
}
n2_regest = mnuts[round(t2_est)] # Non-parametric regression estimate of n2
n2_regest_truet2 = mnuts[t2]
# Bias and Variance
mean( n2_prop_est - n2)
sqrt(mean( (n2_prop_est - n2)^2 ))
mean( n2_regest - n2 , na.rm=TRUE)
sqrt(mean( (n2_regest - n2)^2 , na.rm=TRUE))
mean( n2_regest_truet2 - n2 , na.rm=TRUE)
sqrt(mean( (n2_regest_truet2 - n2)^2 , na.rm=TRUE))
0 votos
¿Sabes el número de árboles que fueron capturados en la fase 2?
2 votos
Y en la fase 1: ¿sólo sabes el recuento total de nueces que han recogido o lo sabes por árbol? (Por ejemplo, la ardilla 1 ha recogido 5 nueces del árbol 1, 3 nueces del árbol 2 y 10 nueces del árbol 3; la ardilla 2 ha recogido 7 nueces de (otro) árbol 1, etc.
0 votos
¿Qué fracción del total es el subconjunto de árboles de la fase 2? (si esta fracción es grande, entonces podrías estimar razonablemente el número total de nueces recogidas por una ardilla basándote en el subconjunto de nueces dividido por esa fracción)
0 votos
Por favor, sea más específico, ¿sabe cuántas nueces almacenaron en cada árbol en la fase 1 o 2 o en ambas?
0 votos
@tomka He borrado mis comentarios y he añadido ejemplos a las fases para que veas qué tipo de información arroja cada fase
1 votos
Una pregunta interesante. Casualmente, en el mismo momento en que hice clic en este enlace, ¡una ardilla vino a comer unas nueces esparcidas para ella en mi patio! La fase 1 está en marcha...