多次采样并使用趋势线计算平均值的标准偏差和标准误差
Multiple samplings and calculating Standard deviation and standard error of the Mean using a trend line
假设我有以下数据:
df1<-rnorm(100,000, 20,5)
我想从 df1 中获取以下样本,每个样本进行 50 次试验:
C=( 25,50,100,200,300,400,500,600)
接下来,我要绘制趋势线。在趋势线图中,x 轴 = 样本大小,y 轴
是 SD 和 SEM。抱歉,我无法绘制情节,但希望我的描述很清楚。谢谢你的帮助。
我不确定你想在这里做什么,但这是我认为你想要的第一次通过:
library(ggplot2)
my_theme = theme_minimal() + theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank(), axis.line = element_line(colour = "black"), legend.title = element_blank())
df1 <- rnorm(100000, 20, 5)
df <- data.frame(sample_size = c(25,50,100,200,300,400,500,600))
samples <- lapply(df$sample_size, function (x) {sample(df1, x)})
df$std <- sapply(samples, sd)
df$se <- sapply(samples, function(x) {sd(x)/sqrt(length(x))})
ggplot(data = df) + geom_point(aes(x = sample_size, y = std, colour = "std")) + geom_point(aes(x = sample_size, y = se, colour = "se")) +
geom_smooth(aes(x = sample_size, y = std), method = "lm",) +
geom_smooth(aes(x = sample_size, y = se), method = "lm") + my_theme
我更喜欢使用 ggplot2 库来绘图,而不是使用 base R 自带的库。你可以忽略 my_theme
部分,这正是我喜欢的美学。这是情节:
如果这不是您要查找的内容,您应该能够修改此处的内容以获得您想要的内容,除非我完全误解了您的问题。无论如何,重要的部分是使用 lapply
和 sample
从 df1
中获取样本列表。然后,您可以使用 sapply
和 sd
计算每个的标准差,使用 sapply
、sd
、sqrt
和 [=20 计算标准误差=].
sapply
和 lapply
都非常有用,特别是因为用户定义的函数可以作为参数就地传递。我建议查看 lapply 以了解它在做什么(sapply
只是 lapply
的包装器,returns 是一个向量)。
假设我有以下数据:
df1<-rnorm(100,000, 20,5)
我想从 df1 中获取以下样本,每个样本进行 50 次试验:
C=( 25,50,100,200,300,400,500,600)
接下来,我要绘制趋势线。在趋势线图中,x 轴 = 样本大小,y 轴 是 SD 和 SEM。抱歉,我无法绘制情节,但希望我的描述很清楚。谢谢你的帮助。
我不确定你想在这里做什么,但这是我认为你想要的第一次通过:
library(ggplot2)
my_theme = theme_minimal() + theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank(), axis.line = element_line(colour = "black"), legend.title = element_blank())
df1 <- rnorm(100000, 20, 5)
df <- data.frame(sample_size = c(25,50,100,200,300,400,500,600))
samples <- lapply(df$sample_size, function (x) {sample(df1, x)})
df$std <- sapply(samples, sd)
df$se <- sapply(samples, function(x) {sd(x)/sqrt(length(x))})
ggplot(data = df) + geom_point(aes(x = sample_size, y = std, colour = "std")) + geom_point(aes(x = sample_size, y = se, colour = "se")) +
geom_smooth(aes(x = sample_size, y = std), method = "lm",) +
geom_smooth(aes(x = sample_size, y = se), method = "lm") + my_theme
我更喜欢使用 ggplot2 库来绘图,而不是使用 base R 自带的库。你可以忽略 my_theme
部分,这正是我喜欢的美学。这是情节:
如果这不是您要查找的内容,您应该能够修改此处的内容以获得您想要的内容,除非我完全误解了您的问题。无论如何,重要的部分是使用 lapply
和 sample
从 df1
中获取样本列表。然后,您可以使用 sapply
和 sd
计算每个的标准差,使用 sapply
、sd
、sqrt
和 [=20 计算标准误差=].
sapply
和 lapply
都非常有用,特别是因为用户定义的函数可以作为参数就地传递。我建议查看 lapply 以了解它在做什么(sapply
只是 lapply
的包装器,returns 是一个向量)。