1️⃣ 线性回归(
Linear Regression
)是利用称为线性回归方程的最小平方函数对一个或多个自变量和因变量之间关系进行建模的一种回归分析。2️⃣ 回归分析中,只包括一个自变量和一个因变量,且二者的关系可用一条直线近似表示,这种回归分析称为
一元线性回归
。 3️⃣ 回归分析中包括两个或两个以上的自变量,且因变量和自变量之间是线性关系,则称为多元线性回归
。
一元线性回归分析法的数学方程:
rm(list = ls())
library(tidyverse)
library(rms)
用到的是大名鼎鼎的mtcars
,1974年《Motor Trend US》
杂志上记录的,包括32种汽车的mpg
(燃料消耗)、hp
(马力)等方面的数据。
dat <- mtcars %>%
rownames_to_column(.,"ID")
我们先看一下有没有NA
值,用一下tidyverse
的函数吧。
这里并没有NA
值的存在,所以就不过滤了。
dat %>%
summarise_all(
~ sum(is.na(.))
)
这里我们看一下hp
(马力)对mpg
(燃料消耗)的影响。
在这之前,我们先做一个散点图看一下相关性。(就用之前讲过的ggstatsplot
包吧)
library(ggstatsplot)
ggscatterstats(dat,
x = hp,
y = mpg)
可以看到这里hp
与mpg
间存在显著相关性,但hp
一定会影响mpg
吗??
其实不一定,就好像我们一般都觉得胖的人像大款,会有钱,体重
和收入
好像是正相关的;
但胖的人也有可能是伙夫啊~ 😂
为了进一步确定hp
会不会影响mpg
,我们接着使用一元线性回归看一下;
mod1 <- lm(formula = mpg ~ hp,data = dat)
print(mod1)
Note! 这里30.09886
为截距(b
),-0.06823
为斜率(a
)。也就是说我们建立的线性回归模型为:
summary(mod1)
这里我们挑选4
个变量进行批量
单因素回归。我们先自定义函数,再使用map
进行批量计算。
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(.)
这里我们用ggforestplot
包进行可视化,具体用法后面再做详细介绍。😘
library(ggforestplot)
colnames(result) <- c("name", "beta", "se", "pvalue")
forestplot(
df = result,
estimate = beta,
colour = name,
title = "",
xlab = "",
pvalue = pvalue,
psignif = 0.05)
最后祝大家早日不卷!~