【发布时间】:2012-10-23 15:25:33
【问题描述】:
我有一个简单的问题,虽然我无法在任何地方找到答案。 我有以下数据集:
data.set <- c(7,7,8,8,7,8,9)
Basic Stats 书中的问题是: 对于大小为 2 的样本,样本均值的抽样分布是多少? 是否有可能在 R 指挥官(或使用命令行)中计算这一点。
【问题讨论】:
标签: r distribution sample sampling mean
我有一个简单的问题,虽然我无法在任何地方找到答案。 我有以下数据集:
data.set <- c(7,7,8,8,7,8,9)
Basic Stats 书中的问题是: 对于大小为 2 的样本,样本均值的抽样分布是多少? 是否有可能在 R 指挥官(或使用命令行)中计算这一点。
【问题讨论】:
标签: r distribution sample sampling mean
在进行无放回的简单随机样本时,有几种方法可以查看抽样分布:
# Exact
data.set <- c(7,7,8,8,7,8,9)
samps <- combn(data.set, 2)
xbars <- colMeans(samps)
table(xbars)
prop.table(table(xbars))
barplot(table(xbars))
# Simulated
data.set <- c(7,7,8,8,7,8,9)
out <- replicate( 10000, mean( sample(data.set, 2) ) )
prop.table(table(out))
hist(out)
确切的版本适用于小群体(如这个),但不适用于大群体/样本,例如如果您的人口规模为 100 并且您的样本规模为 10 并且您可以每秒计算 10,000 个均值,则仍然需要将近 55 年才能得出准确的版本,因此在这种情况下模拟版本会好得多。
【讨论】:
这个
mean2 <- function(x,y){ (x+y)/2 }
table(outer(data.set, data.set, "mean2")) / length(data.set)^2
会给
7 7.5 8 8.5 9
0.18367347 0.36734694 0.30612245 0.12244898 0.02040816
这可能是您正在寻找的东西。概率是 9、18、15、6 和 1 的 1/49。
添加:无需替换
mean2 <- function(x,y){ (x+y)/2 }
L <- length(data.set)
table(outer(data.set, data.set, "mean2")[- ((L+1)*(1:L)-L) ] ) / (L*(L-1))
给予
7 7.5 8 8.5
0.1428571 0.4285714 0.2857143 0.1428571
分别是1/7、4/7、2/7、1/7,
【讨论】: