《Python 数据分析》课程作业仓库,用于整理每周理论作业、Python 实验代码与数据分析结果。
- 学生:赵鑫亿
- 学期:2026 秋季学期
- 课程:Python 数据分析
- 仓库用途:按周整理并提交课程作业,方便查看、运行与后续复习
| 周次 | 目录 | 主要内容 | 状态 |
|---|---|---|---|
| Week 1 | homework-week1 | Python 基础:输出 helloworld |
已完成 |
| Week 2 | homework-week2 | OLS 理论证明、调整后 (R^2)、Carseats 多元线性回归与 VIF | 已完成 |
| Week 3 | homework-week3 | Ridge、Lasso、Elastic Net 理论与 Hitters 实战 | 已完成 |
| Week 4 | homework-week4 | Netflix 数据 Elastic Net 分析 | 已完成 |
python-data-analysis-homework/
├── README.md
├── homework-week1/
│ └── hello.py
└── homework-week2/
├── theory.md
└── code/
└── carseats_regression.py
├── homework-week3/
│ ├── theory.md
│ └── code/
│ └── regularized_regression_comparison.py
└── homework-week4/
├── analysis.md
└── code/
└── netflix_elastic_net.py
第一周用于验证 Python 基础运行环境。
运行:
python homework-week1/hello.py输出:
helloworld
第二周作业包含理论题与 Python 实践题两部分。
主要内容:
- 在线性回归中证明 OLS 残差满足 [ \sum_{i=1}^{n} e_i = 0 ] 以及 [ \sum_{i=1}^{n} x_i e_i = 0 ]
- 从 RSS 与 自由度 的角度解释:
- 为什么加入无关特征后普通 (R^2) 只会上升或保持不变;
- 为什么调整后的 (R^2_{adj}) 可能下降。
文件:homework-week2/code/carseats_regression.py
使用 Carseats 数据集,以 Sales 为响应变量,选取:
PriceIncomeAdvertisingShelveLoc
建立多元线性回归模型。
程序会自动完成:
- 加载 Carseats 数据集;
- 建立 OLS 多元线性回归模型;
- 输出完整模型拟合报告;
- 判断
ShelveLoc的基准组; - 解释
ShelveLoc[Good]的实际商业含义; - 计算各解释变量的 VIF;
- 判断是否存在明显多重共线性风险。
当前数据下的关键结果约为:
| 指标 | 结果 |
|---|---|
| (R^2) | 0.627 |
| ShelveLoc 基准组 | Bad |
| ShelveLoc[Good] 系数 | 4.836 |
| 最大 VIF | 约 1.50 |
| 多重共线性 | 无明显风险 |
其中 ShelveLoc[Good] 系数约为 4.836,表示在其他解释变量保持不变时,货架位置为 Good 的商店相较于 Bad 的商店,模型预测销量平均高约 4.836 千件。
建议使用 Python 3.x。
安装依赖:
pip install pandas statsmodels运行:
python homework-week2/code/carseats_regression.py程序会直接在终端输出模型摘要、系数解释和 VIF 检验结果。
- Python 3
- pandas
- statsmodels
- OLS Multiple Linear Regression
- Variance Inflation Factor (VIF)
- Ridge / Lasso / Elastic Net
- scikit-learn Pipeline 与 10 折交叉验证
- Netflix 数据 Elastic Net 分析
安装全部依赖:
pip install -r requirements.txt本仓库将按照课程进度持续更新,每周作业统一放入对应的
homework-weekN目录中。