🐳 我正在和鲸社区参加“商业数据分析训练营”和鲸社区 - Heywhale.com,以下是我的学习笔记:
学习主题:统计分析与参数估计
日期:2023/09/22
关键概念/知识点:
- Pythonx相关分析
- 相关系数的概念
- 相关性度量
- 总体相关系数
- 样本相关系数
- 相关性检验
- Python一元线性回归分析
- 一元线性回归方程
- 一元线性回归方程
- 一元线性回归的假设
- 方差分析
- 决定系数
- 估计的标准误差
- 回归系数的假设检验和置信区间
- 回归系数的假设检验
- 回归系数的置信区间
- python下进行一元线性回归分析
- statsmodels工具
- scikit-learn工具
- 一元线性回归方程
- Python多元线性回归分析
- 多元线性回归模型
- 方差分析决定系数与估计的标准误差
- 回归系数的t检验和置信区间
- 回归系数的F检验
- 虚拟变量
- 逻辑回归分析
掌握的新函数/方法:
- pearsonr(x,y) 计算x与y的相关程度
- corr() 获取各列的相关性矩阵
- linear_model.LinearRegression() 建立线性回归模型
- score() 计算线性方程的得分
- fit() 对回归方程进行估计
- summary() 保存计算的结果
代码示例:
# 求解相关性
# 导入数据
import pandas as pd
import numpy as np
import scipy.stats.stats as stats
import matplotlib.pyplot as plt
data = pd.read_excel('/home/mw/input/data_analysis8875/al7-1.xls')
data.head()
# 绘制散点图
plt.scatter(data['adv'],data['sale'])
plt.xlabel("广告费")
plt.ylabel("销售额")
plt.show()
# 计算相关系数
r = stats.pearsonr(data['adv'],data['sale'])[0]
print(r)
# 一元线性回归分析
# 导入相关库
import pandas as pd
import numpy as np
# 读取数据
data = pd.DataFrame(pd.read_excel("/home/mw/input/statistics2731/al8-1.xls"))
# 预览数据,第一列为公司名称,第二列为新产品销售额,第三列为销售人员数量
data.head()
# 对获取的数据分别统计各列的情况,诸如最大值、最小值、中位数等
data.describe()
# 分别用x,y表示新产品销售额和销售人员数量的数据,为列表形式
x = np.array(data['rs'])
y = np.array(data['xse'])
# 计算x和y之间的相关程度(1计算相关系数)
# 导入计算相关程度的stats包
import scipy.stats.stats as stats
# 使用pearsonr()函数统计相关度
r = stats.pearsonr(x,y)[0]
print(r)
# 计算x和y之间的相关程度(2计算混淆矩阵)
# 可直接通过data的corr()得到各列的相关性矩阵
data.corr()
# 利用statsmodels工具回归分析
# 导入相关包
import statsmodels.api as sm
# sm.add_constant() 在 array 上加入一列常项1,便于计算截距
X = sm.add_constant(x)
# 对反应变量y和回归变量X上使用 OLS() 函数建立普通最小二乘模型
model = sm.OLS(y,X)
# 获取拟合结果
fit = model.fit()
# 得到一元线性回归的统计数据
fit.summary()
关键总结:
- 相关系数是一种用于衡量两个变量之间线性关系强度的数值指标。它的取值范围在-1到1之间,其中:1表示完全正相关,-1表示完全负相关,0表示无相关。。
- 决定系数越大,表示回归模型越好。
-
虚拟变量的取值为0或1这两类时,只需一个虚拟变量;如果取值为n类时,则需n-1个虚拟变量。
问题/困惑:
- 什么时候用一元线性回归或多元线性回归不是很清楚
- 多加练习回归分析案例
- 继续完成本训练营的关卡4
参考资料/相关资源链接:
- 商业分析师 Python 训练营 BA1:应用入门:和鲸社区 - Heywhale.com