我有一个简单的问题,虽然我无法在任何地方找到答案。 我有以下数据集:
data.set <- c(7,7,8,8,7,8,9)
Basic Stats一书中提出的问题是: 对于2号样本,样本均值的抽样分布是多少? 是否有可能在R指令器中(或使用命令行)计算此值。
答案 0 :(得分:4)
在进行简单的随机样本而不进行替换时,可以通过以下几种方法来查看采样分布:
# 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年才能完成确切的版本,所以在这种情况下模拟版本要好得多。
答案 1 :(得分:1)
这个
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,