写在前面:一些重要的参数(持续更新中)
n–预测变量的个数
p–响应变量的个数
1.R语言基础
向量运算
![[Pasted image 20241116101340.png]]
- sort():排序
- rev():倒序
- table():出现次数
- unique():删除重复的元素/行
创建矩阵
1 | m<-matrix(1:20,nrow=5,ncol=4) |
创建数组
![[Pasted image 20241116102306.png]]
创建数据框
1 | df <- dataframe(x = 1:3 , y = c('a','b','c')) |
![[Pasted image 20241116102448.png]]
![[Pasted image 20241116102457.png]]
数据输入
1 | df=read.table(file="111.txt",header=TRUE) |
处理数据对象的函数
1.删改
- rm(obj,obj,…):删除一个或多个对象
- fix(obj):直接编辑某个对象
- newobj <- edit(obj):编辑并另存为newobj
2.显示
- head(obj):输出某个对象的开始部分
- tail(obj):输出某个对象的结尾部分
- ls():显示当前对象列表
- dim():维度
- str():结构
- length():元素个数
- mode():模式
- class():类型
- names():各个成分名称
3.合并
- c(obj,obj,…):合并多个对象
- cbind(obj,obj,…):按列合并多个对象
- rbind(obj,obj,…):按行合并多个对象
![[Pasted image 20241116103351.png]]
绘图函数
散点图,箱线图
plot()
多个变量之间关系的散点图
pairs(var1,var2)
分割画布的函数
par()
画方格辅助线的函数
grid()
直方图
hists()
描述性统计量
sort()
2.参数方法:简单线性回归与多元线性回归
- 一种简单的监督学习方法
- 假定:预测变量X{X1,X2,…}与响应变量Y之间存在线性关系
- 参数:
- 定义:**
** - 重要假设:误差项
不可自相关
要考虑到的问题?
预测变量与响应变量:
(1)有关系吗?答:进行假设检验
case1:简单线性回归
零假设
备择假设
数学上相当于检验
进行假设检验的理由:如果
检验零假设:t统计量与p值
t统计量
假设:不可约误差服从标准正态分布
此时有t统计量服从t分布
假设
这个尾概率值越小,|t|越大,
*注意!
有时预测变量和响应变量之间不一定符合t分布,有可能是F,z分布或者其他,但是p值的定义和作用不变*
重要结论:p值足够小,我们就可以拒绝零假设,认为预测变量与响应变量之间有关系
(2)关系有多强?观察:p值,r(相关系数)
针对某一个预测变量:如果p值小于某一个阈值,如0.05,则认为p值很小,可以拒绝零假设
r的绝对值越接近1,相关性越强(r中的cor())
case2:多元线性回归
零假设:
备择假设:
进行假设检验的理由:如果
则模型简化为
表达式跟预测变量无关
检验零假设:F统计量与p值
区别:即使不可约误差不服从标准正态分布,样本数量n够多,F统计量依然近似服从F分布
预测变量与响应变量无关,F统计量略小于1
预测变量与响应变量有关,F统计量应该很大
问题:什么叫很大?到底应该多大我们才能拒绝零假设
在p<n的前提下,取决于n,p的相对大小:
- 当n相对p很大时,F略大于1,我们就可以拒绝零假设
- 当n相对p很小时,F远远大于1,我们才能拒绝零假设
维度爆炸问题?考虑极端情况:p很大很大甚至p>n(维度爆炸!!)
笑死,最小二乘根本用不了,更何况F统计量
!此时考虑一些方法来自动选择更好的预测变量(向前选择法以及第六章介绍的那些~)
- 向前选择
从零模型开始,选择RSS最小的预测变量添加到模型中进行训练,找到使得新的模型RSS最小的预测变量加入模型得到更新的模型,以此类推 - 向后选择
从全模型开始,选择p值最大的预测变量从模型中剔除后再进行训练,找到使得新模型中最大p值的预测变量并将其剔除得到更新的模型,以此类推 - 混合选择
前两个加起来使用,效果会更好
局限性:
向前选择容易陷入局部最优
向后选择不适用于响应变量p过多(p>n)维度爆炸的情况
(2)判断一个模型的质量:预测的准不准?观察:
取值范围:(0,1)
局限性:虽然
但是当实际训练时,不断增加预测变量n的数目,也可以让
自由度:n-p-1
有趣的现象:
如果 RSS的减少量相对p(响应变量个数)的增加量更小,p越多RSE越大
(3)如何看图说话
1.那那那四个重要的图像(仙之人兮列如麻)
残差-预测值 图
残差围绕一条水平直线分布,无明显规律:理想情况
残差图呈现漏斗形,按非线性函数分布:预测变量与响应变量之间是非线性关系。如
怎么办?用凹函数如
共线性
定义:两个或者多个变量高度线性相关
共线性的衡量:
- 等高线图:越扁,两个变量之间共线性关系越强,任何微小的扰动都可能导致参数的巨变,使得
的标准误变大 - 相关系数矩阵:绝对值很大的元素,表示有一对变量高度相关,存在共线性问题
- VIF(方差膨胀因子):越大共线性越高,认为超过5或10就存在共线性问题,两个预测变量之间越有关,对参数预测的影响越大,导致参数预测的不确定性增加
离群点
对预测值xi来说,响应值yi异常的点
残差图中:残差/学生化残差高的点
学生化残差:残差/标准误
高杠杆点
对响应值yi来说,预测值xi异常的点
杠杆-学生化残差图中,杠杆值高的点,即横坐标远大于其余点的点
杠杆值promax:杠杆统计量,可以找到隐藏的高杠杆点
杠杆统计量的取值范围:(1/n,1)
如果给定杠杆统计量远大于(p+1)/n,则怀疑该点是高杠杆点
去除高杠杆点比去除离群点对线性回归的影响更大
2.summary()函数的结果怎么看
(4)重要假设:误差项不可自相关
为什么误差项会自相关?时间序列数据会呈现误差项自相关
误差项自相关会导致什么问题?
模型的置信度无法保障,95%的置信区间内包含真实参数的实际概率将远低于0.95,与模型相关的p值也会更低,会导致我们错误的认为本不相关的关系中,参数是统计显著的
3.非参数方法:KNN 回归 与 参数方法:线性回归 的对比
KNN
参数:自然数K,中心点
定义:
最优K值的选择:偏差,方差权衡问题
- K值越小,拟合越灵活,偏差越小
- K值越大,拟合越平滑,方差越小
KNN存在的问题:
1.对噪声敏感
2.维度越高效果越差,需要保证每个维度有足够的预测变量:
p=1或p=2时:
- KNN略优于线性回归
p=3时:
- 差不多
p=4时:
- 线性回归优于KNN
p>>4
- 线性回归远优于KNN
虽然低维条件下,KNN的可解释性更强,且对于非线性关系预测效果优于线性回归,但是在高维情况下,样本数被平分掉了,每一维度的样本数大大减少,导致在给定的观测点附近的邻点变少,分类不准,KNN的效果会大大变差
重要结论:若每个预测变量仅有少量观测,参数化方法往往优于非参数方法
3.低维条件下可解释性不如线性回归模型
所以不如就用线性回归得了),大不了再调
PS:KNN分类与KNN回归的区别
6.
解决维度爆炸问题:
向前选择
岭回归
lasso
主成分分析
偏最小二乘
7.非线性
多项式回归
三次样条
自然样条
4.分类
分类与回归的区别:前者响应变量是离散值,后者是连续值
逻辑斯蒂回归(p=1):
二分类:p(x)(0,1)
然而实际很有可能p(x)<0或>1
使用sigmoid函数
令
保证了p(X)的取值在(0,1)
定义发生比:
定义对数发生比:逻辑斯蒂可视为对分数变换下X的一个线性模型
也可以使用哑变量来分析定性变量
使用极大似然估计回归系数
与最小二乘相比,极大似然有更好的统计性质
eg:银行违约率的例子
基本思想:找
即使得每个人的违约概率
多元逻辑斯蒂回归(p=1)
用极大似然估计法求
逻辑斯蒂回归中的混淆现象:在使用一个预测变量做逻辑斯蒂回归时,如果其他预测变量与之有关,则预测出的模型可能会不准确
线性判别分析:
贝叶斯分类器:
- 假设K>=2
- 先验概率:
,给定观测属于响应变量Y的第k类的概率 - 贝叶斯定理:
p=1的线性判别分析
- 假设:预测变量服从高斯分布/多元高斯分布
- 贝叶斯分类器将观测分到
最大的一组 - 贝叶斯决策边界的点:
- x大于
时分为第一类,否则分为第二类
线性判别方法:LDA
- 实际上,即使服从高斯分布,也需要预测
- 常使用如下参数估计:
估计第k类方差:为观测总量, 为第k类的观测量
将上述估计值代入,得:
因
决策边界点:
与贝叶斯决策边界相比,LDA的决策边界偏左
LDA在p>1的多元线性判别分析中的应用
- 假设
服从一个均值不同,协方差矩阵相同的多元高斯分布 - 多元高斯分布:假设每一个预测变量服从一个一维正态分布,每两个预测变量之间有一定相关性
- 公式略
QDA二次判别分析
- 假设每一类观测都有自己的协方差矩阵
是 的二次函数 - 公式略
(重要)判断分类模型好坏的标准:
![[Pasted image 20241117235806.png]]
ROC:接收者操作特征曲线。越贴近左上方分类模型效果越好
- 横坐标:假阳性率
- 纵坐标:真阳性率
![[Pasted image 20241118000009.png]]
AUC:ROC曲线与横坐标围成的面积。AUC越大分类模型效果越好
准确率:越高越好
错误率:越低越好
以上分类方法+KNN分类 比较
(1)逻辑斯蒂回归vs线性判别分析
- 当类的区分度很高时:线性判别分析。理由:逻辑斯蒂的参数估计不稳定,而线性判别分析不会
- 若样本量n较小:线性判别分析。理由:且每一类响应分类预测变量X近似服从正态分布,线性判别分析更稳定
- 响应分类>2时,线性判别分析更普遍
(2)LDA vs 逻辑斯蒂回归
- 二者相通
- p>1,LDA二分类情况下
- 此情况下,二者形式相同,都会产生一个线性决策边界
区别: - 逻辑斯蒂回归的参数是由极大似然估计得出的
- LDA的参数是由估计的正态分布均值和方差计算出来的
- 二者得到的结果是相近的
- 但当观测服从每一类协方差都相同的高斯分布这个假设成立时,LDA效果更好
- 同样,当高斯分布的假设不成立时,逻辑斯蒂回归比LDA效果更好
(3)LDA vs QDA
- 偏差方差均衡问题:
- 训练数据量少:LDA更优,降低方差更重要
- 训练数据量多:QDA更优,假设
服从一个均值不同,协方差矩阵相同的多元高斯分布不成立,选择LDA会导致比较大的偏差出现,降低偏差更重要
总结
- 当决策边界为线性时:LDA,除非不符合高斯分布假设,此时用逻辑斯蒂
- 当决策边界为非线性时:QDA
- 当决策边界高度非线性时:QDA可以对决策边界作出假设,在固定数据量上的训练优于KNN
- 尽管当决策边界高度非线性时,KNN优于逻辑斯蒂和LDA,但还是建议慎用KNN这种非参数方法
5.重抽样方法:找到最合适的光滑度
为什么要使用重抽样方法?
(1)验证集方法:
(2)交叉验证法
- 留一交叉验证(LOOCV)
- k折交叉验证
二者比较
(3)自助法(bootstrap)
8.基于树的方法
决策树
代价复杂剪枝
9.支持向量机
支持向量
核函数
10.无监督学习
PCA主成分分析