我有这个数据框:
> dat
x y yerr
1 -1 -1.132711 0.001744498
2 -2 -2.119657 0.003889120
3 -3 -3.147378 0.007521881
4 -4 -4.220129 0.012921450
5 -5 -4.586586 0.021335644
6 -6 -5.389198 0.032892630
7 -7 -6.002848 0.048230946
我可以用标准误差平滑将其绘制为:
p <- ggplot(dat, aes(x=x, y=y)) + geom_point()
p <- p + geom_errorbar(data=dat, aes(x=x, ymin=y-yerr, ymax=y+yerr), width=0.09)
p + geom_smooth(method = "lm", formula = y ~ x)
但是我需要使用 yerr 来拟合我的线性模型。 ggplot2是否可以?
最佳答案
好吧,我找到了一种答案。
由于在我们收集数据的任何科学实验中,如果正确执行了该实验,则所有数据值都必须关联一个错误。
在某些情况下,误差的方差可能在所有点上都是相等的,但是在许多情况下(如本问题中的原始问题所述),这是不正确的。 因此,在将曲线拟合到数据时,对于不同的测量,我们必须在误差值的方差中使用不同的值。
这样做的方法是将权重归因于误差值,根据统计分析方法,其等于1 / sqrt(errorValue),因此,它变为:
p <- ggplot(dat, aes(x=x, y=y, weight = 1/sqrt(yerr))) +
geom_point() +
geom_errorbar(aes(ymin=y-yerr, ymax=y+yerr), width=0.09) +
geom_smooth(method = "lm", formula = y ~ x)