一、線性回歸簡介
線性回歸是數據分析中最常見的方法之一。它用於建立一個關於自變量和因變量之間的線性關係模型,以便根據自變量的值對因變量進行預測。線性回歸模型的數學表達式如下:
y = β0 + β1*x + ε
其中,y表示因變量,x表示自變量,β0和β1為常數,ε為誤差項。β0和β1決定了線性回歸模型的形狀。簡單來說,線性回歸就是通過擬合一個線性方程來預測因變量的值。
二、使用lm()函數繪製直線
在R語言中,使用lm()函數可以實現線性回歸的建模。lm()函數的參數是一個公式(formula)和一個數據框(data frame)。公式的格式為response ~ predictor,表示以response作為因變量,以predictor作為自變量進行回歸分析。我們可以通過coef()函數來獲取擬合直線的斜率和截距,然後使用abline()函數在圖表中繪製該直線。下面是一個簡單的例子:
# 加載ggplot2包
library(ggplot2)
# 生成一個隨機數據集
set.seed(123)
x <- rnorm(50)
y <- 0.5*x + rnorm(50)
data <- data.frame(x=x, y=y)
# 繪製散點圖
ggplot(data, aes(x=x, y=y)) +
geom_point() +
# 添加擬合直線
geom_smooth(method="lm", se=FALSE)
在上述代碼中,我們首先利用rnorm函數生成了一個長度為50的隨機數向量作為自變量x。然後,我們利用y = 0.5*x + rnorm函數生成長度為50的因變量y,其中0.5是我們想要的斜率。接着,我們將x和y合成一個數據框,並利用ggplot2包繪製了散點圖。最後,我們使用geom_smooth函數添加了一條擬合直線。method=”lm”表示使用線性模型進行擬合,se=FALSE表示去除置信區間。
三、使用abline()函數繪製直線
如果我們想要更直接地繪製直線,可以使用abline()函數。該函數的參數是直線的斜率和截距。以下是一個示例:
# 加載ggplot2包
library(ggplot2)
# 生成一個隨機數據集
set.seed(123)
x <- rnorm(50)
y <- 0.5*x + rnorm(50)
data <- data.frame(x=x, y=y)
# 繪製散點圖
ggplot(data, aes(x=x, y=y)) +
geom_point() +
# 添加直線
geom_abline(intercept=0, slope=0.5)
在上述代碼中,我們首先利用rnorm函數生成了一個長度為50的隨機數向量作為自變量x。然後,我們利用y = 0.5*x + rnorm函數生成長度為50的因變量y,其中0.5是我們想要的斜率。接着,我們將x和y合成一個數據框,並利用ggplot2包繪製了散點圖。最後,我們使用geom_abline函數添加了一條直線。
四、使用base庫中的lm和abline函數繪製直線
R的base庫中也提供了lm()和abline()函數來完成線性回歸和繪製直線的工作。下面是一個示例:
# 生成一個隨機數據集
set.seed(123)
x <- rnorm(50)
y <- 0.5*x + rnorm(50)
data <- data.frame(x=x, y=y)
# 進行線性回歸併繪製直線
model <- lm(y ~ x, data=data)
plot(x, y)
abline(model, col="red")
在上述代碼中,我們首先利用rnorm函數生成了一個長度為50的隨機數向量作為自變量x。然後,我們利用y = 0.5*x + rnorm函數生成長度為50的因變量y,其中0.5是我們想要的斜率。接着,我們將x和y合成一個數據框,並利用lm()函數進行線性回歸擬合。最後,我們使用plot()函數繪製散點圖,並使用abline()函數添加了一條直線,其中model是我們剛剛擬合出的線性模型。
五、使用ggplot2繪製直線
除了上面介紹的方法外,ggplot2包中還提供了geom_abline函數來繪製直線。這個函數比abline()函數更加靈活,可以設置線條顏色、線型等屬性。以下是一個示例:
# 加載ggplot2包
library(ggplot2)
# 生成一個隨機數據集
set.seed(123)
x <- rnorm(50)
y <- 0.5*x + rnorm(50)
data <- data.frame(x=x, y=y)
# 繪製散點圖和直線
ggplot(data, aes(x=x, y=y)) +
geom_point() +
# 添加直線
geom_abline(intercept=0, slope=0.5, color="red", linetype="dashed")
在上述代碼中,我們首先利用rnorm函數生成了一個長度為50的隨機數向量作為自變量x。然後,我們利用y = 0.5*x + rnorm函數生成長度為50的因變量y,其中0.5是我們想要的斜率。接着,我們將x和y合成一個數據框,並利用ggplot2包繪製了散點圖。最後,我們使用geom_abline函數添加了一條直線,其中intercept和slope參數分別是截距和斜率,color和linetype參數分別設置了線條的顏色和線型。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/185857.html