【问题标题】:ggplot2: how to get values for the regression line equation, r^2 and p value?ggplot2:如何获取回归线方程、r^2 和 p 值的值?
【发布时间】:2016-05-22 01:11:43
【问题描述】:

我不知道如何获得我使用函数 geom_smooth 绘制的线性回归的回归线方程、r^2 和 p 值。

这是我的代码:

   g <- ggplot(data=data.male, aes(x=mid_year, y=mean_tc, colour=data.male$survey_type))  
   g <- g + geom_point(shape = 20, size =2) 
   g <- g + geom_smooth(method=lm, na.rm = FALSE, se = TRUE, aes(group=1), colour = "black")
   g <- g + theme_gray(base_size=24)
   g <- g+ xlab("Year")
   g <- g + ylab("Mean serum total cholesterol (mmol/L)")
   g <- g + theme(legend.position="bottom")
   g <- g + scale_y_continuous(limits=c(3.5,6.5), breaks=c(3.5,4,4.5,5,5.5,6,6.5))
   g <- g + scale_x_continuous(limits=c(1980,2015), breaks=c(1980,1990,2000,2010))
   g <- g + scale_colour_manual(name = "Survey Type", values= c("Red", "Blue", "Green")) 
   g  

[1]:

【问题讨论】:

  • 正如@Spacedman 在他的回答中所说,为什么不自己拟合模型并提取必要的数据?
  • 如果您看到答案here,您还会看到它在内部也使用lm
  • 对不起@BenBolker 你的意思是即使我不使用lm 来适应情节但之后使用此代码行fit1 &lt;- lm(mean_tc ~ mid_year, data = data.male) summary(fit1) 它会显示与我从行中获得的相同的统计信息在 ggplot2 中?
  • 是的(正如@Spacedman 建议的那样)

标签: r ggplot2 linear-regression


【解决方案1】:

请勿使用绘图功能进行建模。使用lm 函数拟合模型。

然后使用summary 方法获取您需要了解的关于合身的所有信息。

你应该得到与绘图函数相同的结果,我怀疑它在内部使用lm

【讨论】:

  • 谢谢!如何编辑代码以使用“lm”而不是“geom_smooth”来拟合模型?
  • “geom_smooth”函数接受一个名为“method”的参数,您可以在其中指定“method='lm'”,因此基本上geom_smooth函数将使用“lm”本身拟合模型。跨度>
  • 我不同意这个答案。如果您无论如何都在制作情节,为什么要重复努力再次重做相同的拟合。对于刻面图尤其如此,您必须进行多次拟合。
  • 在这种情况下,向 ggplot2 提交 PR 建议一些记录和支持的方法,用于从 ggplot2 对象中获取拟合模型。因为目前唯一的方法是找出 ggplot2 对象存储这些东西的位置,希望它在下一次更新中不会改变。到目前为止,这是最好的答案。没有什么可以“同意”的。
猜你喜欢
  • 2011-08-01
  • 2016-12-26
  • 1970-01-01
  • 2015-10-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多