数据分析:从R到Python的实践之旅
立即解锁
发布时间: 2025-08-31 00:11:07 阅读量: 14 订阅数: 12 AIGC 


从Excel到Python数据分析
# 数据分析:从 R 到 Python 的实践之旅
## 一、R 语言中的数据分析
### 1. 假设检验
在数据分析中,假设检验是一种重要的工具。以汽车数据为例,为了探究美国和欧洲汽车的里程数是否存在显著差异,我们创建一个新的数据框,仅包含美国和欧洲汽车的观测数据,然后进行 t 检验。
```R
# 过滤出美国和欧洲汽车的数据
mpg_filtered <- filter(mpg, origin=='USA' | origin=='Europe')
# 进行 t 检验
t.test(mpg ~ origin, data = mpg_filtered)
```
运行上述代码后,输出结果如下:
```
Welch Two Sample t-test
data: mpg by origin
t = 8.4311, df = 105.32, p-value = 1.93e-13
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
5.789361 9.349583
sample estimates:
mean in group Europe mean in group USA
27.60294 20.03347
```
根据 p 值,我们可以拒绝原假设,这表明美国和欧洲汽车的平均里程数存在显著差异。
如果想要探究美国、欧洲和亚洲汽车的里程数差异,则需要使用方差分析(ANOVA)。
### 2. 连续变量关系分析
#### 2.1 相关矩阵
使用 base R 中的 `cor()` 函数可以计算连续变量之间的相关矩阵。
```R
# 选择连续变量并计算相关矩阵
select(mpg, mpg:horsepower) %>%
cor()
```
输出结果为:
```
mpg weight horsepower
mpg 1.0000000 -0.8322442 -0.7784268
weight -0.8322442 1.0000000 0.8645377
horsepower -0.7784268 0.8645377 1.0000000
```
从相关矩阵中,我们可以看出各变量之间的相关性。例如,`mpg` 与 `weight` 呈负相关,与 `horsepower` 也呈负相关。
#### 2.2 可视化
使用 `ggplot2` 包可以可视化变量之间的关系,如汽车重量和里程数的关系。
```R
# 绘制散点图
ggplot(data = mpg, aes(x = weight, y = mpg)) +
geom_point() + xlab('weight (pounds)') +
ylab('mileage (mpg)') + ggtitle('Relationship between weight and mileage')
```
此外,还可以使用 base R 中的 `pairs()` 函数生成变量组合的配对图。
```R
# 生成配对图
select(mpg, mpg:horsepower) %>%
pairs()
```
### 3. 线性回归
使用 base R 中的 `lm()` 函数进行线性回归分析,以探究汽车重量对里程数的影响。
```R
# 进行线性回归
mpg_regression <- lm(mpg ~ weight, data = mpg)
# 查看回归模型的摘要信息
summary(mpg_regression)
```
输出结果包含了系数、p 值、R 平方等重要信息,通过这些信息可以判断重量对里程数的影响是否显著。
最后,我们可以在散点图上拟合回归直线。
```R
# 绘制带有回归直线的散点图
ggplot(data = mpg, aes(x = weight, y = mpg)) +
geom_point() + xlab('weight (pounds)') +
ylab('mileage (mpg)') + ggtitle('Relationship between weight and mileage') +
geom_smooth(method = lm)
```
回归直线周围的阴影区域表示回归斜率的置信区间,它以 95% 的置信度显示了每个 x 值对应的真实总体估计可能所在的范围。
### 4. 训练/测试集分割与验证
在机器学习中,训练/测试集分割是一种常用的技术,用于确保模型能够泛化到更广泛的数据集。在 R 中,我们可以使用 `tidymodels` 包来实现这一功能。
```R
# 设置随机数种子,确保结果可重复
set.seed(1234)
# 进行数据分割
mpg_split <- initial_split(mpg)
mpg_train <- training(mpg_split)
mpg_test <- testing(mpg_split)
```
默认情况下,`tidymodels` 会将数据随机分成训练集(75%)和测试集(25%)。我们可以使用 `dim()` 函数验证分割后的数据集大小。
```R
# 查看训练集和测试集的维度
dim(mpg_train)
dim(mpg_test)
```
接下来,我们构建训练模型,并对其进行评估。
```R
# 指定模型类型
lm_spec <- linear_reg()
# 拟合模型
lm_fit <- lm_spec %>%
fit(mpg ~ weight, data = mpg_train)
# 获取模型系数和 p 值
tidy(lm_fit)
# 获取模型性能指标
glance(lm_fit)
# 对测试集进行预测
mpg_results <- predict(lm_fit, new_data = mpg_test) %>%
bind_cols(mpg_test)
# 计算 R 平方
rsq(data = mpg_results, truth = mpg, estimate = .pred)
# 计算均方根误差(RMSE)
rmse(data = mpg_results, truth = mpg, estimate = .pred)
```
通过计算 R 平方和均方根误差(RMSE),我们可以评估模型在测试集上的性能。
## 二、Python 语言入门
### 1. Python 简介
Python 是一种免费的开源编程语言,由 Guido van Rossum 于 1991 年创建。与专门为数据
0
0
复制全文
相关推荐










