前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >🧐 rms | 批量完成你的线性回归(一)

🧐 rms | 批量完成你的线性回归(一)

作者头像
生信漫卷
发布2022-10-31 17:08:50
1.5K0
发布2022-10-31 17:08:50
举报
文章被收录于专栏:R语言及实用科研软件

1写在前面

1️⃣ 线性回归(Linear Regression)是利用称为线性回归方程的最小平方函数对一个或多个自变量和因变量之间关系进行建模的一种回归分析。

2️⃣ 回归分析中,只包括一个自变量和一个因变量,且二者的关系可用一条直线近似表示,这种回归分析称为一元线性回归。 3️⃣ 回归分析中包括两个或两个以上的自变量,且因变量和自变量之间是线性关系,则称为多元线性回归

一元线性回归分析法的数学方程:

y = ax+b

2用到的包

代码语言:javascript
复制
rm(list = ls())
library(tidyverse)
library(rms)

3示例数据

用到的是大名鼎鼎的mtcars,1974年《Motor Trend US》杂志上记录的,包括32种汽车的mpg(燃料消耗)、hp(马力)等方面的数据。

代码语言:javascript
复制
dat <- mtcars %>% 
  rownames_to_column(.,"ID")

4数据处理

我们先看一下有没有NA值,用一下tidyverse的函数吧。 这里并没有NA值的存在,所以就不过滤了。

代码语言:javascript
复制
dat %>%
  summarise_all(
    ~ sum(is.na(.))
  )

5一元线性回归

5.1 相关性计算

这里我们看一下hp(马力)对mpg(燃料消耗)的影响。 在这之前,我们先做一个散点图看一下相关性。(就用之前讲过的ggstatsplot包吧)

代码语言:javascript
复制
library(ggstatsplot)
ggscatterstats(dat,
               x = hp,
               y = mpg)

可以看到这里hpmpg间存在显著相关性,但hp一定会影响mpg吗?? 其实不一定,就好像我们一般都觉得胖的人像大款,会有钱,体重收入好像是正相关的; 但胖的人也有可能是伙夫啊~ 😂


5.2 建立线性模型

为了进一步确定hp会不会影响mpg,我们接着使用一元线性回归看一下;

代码语言:javascript
复制
mod1 <- lm(formula = mpg ~ hp,data = dat)

print(mod1)

Note! 这里30.09886 为截距(b),-0.06823为斜率(a)。也就是说我们建立的线性回归模型为:

y = -0.6823x + 30.09886

5.3 查看详细信息

代码语言:javascript
复制
summary(mod1)

5.4 批量单因素线性回归分析

这里我们挑选4个变量进行批量单因素回归。我们先自定义函数,再使用map进行批量计算。

代码语言:javascript
复制
regression2 <- function(x){
    coef(summary(lm(mpg~x,data=dat)))[2,c(1,2,4)]
  }
  
result <- map(dat[,4:7],regression2) %>% 
  do.call(rbind,.) %>% 
  as.data.frame() %>% 
  rownames_to_column(.)

5.5 结果可视化

这里我们用ggforestplot包进行可视化,具体用法后面再做详细介绍。😘

代码语言:javascript
复制
library(ggforestplot)
colnames(result) <- c("name", "beta", "se", "pvalue") 

forestplot(
  df = result,
  estimate = beta,
  colour = name,
  title = "",
  xlab = "",
  pvalue = pvalue,
  psignif = 0.05)

最后祝大家早日不卷!~


本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-09-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信漫卷 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1写在前面
  • 2用到的包
  • 3示例数据
  • 4数据处理
  • 5一元线性回归
    • 5.1 相关性计算
      • 5.2 建立线性模型
        • 5.3 查看详细信息
          • 5.4 批量单因素线性回归分析
            • 5.5 结果可视化
            相关产品与服务
            批量计算
            批量计算(BatchCompute,Batch)是为有大数据计算业务的企业、科研单位等提供高性价比且易用的计算服务。批量计算 Batch 可以根据用户提供的批处理规模,智能地管理作业和调动其所需的最佳资源。有了 Batch 的帮助,您可以将精力集中在如何分析和处理数据结果上。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档