R语言 如何使用lm()函数来拟合线性模型
在这篇文章中,我们将学习如何在R编程语言中使用lm()函数来拟合线性模型。
线性模型是用来预测基于自变量的未知变量的值。它主要用于找出变量之间的关系和进行预测。lm()函数用于在R语言中对数据帧进行线性模型拟合。它可以用来进行回归、单层方差分析和协方差分析,以预测不在数据框中的数据所对应的数值。这些在预测房地产价格、天气预报等方面都非常有帮助。
在R语言中使用 lm() 函数来拟合线性模型,我们首先使用data.frame()函数来创建一个样本数据框,其中包含必须使用回归函数来拟合线性模型的值。然后我们使用lm()函数将某个函数拟合到给定的数据框中。
语法:
lm( fitting_formula, dataframe )
参数
- fitting_formula: 决定了线性模型的公式。
- dataframe: 决定了包含数据的数据框的名称。
然后,我们可以使用summary()函数来查看线性模型的总结。summary()函数解释了线性模型分析的最重要的统计值。
语法:
summary( linear_model )
摘要包含以下关键信息。
- 残差标准误差: 决定了误差的标准偏差,其中方差的平方根减去n减1+#所涉及的变量,而不是除以n-1。
- 多重R平方: 确定你的模型与数据的拟合程度。
- 调整后的R平方: 考虑到你有多少个样本和你使用多少个变量,使多重R平方正常化。
- F-Statistic: 是一个 “全局 “测试,检查你的系数中是否至少有一个是非零的。
举例: 举例说明lm()函数的用法。
# 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)
输出
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 )
例子: 上述拟合线性模型的诊断图。
# 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( dfx, dfy)
abline( Linear_model )
例子: 绘制线性模型图
# 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( dfx, dfy )
abline( linear_model)
输出
使用拟合模型预测未知数据点的值
为了使用上述拟合的线性模型预测新的输入值,我们使用predict()函数。predict()函数接收模型和带有未知数据点的数据框,并根据拟合模型预测每个数据点的值。
语法:
predict( model, data )
参数
- model: 确定线性模型。
- data: 确定具有未知数据点的数据框。
例子: 预测新的输入
# 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