R数据分析:变量间的非线性关系,多项式,样条回归和可加模型( 二 )
文章图片
我们看下图 , 下图中对于x和y关系的拟合是通过x的3个基础函数相加得到的:
文章图片
GAMsautomaticallylearnanonlinearrelationshipbetweeneachpredictorvariableandtheoutcomevariable,andthenaddtheseeffectstogetherlinearly,alongwiththeintercept.
就是说广义可加的原理就是 ,。
通过广义可加模型可以同时实现模型的可解释性Interpretability , 灵活性flexibility和正则化regularization 。
怎么理解呢 , 我们先看可解释性 , 假如一个可加模型是如下形式的基础函数相加得到的:
文章图片
x2的作用我们就可以解释为在其它变量不变的情况下 , x2和结局之间的关系是线性的 , xp对左边的结局在某个点之前也基本是线性增加的 , 然乎某个点之后xp对结局就无影响了 , 这个就是将模型相加后才可能实现的解释性 。
灵活性在于 , 可加模型可以将所有自变量单独建模后相加 , 我们甚至不需要提前知道xy的关系 , 完全由数据说话的非参数形式 , 就比整体的多项式和样条更灵活 。
正则化则可以避免过拟合 , 可加模型是有一个超参λ的 , 这个超参决定了曲线的歪扭程度 , 英文叫做wiggliness , 通过对超参的控制就可以很方便地实现方差偏差折中 , 见下图:
Thelevelofsmoothnessisdeterminedbythesmoothingparameter,whichwedenotebyλ.Thehigherthevalueofλ,thesmootherthecurve
文章图片
当然还有一个问题就是我到底该用多少个基础函数呢?基础函数越多模型就可以越灵活 。 见下图 , 这个大家在具体操作的时候也是可以自己设定的:
文章图片
我现在手上有如下数据
文章图片
我想探究medv和lstat之间的关系 , 先做个图:
ggplot(train.data,aes(lstat,medv))+geom_point()+stat_smooth()
文章图片
可以看到这两个变量间是非常明显的非线性关系 , 此时我们需要考虑给自变量加上多次项拟合 。
在R语言中我们可以使用来加上变量的高次项 , 比如我要加二次项 , 我就可以写出
lm(medv~lstat+I(lstat^2),data=https://pcff.toutiao.jxnews.com.cn/p/20211212/train.data)模型结果如下:
文章图片
刚刚有写我们做样条的时候是需要设定结的 , 比如我就设定自变量的第25 , 50 , 75百分位为结:
knots做一个立方样条回归() , 代码如下:
model模型输出结果如下:
文章图片
我们接着看广义可加模型的R语言做法 , 我手上有数据如下:
文章图片
我现在想弄明白x3与y的关系 , 但是假如我现在已经知道 , x1和x2与y的关系为非线性的 , 我们是不是要把这个非线性关系控制掉来看我们x3和y的关系呀 。 所以我们跑一个可加模型来瞅瞅:
b1上面的代码中bs设定平滑方法 , sp设定λ 。
运行上面的代码后得到结果如下:
文章图片
- Java|带你入门Java之每日3分钟Java——数据类型和常量变量
- 国美长宁店经一段时间的整修改造|国美长宁“超旗店”1月14日开业!优惠超多!
- 销售额|2022年最该收藏的8个数据分析模型
- CPU|10400F和11400之间的对比,为什么商家不推荐11400?
- 腾讯|Chrome插件开发消息通信popup和后台之间的通信
- 耳机|Chrome插件开发消息通信注入脚本和后台之间的通信
- 面部识别|干货!每个数据分析师都应该具备的10项关键技能
- 酒店|男子隔离被安排到花果山主题酒店 房间的山洞风格让网友尖叫:太逼真
- 云计算|实时数据分析与移动BI谁才是企业刚需?
- 产品经理|产品经理还不懂数据?一文详解数据分析体系构成框架