让我们开始绘制数据并对其进行查看。这是非常有限的数据量,因此在有很多假设的情况下,这将是临时的。
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")
这就是数据,红点代表烂水果:
您认为似乎有两种水果是正确的。我所做的假设如下:
- 直径将水果分为两组
- 直径大于10的水果在一组中,其他则在较小的组中。
- 大水果组中只有一种烂水果。假设如果水果属于大类,那么烂不影响重量。这是必不可少的,因为该组中只有一个数据点。
- 如果果实是小果实,那么腐烂会影响质量。
- 假设变量diam和mass正态分布。
因为假定直径的总和为64.2厘米,所以很可能两个水果大而四个水果小。现在有3种重量的箱子。有2、3或4个小水果烂了(假设大水果烂了不会影响质量)。因此,现在您可以通过计算这些值来确定质量范围。
我们可以凭经验估计小果实腐烂的可能性。我们使用概率来加权估计的质量,具体取决于烂果的数量:
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)
最终估算为691.5183g。我认为您必须做出我做出的大多数假设才能得出结论,但是我认为以一种更明智的方式来做到这一点是可能的。我还凭经验取样以获得腐烂的小果实数量的可能性,这只是懒惰,可以“解析地”完成。