在 R 中使用 ggplot2 进行多元线性回归
回归线主要用于统计模型中,这些模型有助于估计因变量和至少一个自变量之间的关系。有两种类型的回归线:
- 单回归线。
- 多条回归线。
在本文中,我们将讨论如何使用 ggplot2 散点图在 R 编程语言中绘制多条回归线。
使用的数据集:这里我们使用内置数据框“Orange”,其中包含有关五种不同类型橙树生长的详细信息。数据框有35 行和 3列。此数据框中的列是:
- 树:根据增加的橙子直径值进行实验的树的排序。
- 年龄:树木自种植以来的年龄。
- 周长:橙子的周长。
我们首先创建一个散点图。我们将使用函数geom_point()来绘制 ggplot2 库下的散点图。
句法:
geom_point( mapping=NULL, data=NULL, stat=identity, position=”identity”)
基本上,我们正在对橙子的周长与年龄进行比较分析。使用的函数是geom_smooth()绘制平滑线或回归线。
Syntax: geom_smooth(method=”auto”,se=FALSE,fullrange=TRUE,level=0.95)
Parameter :
- method : The smoothing method is assigned using the keyword loess, lm, glm etc
- lm : linear model, loess : default for smooth lines during small data set observations.
- formula : You can also use formulas for smooth lines. For example : y~poly(x,4) which will plot a smooth line of degree 4. Higher the degree more bends the smooth line will have.
- se : It takes logical values either “TRUE” or “FALSE”.
- fullrange : It takes logical value either “TRUE” or “FALSE”.
- level : By default level is 0.95 for the confidence interval.
让我们先画一个简单的单线回归,然后将复杂度增加到多条线。
例子:
R
# Scatter Plot
library(ggplot2)
ggplt <- ggplot(Orange,aes(x=circumference,y=age))+
geom_point()+
theme_classic()
ggplt
# Plotting a single Regression Line
ggplt+geom_smooth(method=lm,se=FALSE,fullrange=TRUE)
R
library(ggplot2)
ggplt <- ggplot(Orange,aes(x=circumference,y=age,shape=Tree))+
geom_point()+
theme_classic()
ggplt
# Plotting multiple Regression Lines
ggplt+geom_smooth(method=lm,se=FALSE,fullrange=TRUE,
aes(color=Tree))
输出:
这是一条单一的平滑线或俗称的回归线。在这里,这些点是组合在一起的,而不是基于任何组进行分离。
多元线性回归将处理相同的参数,但每条线将代表不同的组。因此,如果我们想根据它们所属的组绘制这些点,我们需要多条回归线。每条回归线将与一个组相关联。
多条回归线的基本公式:
R 中计算与多重回归线相关的系数和其他参数的语法是:
var <- lm(formula, data = data_set_name)
summary(var)
lm : linear model
var : variable name
要在同一图形上计算多条回归线,请根据应形成哪些组来设置属性以塑造参数。
句法:
shape = attribute
单个回归线与单个组相关联,可以在图的图例中看到。现在,要为每条回归线分配不同的颜色,请编写以下命令:
color = attribute
例子:
电阻
library(ggplot2)
ggplt <- ggplot(Orange,aes(x=circumference,y=age,shape=Tree))+
geom_point()+
theme_classic()
ggplt
# Plotting multiple Regression Lines
ggplt+geom_smooth(method=lm,se=FALSE,fullrange=TRUE,
aes(color=Tree))
输出: