线性回归用于基于一个或多个输入预测变量x预测结果变量y的值。换句话说,线性回归用于在预测变量和响应变量之间建立线性关系。
在线性回归中,预测变量和响应变量通过方程式关联,其中两个变量的指数均为1。在数学上,当绘制为图形时,线性关系表示一条直线。
有以下用于线性回归的一般数学方程式:
y = ax + b
这里,
一个人的身高已知时对其体重的预测就是回归的一个简单例子。要预测体重,我们需要在一个人的身高和体重之间建立关系。
可以按照以下步骤创建关系:
lm()函数的语法如下:
lm(formula,data)
这里,
formula - 它是表示x和y之间关系的符号。
data - 这是一个我们将在其上应用公式的向量。
让我们开始执行第二步和第三步,即创建一个关系模型并获取系数。我们将使用lm()函数并传递x和y输入向量,并将结果存储在名为 relationship_model 的变量中。
示例
# 为LM()函数创建输入向量 x <- c(141, 134, 178, 156, 108, 116, 119, 143, 162, 130) y <- c(62, 85, 56, 21, 47, 17, 76, 92, 62, 58) # 应用LM()函数。 relationship_model<- lm(y~x) # 打印系数 print(relationship_model)
输出:
Call: lm(formula = y ~ x) Coefficients: (Intercept) x 47.50833 0.07276
我们将使用summary()函数获取关系模型的摘要信息。让我们看一个示例,以了解summary()函数的用法。
示例
#为LM()函数创建输入向量 x <- c(141, 134, 178, 156, 108, 116, 119, 143, 162, 130) y <- c(62, 85, 56, 21, 47, 17, 76, 92, 62, 58) # 应用LM()函数。 relationship_model<- lm(y~x) # 打印系数 print(summary(relationship_model))
输出:
Call: lm(formula = y ~ x) Residuals: Min 1Q Median 3Q Max -38.948 -7.390 1.869 15.933 34.087 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 47.50833 55.18118 0.861 0.414 x 0.07276 0.39342 0.185 0.858 Residual standard error: 25.96 on 8 degrees of freedom Multiple R-squared: 0.004257, Adjusted R-squared: -0.1202 F-statistic: 0.0342 on 1 and 8 DF, p-value: 0.8579
现在,我们将借助predict()函数来预测新人的体重。预测函数的语法如下:
predict(object, newdata)
object - 这是我们已经使用lm()函数创建的公式。
newdata - 它是包含预测变量新值的向量。
示例
# 为LM()函数创建输入向量 x <- c(141, 134, 178, 156, 108, 116, 119, 143, 162, 130) y <- c(62, 85, 56, 21, 47, 17, 76, 92, 62, 58) # 应用LM()函数。 relationship_model<- lm(y~x) # 找到高度170的人的重量。 z <- data.frame(x = 160) predict_result<- predict(relationship_model,z) print(predict_result)
输出:
1 59.14977
现在,我们借助plot()函数绘制预测结果。此函数将参数x和y作为输入向量和更多参数。
示例
# 为LM()函数创建输入向量 x <- c(141, 134, 178, 156, 108, 116, 119, 143, 162, 130) y <- c(62, 85, 56, 21, 47, 17, 76, 92, 62, 58) relationship_model<- lm(y~x) #向图表文件提供名称。 png(file = "linear_regression.png") # 绘图图表。 plot(y,x,col = "red",main = "Height and Weight Regression",abline(lm(x~y)),cex = 1.3,pch = 16,xlab = "Weight in Kg",ylab = "Height in cm") # 保存文件。 dev.off()
输出:
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)