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}{😀😀原创文章,码字不易,转载请注明出处😀😀}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,036评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,046评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,411评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,622评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,661评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,521评论 1 304
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,288评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,200评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,644评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,837评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,953评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,673评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,281评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,889评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,011评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,119评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,901评论 2 355

推荐阅读更多精彩内容