在 R 中绘制分组平均值

Plotting grouped averages in R

我通过线性回归 y~x 获得概率,其中 x 是固定范围内的浮点值,例如在 0 和 5 之间,观察到的 y 都是 0 或 1。请注意,x 可以重复,例如数据为 (0.1,0),(0.1,1),(0.1,0),(0.12,1) 等

回归本身很好,我还可以绘制回归结果,例如通过 ggplot2 包

qplot(x,y,data=data,geom='smooth',method='lm')

由于实际数据的散点图会在 y=0 和 y=1 处添加很多点,我希望得到 "grouped averages",例如[0,0.2) 中所有 x 的平均 y 值作为一个点,另一个为 [0.2,0.4) 等

理想情况下,该图还会显示类似于回归操作方式的样本量,例如如果一组平均值的基础数据少于另一组,则它会显示在较小的圆圈中,如气泡图。

使用cut将样本分隔成间隔。您可以使用 data.table 进行一些快速聚合。然后是在你的情节中添加一个尺寸组件的问题:

x<-rnorm(100)
y<-5*x+6+rnorm(100,sd=0.2)
DT<-data.table(x,y)
DT[,bin:=cut(x,seq(-3,3,0.2),right = F)]
#Aggregate table
DT1<-DT[,.(mx=mean(x),my=mean(y),.N),by=bin]
qplot(x,y,data=DT,geom='smooth',method='lm')+
    geom_point(data = DT1,aes(x= mx,y=my,size=N))