R语言线性回归:初学者指南
你好,有抱负的数据科学家!今天,我们将使用R语言开始一段激动人心的线性回归之旅。别担心你之前从未编程过——我会一直陪伴你,一步一步地解释每一个细节。在本教程结束时,你会对仅用几行代码就能完成的事情感到惊讶!
线性回归是什么?
在我们深入R代码之前,让我们先了解一下线性回归是什么。想象你正在尝试根据外面的温度预测你会卖出多少冰淇淋。你可能会注意到,随着温度的升高,你的冰淇淋销量也在增加。线性回归帮助我们发现并描述这种关系的数学公式。
建立回归的步骤
现在,让我们将R中执行线性回归的过程分解成几个可管理的步骤:
1. 准备数据
首先,我们需要一些数据来工作。在R中,我们可以创建自己的数据集或导入一个。让我们创建一个关于温度和冰淇淋销量的简单数据集:
temperature <- c(20, 22, 25, 27, 30, 32, 35)
ice_cream_sales <- c(50, 55, 65, 70, 80, 85, 95)
# 合并成数据框
ice_cream_data <- data.frame(temperature, ice_cream_sales)
# 查看数据
print(ice_cream_data)
当你运行这段代码时,你将看到一个整洁的表格,显示我们的温度和冰淇淋销量数据。酷吧?
2. 可视化数据
在我们开始任何分析之前,先看看我们的数据总是一个好主意。R的绘图功能使这变得超级简单:
plot(ice_cream_data$temperature, ice_cream_data$ice_cream_sales,
main = "冰淇淋销量与温度",
xlab = "温度 (°C)", ylab = "冰淇淋销量",
pch = 19, col = "blue")
这段代码将创建我们数据的散点图。main
参数设置标题,xlab
和ylab
为轴标签,pch = 19
使点成为实心圆圈,col = "blue"
将它们染成蓝色。玩转这些选项——让它成为你自己的风格!
3. 执行线性回归
现在到了激动人心的部分——实际执行线性回归。在R中,我们使用lm()
函数,它代表“线性模型”:
ice_cream_model <- lm(ice_cream_sales ~ temperature, data = ice_cream_data)
这行代码可能看起来很简单,但在幕后它做了很多工作。它正在找到穿过我们数据点的最佳拟合线。
4. 检查结果
让我们看看我们的模型发现了什么:
summary(ice_cream_model)
这个命令将给你一个模型的详细摘要。如果有些内容看起来令人畏惧——别担心,我们会关注关键部分:
- 系数部分显示了我们线的斜率和截距。
- R平方值告诉我们模型拟合数据的好坏。
5. 可视化回归线
现在,让我们将我们的回归线添加到我们的图中:
plot(ice_cream_data$temperature, ice_cream_data$ice_cream_sales,
main = "冰淇淋销量与温度",
xlab = "温度 (°C)", ylab = "冰淇淋销量",
pch = 19, col = "blue")
abline(ice_cream_model, col = "red")
abline()
函数将我们的回归线添加到图中。看到这条线穿过我们的点,是不是很满意?
lm()函数:你的新好朋友
我们已经使用了lm()
函数,但让我们更深入地了解一下。这个函数是R中线性回归的核心。以下是其基本结构的分解:
lm(formula, data)
-
formula
:这指定了变量之间的关系。在我们的案例中,它是ice_cream_sales ~ temperature
。 -
data
:这是你正在使用的数据集。
~
符号在公式中读作“被建模为...的函数”。因此,我们的公式读作“冰淇淋销量被建模为温度的函数”。
predict()函数:进行预测
现在我们有了模型,我们可以用它来做出预测。这就是predict()
函数派上用场的地方:
new_temperatures <- data.frame(temperature = c(23, 28, 33))
predicted_sales <- predict(ice_cream_model, newdata = new_temperatures)
print(predicted_sales)
这段代码预测了23°C、28°C和33°C温度下的冰淇淋销量。很酷,对吧?
有用函数表
以下是我们使用的主要函数的快速参考表:
函数 | 目的 | 示例 |
---|---|---|
lm() |
执行线性回归 | lm(y ~ x, data) |
summary() |
获取详细的模型结果 | summary(model) |
plot() |
创建散点图 | plot(x, y) |
abline() |
将回归线添加到图中 | abline(model) |
predict() |
进行预测 | predict(model, newdata) |
记住,熟能生巧!不要害怕用这些函数做实验,尝试不同的数据集。在你意识到之前,你将成为线性回归的高手!
总之,线性回归是理解变量间关系和进行预测的强大工具。有了R,你需要的所有工具都在你的指尖。继续探索,继续学习,最重要的是,享受其中的乐趣!
Credits: Image by storyset