让我们从绘制数据开始,看看它。这是一个非常有限的数据量,所以这将是一些临时的,有很多假设。
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 的水果属于一组,其他水果属于较小的一组。
- 大果群里只有一颗烂果。假设如果一个水果在大组中,那么腐烂不会影响重量。这是必不可少的,因为我们在该组中只有一个数据点。
- 如果水果是小水果,那么腐烂会影响质量。
- 让我们假设变量直径和质量是正态分布的。
因为给定直径之和为 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的最终估计。我认为你必须做出我所做的大部分假设才能得出结论,但我认为有可能以更聪明的方式做到这一点。此外,我根据经验进行抽样以获得腐烂小水果数量的概率,这只是懒惰,可以“分析”完成。