如何在 R 中使用 lm()函数来拟合线性模型?
在本文中,我们将学习如何使用 lm()函数来拟合 R 编程语言中的线性模型。
线性模型用于根据自变量预测未知变量的值。它主要用于找出变量之间的关系和预测。 lm()函数用于将线性模型拟合到 R 语言中的数据帧。可用于进行回归、单层方差分析、协方差分析,预测不在数据框内的数据对应的值。这些对于预测房地产价格、天气预报等非常有帮助。
为了使用lm()函数拟合 R 语言中的线性模型,我们首先使用 data.frame()函数创建一个样本数据框,其中包含必须使用回归函数拟合线性模型的值。然后我们使用 lm()函数将某个函数拟合到给定的数据帧。
Syntax:
lm( fitting_formula, dataframe )
Parameter:
- fitting_formula: determines the formula for the linear model.
- dataframe: determines the name of the data frame that contains the data.
然后,我们可以使用 summary()函数查看线性模型的摘要。 summary()函数解释线性模型分析中最重要的统计值。
句法:
summary( linear_model )
摘要包含以下关键信息:
- 残差标准误差:确定误差的标准偏差,其中方差的平方根减去 n 减去 1 + 所涉及的变量数,而不是除以 n-1。
- 多重 R 平方:确定您的模型与数据的拟合程度。
- Adjusted R-Squared:通过考虑您拥有的样本数量和使用的变量数量来规范化 Multiple R-Squared。
- F-Statistic:是一种“全局”测试,检查是否至少有一个系数不为零。
示例:显示 lm()函数用法的示例。
R
# sample data frame
df <- data.frame( x= c(1,2,3,4,5),
y= c(1,5,8,15,26))
# fit linear model
linear_model <- lm(y ~ x^2, data=df)
# view summary of linear model
summary(linear_model)
R
# sample data frame
df <- data.frame( x= c(1,2,3,4,5),
y= c(1,5,8,15,26))
# fit linear model
linear_model <- lm(y ~ x^2, data=df)
# view diagnostic plot
plot(linear_model)
R
# sample data frame
df <- data.frame( x= c(1,2,3,4,5),
y= c(1,5,8,15,26))
# fit linear model
linear_model <- lm(y ~ x^2, data=df)
# Plot abline plot
plot( df$x, df$y )
abline( linear_model)
R
# sample data frame
df <- data.frame( x= c(1,2,3,4,5),
y= c(1,5,8,15,26))
# fit linear model
linear_model <- lm(y ~ x^2, data=df)
# Predict values
predict( linear_model, newdata = data.frame(x=c(15,16,17)) )
输出:
Call:
lm(formula = y ~ x^2, data = df)
Residuals:
1 2 3 4 5
2.000e+00 5.329e-15 -3.000e+00 -2.000e+00 3.000e+00
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -7.0000 3.0876 -2.267 0.10821
x 6.0000 0.9309 6.445 0.00757 **
—
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 2.944 on 3 degrees of freedom
Multiple R-squared: 0.9326, Adjusted R-squared: 0.9102
F-statistic: 41.54 on 1 and 3 DF, p-value: 0.007575
诊断图
诊断图帮助我们查看模型不同统计值之间的关系。它有助于我们分析异常值的范围和拟合模型的效率。要查看线性模型的诊断图,我们使用 R 语言中的 plot()函数。
句法:
plot( linear_model )
示例:上述拟合线性模型的诊断图。
R
# sample data frame
df <- data.frame( x= c(1,2,3,4,5),
y= c(1,5,8,15,26))
# fit linear model
linear_model <- lm(y ~ x^2, data=df)
# view diagnostic plot
plot(linear_model)
输出:
绘制线性模型
我们可以使用 abline() 方法绘制上面拟合的线性模型以很好地可视化它。我们首先绘制数据点的散点图,然后使用 abline()函数将其与线性模型的 abline 图叠加。
句法:
plot( df$x, df$y)
abline( Linear_model )
示例:绘制线性模型
R
# sample data frame
df <- data.frame( x= c(1,2,3,4,5),
y= c(1,5,8,15,26))
# fit linear model
linear_model <- lm(y ~ x^2, data=df)
# Plot abline plot
plot( df$x, df$y )
abline( linear_model)
输出:
使用拟合模型预测未知数据点的值
为了使用上述拟合线性模型预测新输入的值,我们使用 predict()函数。 predict()函数获取具有未知数据点的模型和数据框,并根据拟合模型预测每个数据点的值。
Syntax:
predict( model, data )
Parameter:
- model: determines the linear model.
- data: determines the data frame with unknown data points.
示例:预测新的输入
R
# sample data frame
df <- data.frame( x= c(1,2,3,4,5),
y= c(1,5,8,15,26))
# fit linear model
linear_model <- lm(y ~ x^2, data=df)
# Predict values
predict( linear_model, newdata = data.frame(x=c(15,16,17)) )
输出:
1 2 3
83 89 95