Commençons par tracer les données et examinons-les. Il s'agit d'une quantité très limitée de données, donc cela va être quelque peu ponctuel avec beaucoup d'hypothèses.
rotten <- c(0,1,1,0,0,0,1,1,1,1,0,0,0)
rotten <- as.factor(rotten)
mass <- c(139.08,
91.48,
74.23,
129.8,
169.22,
123.43,
104.93,
103.27,
169.01,
83.29,
157.57,
117.72,
128.63)
diam <- c(17.28,
6.57,
7.12,
16.52,
14.58,
6.99,
6.63,
6.75,
15.38,
7.45,
13.06,
6.61,
7.19)
plot(mass,diam,col=rotten,lwd=2)
title("Fruits")
Voici donc les données, les points rouges représentent les fruits pourris:
Vous avez raison de supposer qu'il semble y avoir deux sortes de fruits. Les hypothèses que je fais sont les suivantes:
- Le diamètre divise les fruits en deux groupes
- Les fruits d'un diamètre supérieur à 10 sont dans un groupe, les autres dans le plus petit groupe.
- Il n'y a qu'un seul fruit pourri dans le grand groupe de fruits. Supposons que si un fruit est dans le grand groupe, être pourri n'affecte pas le poids. Ceci est essentiel, car nous n'avons qu'un seul point de données dans ce groupe.
- Si le fruit est un petit fruit, être pourri affecte la masse.
- Supposons que les variables diam et mass soient normalement distribuées.
Étant donné que la somme du diamètre est de 64,2 cm, il est très probable que deux fruits soient gros et quatre petits. Maintenant, il y a 3 cas pour le poids. Il y a 2, 3 ou 4 petits fruits pourris ( un gros fruit pourri n'affecte pas la masse par hypothèse ). Alors maintenant, vous pouvez obtenir des limites sur votre masse en calculant ces valeurs.
Nous pouvons estimer empiriquement la probabilité que le nombre de petits fruits pourris. Nous utilisons les probabilités pour pondérer nos estimations de la masse, en fonction du nombre de fruits pourris:
samps <- 100000
stored_vals <- matrix(0,samps,2)
for(i in 1:samps){
numF <- 0 # Number of small rotten
numR <- 0 # Total number of rotten
# Pick 4 small fruits
for(j in 1:4){
if(runif(1) < (5/8)){ # Empirical proportion of small rotten
numF <- numF + 1
numR <- numR + 1
}
}
# Pick 2 large fruits
for(j in 1:2){
if(runif(1) < 1/5){# Empirical proportion of large rotten
numR <- numR + 1
}
}
stored_vals[i,] <- c(numF,numR)
}
# Pick out samples that had 4 rotten
fourRotten <- stored_vals[stored_vals[,2] == 4,1]
hist(fourRotten)
table(fourRotten)
# Proportions
props <- table(fourRotten)/length(fourRotten)
massBig <- mean(mass[diam>10])
massSmRot <- mean(mass[diam<10 & rotten == 1])
massSmOk <- mean(mass[diam<10 & rotten == 0])
weights <- 2*massBig + c(2*massSmOk+2*massSmRot,1*massSmOk+3*massSmRot,4*massSmRot)
Est_Mass <- sum(props*weights)
Nous donnant une estimation finale de 691,5183g . Je pense que vous devez faire la plupart des hypothèses que j'ai faites pour arriver à une conclusion, mais je pense qu'il pourrait être possible de le faire de manière plus intelligente. J'ai aussi échantillonné empiriquement pour obtenir la probabilité du nombre de petits fruits pourris, c'est juste de la paresse et cela peut être fait "analytiquement".