拓端tecdat|R语言进行数据结构化转换:Box-Cox变换、“凸规则”变换方法
原文链接:http://tecdat.cn/?p=22251
原文出处:拓端数据部落公众号
线性回归时若数据不服从正态分布,会给线性回归的最小二乘估计系数的结果带来误差,所以需要对数据进行结构化转换。
在讨论回归模型中的变换时,我们通常会简单地使用Box-Cox变换,或局部回归和非参数估计。
这里的要点是,在标准线性回归模型中,我们有
但是有时候,线性关系是不合适的。一种想法可以是转换我们要建模的变量,然后考虑
这就是我们通常使用Box-Cox变换进行的操作。另一个想法可以是转换解释变量,
例如,我们有时会考虑连续的分段线性函数,也可以考虑多项式回归。
“凸规则”变换
“凸规则”(Mosteller. F and Tukey, J.W. (1978). Data Analysis and Regression)的想法是,转换时考虑不同的幂函数。
1.“凸规则”为纠正非线性的可能变换提供了一个起点。
2 .通常情况下,我们应该尝试对解释变量进行变换,而不是对因变量Y进行变换,因为Y的变换会影响Y与所有X的关系,而不仅仅是与非线性关系的关系
3.然而,如果因变量是高度倾斜的,那么将其转换为以下变量是有意义的
更具体地说,我们将考虑线性模型。
根据回归函数的形状(上图中的四个曲线,在四个象限中),将考虑不同的幂。
例如让我们生成不同的模型,看看关联散点图。
> plot(MT(p=.5,q=2),main="(p=1/2,q=2)")
> plot(MT(p=3,q=-5),main="(p=3,q=-5)")
> plot(MT(p=.5,q=-1),main="(p=1/2,q=-1)")
> plot(MT(p=3,q=5),main="(p=3,q=5)")
如果我们考虑图的左下角部分,要得到这样的模式,我们可以考虑
或更一般地
其中和都大于1.并且越大,回归曲线越凸。
让我们可视化数据集上的双重转换,例如cars数据集。
> tukey=function(p=1,q=1){
+ regpq=lm(I(y^q)~I(x^p) )
+ u=seq(min(min( x)-2,.1),max( x)+2,length=501)
+ polygon(c(u,rev(u)),c(vic[,2],rev(vic[,3]))^(1/q)
+ lines(u,vic[,2]^(1/q)
+ plot(x^p, y^q )
+ polygon(c(u,rev(u))^p,c(vic[,2],rev(vic[,3])) )
+ lines(u^p,vic[,2])
例如,如果我们运行
> tukey(2,1)
我们得到如下图,
左侧是原始数据集,右侧是经过转换的数据集,其中有两种可能的转换。在这里,我们只考虑了汽车速度的平方(这里只变换了一个分量)。在该转换后的数据集上,我们运行标准线性回归。我们在这里添加一个置信度。然后,我们考虑预测的逆变换。这条线画在左边。问题在于它不应该被认为是我们的最佳预测,因为它显然存在偏差。请注意,在这里,有可能考虑另一种形状相同但完全不同的变换
> tukey(1,.5)
Box-Cox变换
当然,也可以使用Box-Cox变换。此外,还可以寻求最佳变换。考虑
> for(p in seq(.2,3,by=.1)) bc=cbind(bc,boxcox(y~I(x^p),lambda=seq(.1,3,by=.1))$y)
> contour(vp,vq,bc)
颜色越深越好(这里考虑的是对数似然)。 最佳对数在这里是
> bc=function(a){p=a[1];q=a[2]; (-boxcox(y~I(x^p),data=base,lambda=q)$y[50]
> optim(bc,method="L-BFGS-B")
实际上,我们得到的模型还不错,
最受欢迎的见解
1.用R语言模拟混合制排队随机服务排队系统
2.R语言中使用排队论预测等待时间
3.R语言中实现马尔可夫链蒙特卡罗MCMC模型
4.R语言中的马尔科夫机制转换(Markov regime switching)模型
5.matlab贝叶斯隐马尔可夫hmm模型
6.用R语言模拟混合制排队随机服务排队系统
7.Python基于粒子群优化的投资组合优化
8.R语言马尔可夫转换模型研究交通伤亡人数事故预测
9.用机器学习识别不断变化的股市状况——隐马尔可夫模型的应用
拓端tecdat|R语言进行数据结构化转换:Box-Cox变换、“凸规则”变换方法相关推荐
- 拓端tecdat|R语言向量误差修正模型 (VECMs)分析长期利率和通胀率影响关系
最近我们被客户要求撰写关于向量误差修正模型的研究报告,包括一些图形和统计输出. 向量自回归模型估计的先决条件之一是被分析的时间序列是平稳的.但是,经济理论认为,经济变量之间在水平上存在着均衡关系,可以 ...
- 拓端tecdat|R语言逻辑回归(Logistic回归)模型分类预测病人冠心病风险
最近我们被客户要求撰写关于冠心病风险的研究报告,包括一些图形和统计输出. 相关视频:R语言逻辑回归(Logistic回归)模型分类预测病人冠心病风险 逻辑回归Logistic模型原理和R语言分类预测冠 ...
- 拓端tecdat|R语言用LOESS(局部加权回归)季节趋势分解(STL)进行时间序列异常检测
最近我们被客户要求撰写关于LOESS(局部加权回归)的研究报告,包括一些图形和统计输出. 这篇文章描述了一种对涉及季节性和趋势成分的时间序列的中点进行建模的方法.我们将对一种叫做STL的算法进行研究, ...
- 拓端tecdat|R语言线性回归和时间序列分析北京房价影响因素可视化案例
最近我们被客户要求撰写关于北京房价影响因素的研究报告,包括一些图形和统计输出. 目的 房价有关的数据可能反映了中国近年来的变化: 人们得到更多的资源(薪水),期望有更好的房子 人口众多 独生子女政策: ...
- 拓端tecdat荣获掘金社区入驻新人奖
2021年7月,由掘金发起了"入驻成长礼"颁奖活动.本次活动邀请到知名开发者.服务机构代表等业界人士. 据了解,掘金社区"新入驻创作者礼"主要对已经积累了一定历 ...
- 拓端tecdat荣获2022年度51CTO博主之星
相信技术,传递价值,这是51CTO每一个技术创作者的动力与信念,2022 年度,拓端tecdat 作为新锐的数据分析咨询公司,在51CTO平台上,不断的输出优质的技术文章,分享前沿创新技术,输出最佳生 ...
- R语言临床预测模型:分层构建COX生存回归模型STRATIFIED COX MODEL、KM生存曲线、PH假设检验...
全文链接:http://tecdat.cn/?p=32046 stratified cox model是针对协变量不满足PHA提出的,这里的思想是对协变量分层(点击文末"阅读原文" ...
- R语言tidyr包pivot_longer函数、pivot_wider函数数据表变换实战(长表到宽表、宽表到长表)
R语言tidyr包pivot_longer函数.pivot_wider函数数据表变换实战(长表到宽表.宽表到长表) 目录
- R语言警告:Cannot compute exact p-value with ties的处理方法
R语言警告:Cannot compute exact p-value with ties的处理方法 一.问题 [1] "检验Spearman相关性的显著性为:" Warning i ...
- 基于R语言的Meta分析【全流程、不确定性分析】方法与Meta机器学习技术应用
Meta分析是针对某一科研问题,根据明确的搜索策略.选择筛选文献标准.采用严格的评价方法,对来源不同的研究成果进行收集.合并及定量统计分析的方法,最早出现于"循证医学",现已广泛应 ...
最新文章
- 【原】DjianGo Windows7下的安装
- 查看无线网卡是否支持监听模式
- 训练MNIST数据集模型
- Spring 中 Bean 的生命周期
- Hibernate 性能优化之二级缓存
- CentOS系统启动流程及GRUB文件说明
- [POJ2420]A Star not a Tree?(模拟退火)
- PHP替换文本文件其中一行,使用PHP替换文本文件中的行
- java异常自定义返回信息,Spring Boot 如何自定义返回错误码错误信息
- 清华提出:用于细粒度实体分类的Prompt-Learning,并提出可训练Prompt模板
- 对离散点进行积分的python程序实现_Stochastic Calculus(Python)(四)
- linux下声卡配置文件,Linux设备配置之声卡配置
- 在线ER模型设计工具,支持MySQL、SQLServer、Oracle、Postgresql sql导入,支持表、视图等编辑
- ttyS、ttySAC、tty、ttyn的区别
- 芝士合集(以便查看)
- Window10系统安装V-rep教程
- 电脑右下角WIFI图标上出现的长方形白框
- php 直接调用ffmpeg 中加水印,如何使用ffmpeg在视频中心添加透明水印?
- axture动画原型制作_小孩子最喜欢的国产“机甲”动画,90后全看过,00后一个也不知道...
- 仿网易新闻评论“盖楼”效果实现