我有两个数据集。让我们假设它们看起来像这样简单:
observed <- data.frame(name = c("Jenny", "Mark", "James", "Amber", "Jamie"),
height = c(68, 69, 72, 63, 77),
mood = c("content", "content", "melancholy", "happy", "melancholy"))
modeled <- data.frame(name = c("Alex", "Jimmy", "Sal", "Evelyn", "Maria", "George", "Hilary", "Donny", "Jose", "Luke", "Leia"),
height = c(74, 71, 68, 66, 80, 59, 67, 67, 69, 65, 72),
mood = c("content", "content", "melancholy", "happy", "melancholy","content", "content", "melancholy", "happy", "melancholy", "happy"))
我想从建模中选择行,使得建模的$高度的分布尽可能接近观察到的$高度的分布。我需要保持行完整,而不是简单地匹配高度整数的分布。任何见解都会非常感激。
答案 0 :(得分:1)
这是非常特别的,肯定有更好的方法,但这里有一个:
viewer.setLightPreset(4);
viewer.setQualityLevel(false, false);
viewer.setGhosting(true);
viewer.setGroundShadow(true);
viewer.setGroundReflection(true);
viewer.setEnvMapBackground(false);
viewer.setProgressiveRendering(true);
在我们做任何事之前,这是他们的样子:
my_sample <- dplyr::sample_n(modeled, nrow(observed))
然后我们选择一个更相似的样本:
plot(density(observed$height))
lines(density(my_sample$height), col = "red")
然后这是它的样子:
while(cor(observed$height, my_sample$height) < .99){
my_sample <- dplyr::sample_n(modeled, nrow(observed))
}
随着更大的数据集,它们应该更加相似,其他条件不变。
你甚至可以稍微进一步(或者至少尝试一下,看看建模数据是否有足够的变化来解决这个问题):
plot(density(observed$height))
lines(density(my_sample$height), col = "red")
现在,您可能遇到的一个问题是,您想要的建模样本是否必须包含比原始数据集更多的行。解决这个问题的一种方法是使用不需要样本长度的均值和/或其他汇总统计数据。另一种方法是使用样本的样本,或者从建模数据集的块中获取多个相关性。