3

我有一个数据集,我为它绘制了一个回归图(使用ggplot2's stat_smooth):

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

情节1

我也想使用相同的方法来获得分位数(如果更简单,只有四分位数就可以了)。我设法得到的是以下内容:

ggplot(data = mydf, aes(x=time, y=pdm, z=surface)) + geom_point() + stat_smooth(col="red") + stat_quantile(quantiles = c(0.25,0.75)) 

在此处输入图像描述

不幸的是,我不能method="loess"输入stat_quantile(),如果我没记错的话,它会解决我的问题。

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

谢谢

4

1 回答 1

3

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

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)。如果您在 for 中使用相同的公式geom_smoothstat_quantile您将有一致的回归方法用于分位数和平均期望值。

于 2016-03-30T17:20:18.660 回答