如何复制描述 R 中均值标准误差的图形?
How to replicate a figure describing standard error of the mean in R?
此处 link 中的第一个图展示了如何可视化标准错误的一个非常好的示例,我想在 R 中复制它。
我将通过以下内容到达那里
set.seed(1)
pop<-rnorm(1000,175,10)
mean(pop)
hist(pop)
#-------------------------------------------
# Plotting Standard Error for small Samples
#-------------------------------------------
smallSample <- replicate(10,sample(pop,3,replace=TRUE)) ; smallSample
smallMeans<-colMeans(smallSample)
par(mfrow=c(1,2))
x<-c(1:10)
plot(x,smallMeans,ylab="",xlab = "",pch=16,ylim = c(150,200))
abline(h=mean(pop))
#-------------------------------------------
# Plotting Standard Error for Large Samples
#-------------------------------------------
largeSample <- replicate(10,sample(pop,20,replace=TRUE))
largeMeans<-colMeans(largeSample)
x<-c(1:10)
plot(x,largeMeans,ylab="",xlab = "",pch=16,ylim = c(150,200))
abline(h=mean(pop))
但我不确定如何绘制带有 X 符号的原始数据。谢谢。
使用基础绘图,需要使用arrows
功能。
在 R 中没有计算标准误差的函数 (ASAIK) 所以试试这个
sem <- function(x){
sd(x) / sqrt(length(x))
}
绘图(使用 pch = 4 作为 x 符号)
plot(x, largeMeans, ylab = "", xlab = "", pch = 4, ylim = c(150,200))
abline(h = mean(pop))
arrows(x0 = 1:10, x1 = 1:10, y0 = largeMeans - sem(largeSample) * 5, largeMeans + sem(largeSample) * 5, code = 0)
注意:您提供的数据中的 SE 非常小,所以我将它们乘以 5 以使其更加明显
编辑
啊,要绘制所有点,那么也许 ?matplot
和 ?matpoints
会有帮助?类似于:
matplot(t(largeSample), ylab = "", xlab = "", pch = 4, cex = 0.6, col = 1)
abline(h = mean(pop))
points(largeMeans, pch = 19, col = 2)
这是您想要的效果吗?
此处 link 中的第一个图展示了如何可视化标准错误的一个非常好的示例,我想在 R 中复制它。
我将通过以下内容到达那里
set.seed(1)
pop<-rnorm(1000,175,10)
mean(pop)
hist(pop)
#-------------------------------------------
# Plotting Standard Error for small Samples
#-------------------------------------------
smallSample <- replicate(10,sample(pop,3,replace=TRUE)) ; smallSample
smallMeans<-colMeans(smallSample)
par(mfrow=c(1,2))
x<-c(1:10)
plot(x,smallMeans,ylab="",xlab = "",pch=16,ylim = c(150,200))
abline(h=mean(pop))
#-------------------------------------------
# Plotting Standard Error for Large Samples
#-------------------------------------------
largeSample <- replicate(10,sample(pop,20,replace=TRUE))
largeMeans<-colMeans(largeSample)
x<-c(1:10)
plot(x,largeMeans,ylab="",xlab = "",pch=16,ylim = c(150,200))
abline(h=mean(pop))
但我不确定如何绘制带有 X 符号的原始数据。谢谢。
使用基础绘图,需要使用arrows
功能。
在 R 中没有计算标准误差的函数 (ASAIK) 所以试试这个
sem <- function(x){
sd(x) / sqrt(length(x))
}
绘图(使用 pch = 4 作为 x 符号)
plot(x, largeMeans, ylab = "", xlab = "", pch = 4, ylim = c(150,200))
abline(h = mean(pop))
arrows(x0 = 1:10, x1 = 1:10, y0 = largeMeans - sem(largeSample) * 5, largeMeans + sem(largeSample) * 5, code = 0)
注意:您提供的数据中的 SE 非常小,所以我将它们乘以 5 以使其更加明显
编辑
啊,要绘制所有点,那么也许 ?matplot
和 ?matpoints
会有帮助?类似于:
matplot(t(largeSample), ylab = "", xlab = "", pch = 4, cex = 0.6, col = 1)
abline(h = mean(pop))
points(largeMeans, pch = 19, col = 2)
这是您想要的效果吗?