打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
技术贴 | R语言:线性回归、geom_text添加回归方程

本文由阿童木根据实践经验而整理,希望对大家有帮助。

原创微文,欢迎转发转载。

导读

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

一、模拟输入数据

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

二、一元线性回归

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

regress1=lm(y~x1, data=data)
# 回归
regress
# 查看结果,如下

summary(regress1)
# 使用summary查看结果,如下

>提取数据

summary(regress1)
coef(regress1)[1]
# 提取截距,intercept

coef(regress1)[2]
# 提取x1的系数

summary(regress1)$coefficients[2,4]
# 提取x1系数(模型)检验结果 

三、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)
# 保存结果,打开如下:

四、添加回归方程

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

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[24])))
    }
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[24], 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(12)]))), parse=T)

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

五、多元线性回归

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

regress2=lm(formula=y~x1+x2+x3, data=data)
summary(regress2)

感谢阅读~ 




你可能还喜欢

技术贴 | 16S专题 | 简单介绍如何用自己的笔记本处理高通量16S数据

2 技术贴 | 宏基因组专题 | 组装工具盘点和比较

3 技术贴 | R语言菌群Alpha多样性分析和绘图

技术贴 | 宏转录组专题 | DDBJ数据库:宏转录组测序数据下载

技术贴 | R语言pheatmap聚类分析和热图


本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
自学R语言(十)-简单线性回归图的绘制
R入门(三)
R语言广义相加模型 (GAMs)分析预测CO2时间序列数据
R语言:断点回归设计
R语言非线性拟合之多项式回归
【直播】我的基因组47:测序深度和GC含量的关系
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服