我有一个数据集,为此我绘制了一个回归图(使用 ggplot2stat_smooth ):

ggplot(data = mydf, aes(x=time, y=pdm)) + geom_point() + stat_smooth(col="red")

r - 散点图的连续分位数-LMLPHP

我还想使用相同的方法获得分位数(如果它更简单,只有四分位数就可以)。我设法得到的是以下内容:
ggplot(data = mydf, aes(x=time, y=pdm, z=surface)) + geom_point() + stat_smooth(col="red") + stat_quantile(quantiles = c(0.25,0.75))

r - 散点图的连续分位数-LMLPHP

不幸的是,我不能将 method="loess" 放在 stat_quantile() 中,如果我没记错的话,这将解决我的问题。

(如果不清楚,所需的行为 = 分位数的非线性回归,因此 Q25 和 Q75 的回归(分别)低于和高于我的红色曲线(并且 Q50,如果绘制,将是我的红色曲线))。

谢谢

最佳答案

stat_quantile 默认情况下,为每个 x 值绘制第 25 个和第 75 个百分位数的最佳拟合线。 stat_quantile 使用 rq 包中的 quantreg 函数(隐式地,method="rq" 调用中的 stat_quantile)。据我所知,rq 不做 loess 回归。但是,您可以使用其他灵活的函数进行分位数回归。这里有两个例子:

B样条:

library(splines)

stat_quantile(formula=y ~ bs(x, df=4), quantiles = c(0.25,0.75))

二阶多项式:
stat_quantile(formula=y ~ poly(x, 2), quantiles = c(0.25,0.75))
stat_quantile 仍在使用 rq ,但 rq 接受上面列出的类型的公式(如果您不提供公式,则 stat_quantile 隐式使用 formula=y~x )。如果您在 geom_smooth 中使用与 stat_quantile 相同的公式,您将拥有用于分位数和平均期望的一致回归方法。

关于r - 散点图的连续分位数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36315152/

10-12 18:00