R语言线性回归:初学者指南

你好,有抱负的数据科学家!今天,我们将使用R语言开始一段激动人心的线性回归之旅。别担心你之前从未编程过——我会一直陪伴你,一步一步地解释每一个细节。在本教程结束时,你会对仅用几行代码就能完成的事情感到惊讶!

R - Linear Regression

线性回归是什么?

在我们深入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参数设置标题,xlabylab为轴标签,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