📜  如何在 R 中使用 lm()函数来拟合线性模型?

📅  最后修改于: 2022-05-13 01:54:30.913000             🧑  作者: Mango

如何在 R 中使用 lm()函数来拟合线性模型?

在本文中,我们将学习如何使用 lm()函数来拟合 R 编程语言中的线性模型。

线性模型用于根据自变量预测未知变量的值。它主要用于找出变量之间的关系和预测。 lm()函数用于将线性模型拟合到 R 语言中的数据帧。可用于进行回归、单层方差分析、协方差分析,预测不在数据框内的数据对应的值。这些对于预测房地产价格、天气预报等非常有帮助。

为了使用lm()函数拟合 R 语言中的线性模型,我们首先使用 data.frame()函数创建一个样本数据框,其中包含必须使用回归函数拟合线性模型的值。然后我们使用 lm()函数将某个函数拟合到给定的数据帧。

然后,我们可以使用 summary()函数查看线性模型的摘要。 summary()函数解释线性模型分析中最重要的统计值。

句法:

摘要包含以下关键信息:

  • 残差标准误差:确定误差的标准偏差,其中方差的平方根减去 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)) )


输出:

诊断图

诊断图帮助我们查看模型不同统计值之间的关系。它有助于我们分析异常值的范围和拟合模型的效率。要查看线性模型的诊断图,我们使用 R 语言中的 plot()函数。

句法:

示例:上述拟合线性模型的诊断图。

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 图叠加。

句法:

示例:绘制线性模型

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()函数获取具有未知数据点的模型和数据框,并根据拟合模型预测每个数据点的值。

示例:预测新的输入

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