ggplot2中geom_smooth()置信区间负值的原因与解决方法
实验绘图问题:线性回归置信区间出现负值的原因
我开展了一项实验,受试者需完成问卷(每人对应一个sumpdi得分)和包含两种组内条件(0和25)的实验任务。目标是绘制不同sumpdi得分与条件下的任务响应均值,但在呈现置信区间时遇到问题。
1. 初始数据聚合与绘图的问题
首先执行数据聚合代码:
agg_forplot<- aggregate(Response ~ sumpdi+ Condition, df_forplot, FUN=mean)
随后使用ggplot2绘图:
Plot_C<-ggplot(agg_forplot, aes(x=sumpdi, y=Response, colour=Condition))+ geom_smooth(method='lm', se=T, fill='light blue')+ geom_point()+ ylab("Mean % 'Tone Present' Responses")+ xlab('Summary PDI Score') + labs(color= 'Condition') + scale_color_manual(labels = c("No tone", "25%"), values= c("#5CC0C0","#FF88FF"))+ mytheme
绘图后发现,geom_smooth()的se=T参数在sumpdi=0附近生成了负的置信区间值,但响应百分比不可能为负。尝试添加+ylim(0,1)限制纵轴范围,却会直接移除该区域的置信区间。
2. 不同聚合方式的差异
若按以下代码聚合数据(纳入受试者ID Pt_ID):
agg_forplot<- aggregate(Response ~ sumpdi+ Condition+ Pt_ID, df_forplot, FUN=mean)
则不会出现负置信区间,但不清楚其中原因。附上两次聚合后的dput数据及对应绘图。
内容的提问来源于stack exchange,提问作者SilvaC
相关产品推荐
相关产品推荐

