R:线性回归、geom_text添加回归方程

导读

线性回归是利用数理统计中的回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法,运用十分广泛。回归分析中,只包括一个自变量和一个因变量,且二者的关系可用一条直线近似表示,这种回归分析称为一元线性回归分析。如果回归分析中包括两个或两个以上的自变量,且因变量和自变量之间是线性关系,则称为多元线性回归分析。下面介绍R语言中线性回归分析和在ggplot画图中使用geon_text添加回归方程的方法。

一、模拟输入数据

set.seed(1995)  
# 随机种子
data=data.frame(matrix(abs(round(rnorm(40, mean=20, sd=5))), 10, 4)) 
# 随机正整数,5行,4列
colnames(data)=c("y", "x1", "x2", "x3") 
# 列名
data  # 查看数据,如下:
图片.png

二、一元线性回归

以y因变量,x1为自变量进行医院线性回归。输入数据是随机模拟的,分析结果请不要太过在意。

regress1=lm(y~x1, data=data)
# 回归
regress
# 查看结果
图片.png
summary(regress1)
# 使用summary查看结果
图片.png

提取截距, intercept:

coef(regress1)[1]
图片.png

提取x1的系数:

coef(regress1)[2]
图片.png

提取x1系数检验结果:

summary(regress1)$coefficients[2,4]
图片.png

三、ggplot画图

library(ggplot2)
# 加载包
p=ggplot(data=data, aes(x=x1, y=y)) +
geom_point(color="deepskyblue") +
geom_smooth(method="lm") +
theme(panel.grid=element_blank(), panel.background=element_rect(fill='transparent', color='black')) 

ggsave(p, file="p2.png")
# 保存结果,打开如下:
图片.png

四、添加回归方程

写一个添加回归方程的函数。

lm_func = function(df)
{
    m = lm(df[,2] ~ df[,1])
if(coef(m)[2]>0)
# 为保证x1系数的正负符号正确,判断x1的系数是否大于0,大于0则执行:
    {
        eq <- substitute(italic(y) == a + b %.% italic(x)*","~~italic(r)^2~"="~r2*","~~italic(p)~"="~p_value,
list(a = format(coef(m)[1], digits = 2), b = format(coef(m)[2], digits = 2), r2 = round(summary(m)$r.squared, 3), p_value = round(summary(m)$coefficients[2, 4])))
    }
else
# 小于0则执行:
    {
        eq <- substitute(italic(y) == a~b %.% italic(x)*","~~italic(r)^2~"="~r2*","~~italic(p)~"="~p_value,
list(a = format(coef(m)[1], digits = 2), b = format(coef(m)[2], digits = 2), r2 = round(summary(m)$r.squared, 3), p_value = round(summary(m)$coefficients[2, 4], 3)))
    }
as.character(as.expression(eq))
# 返回字符串
}

把函数添加到geom_text中,再次画图。

p2=ggplot(data=data, aes(x=x1, y=y)) +
geom_point(color="deepskyblue") +
geom_smooth(method="lm") +
theme(panel.grid=element_blank(), panel.background=element_rect(fill='transparent', color='black')) +
geom_text(x=20, y=26, aes(label=lm_func(data.frame(data[, c(1, 2)]))), parse=T)

ggsave(p2, file= "p2.png")
# 保存结果,打开如下:
有公式了吧,哈哈

五、多元线性回归

在lm函数中指定公式即可。

regress2=lm(formula=y~x1+x2+x3, data=data)
summary(regress2)
图片.png

更多:
[R]线性回归
测序深度和GC含量的问题!【直播】我的基因组 47

\color{green}{😀😀原创文章,码字不易,转载请注明出处😀😀}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容