首页 > 其他分享 >拓端数据tecdat|R语言进行数据结构化转换:Box-Cox变换、“凸规则”变换方法

拓端数据tecdat|R语言进行数据结构化转换:Box-Cox变换、“凸规则”变换方法

时间:2022-11-28 11:34:17浏览次数:42  
标签:Box vic 转换 变换 Cox 考虑 我们

 

线性回归时若数据不服从正态分布,会给线性回归的最小二乘估计系数的结果带来误差,所以需要对数据进行结构化转换。

在讨论回归模型中的变换时,我们通常会简单地使用Box-Cox变换,或局部回归和非参数估计。

这里的要点是,在标准线性回归模型中,我们有

拓端数据tecdat|R语言进行数据结构化转换:Box-Cox变换、“凸规则”变换方法_r语言

但是有时候,线性关系是不合适的。一种想法可以是转换我们要建模的变量,然后考虑

拓端数据tecdat|R语言进行数据结构化转换:Box-Cox变换、“凸规则”变换方法_数据_02

这就是我们通常使用Box-Cox变换进行的操作。另一个想法可以是转换解释变量,

拓端数据tecdat|R语言进行数据结构化转换:Box-Cox变换、“凸规则”变换方法_数据集_03

例如,我们有时会考虑连续的分段线性函数,也可以考虑多项式回归。

“凸规则”变换

“凸规则”(Mosteller. F and Tukey, J.W. (1978). Data Analysis and Regression)的想法是,转换时考虑不同的幂函数。

1.“凸规则”为纠正非线性的可能变换提供了一个起点。
2 .通常情况下,我们应该尝试对解释变量进行变换,而不是对因变量Y进行变换,因为Y的变换会影响Y与所有X的关系,而不仅仅是与非线性关系的关系
3.然而,如果因变量是高度倾斜的,那么将其转换为以下变量是有意义的

拓端数据tecdat|R语言进行数据结构化转换:Box-Cox变换、“凸规则”变换方法_数据_04

 

更具体地说,我们将考虑线性模型。

拓端数据tecdat|R语言进行数据结构化转换:Box-Cox变换、“凸规则”变换方法_数据集_05

根据回归函数的形状(上图中的四个曲线,在四个象限中),将考虑不同的幂。

例如让我们生成不同的模型,看看关联散点图。

  1.   
  2.  > plot(MT(p=.5,q=2),main="(p=1/2,q=2)")
  3.  > plot(MT(p=3,q=-5),main="(p=3,q=-5)")
  4.  > plot(MT(p=.5,q=-1),main="(p=1/2,q=-1)")
  5.  > plot(MT(p=3,q=5),main="(p=3,q=5)")

拓端数据tecdat|R语言进行数据结构化转换:Box-Cox变换、“凸规则”变换方法_r语言_06

 

如果我们考虑图的左下角部分,要得到这样的模式,我们可以考虑

拓端数据tecdat|R语言进行数据结构化转换:Box-Cox变换、“凸规则”变换方法_数据_07

或更一般地

其中拓端数据tecdat|R语言进行数据结构化转换:Box-Cox变换、“凸规则”变换方法_数据集_08和都大于1.并且拓端数据tecdat|R语言进行数据结构化转换:Box-Cox变换、“凸规则”变换方法_数据_09越大,回归曲线越凸。

让我们可视化数据集上的双重转换,例如cars数据集。

  1.   
  2.  > tukey=function(p=1,q=1){
  3.  + regpq=lm(I(y^q)~I(x^p) )
  4.  + u=seq(min(min( x)-2,.1),max( x)+2,length=501)
  5.  + polygon(c(u,rev(u)),c(vic[,2],rev(vic[,3]))^(1/q)
  6.  + lines(u,vic[,2]^(1/q)
  7.  + plot(x^p, y^q )
  8.  + polygon(c(u,rev(u))^p,c(vic[,2],rev(vic[,3])) )
  9.  + lines(u^p,vic[,2])
  10.   

例如,如果我们运行

  1.   
  2.  > tukey(2,1)

我们得到如下图,

拓端数据tecdat|R语言进行数据结构化转换:Box-Cox变换、“凸规则”变换方法_数据_10

 

左侧是原始数据集,右侧是经过转换的数据集,

拓端数据tecdat|R语言进行数据结构化转换:Box-Cox变换、“凸规则”变换方法_数据集_11

其中有两种可能的转换。在这里,我们只考虑了汽车速度的平方(这里只变换了一个分量)。在该转换后的数据集上,我们运行标准线性回归。我们在这里添加一个置信度。然后,我们考虑预测的逆变换。这条线画在左边。问题在于它不应该被认为是我们的最佳预测,因为它显然存在偏差。请注意,在这里,有可能考虑另一种形状相同但完全不同的变换

  1.   
  2.  > tukey(1,.5)

拓端数据tecdat|R语言进行数据结构化转换:Box-Cox变换、“凸规则”变换方法_r语言_12

Box-Cox变换 

当然,也可以使用Box-Cox变换。此外,还可以寻求最佳变换。考虑

  1.   
  2.  > for(p in seq(.2,3,by=.1)) bc=cbind(bc,boxcox(y~I(x^p),lambda=seq(.1,3,by=.1))$y)
  3.  > contour(vp,vq,bc)

拓端数据tecdat|R语言进行数据结构化转换:Box-Cox变换、“凸规则”变换方法_数据集_13

拓端数据tecdat|R语言进行数据结构化转换:Box-Cox变换、“凸规则”变换方法_数据_14

颜色越深越好(这里考虑的是对数似然)。 最佳对数在这里是

  1.  > bc=function(a){p=a[1];q=a[2]; (-boxcox(y~I(x^p),data=base,lambda=q)$y[50]
  2.  > optim(bc,method="L-BFGS-B")

拓端数据tecdat|R语言进行数据结构化转换:Box-Cox变换、“凸规则”变换方法_数据_15

实际上,我们得到的模型还不错,

拓端数据tecdat|R语言进行数据结构化转换:Box-Cox变换、“凸规则”变换方法_数据_16

 


拓端数据tecdat|R语言进行数据结构化转换:Box-Cox变换、“凸规则”变换方法_数据_17


标签:Box,vic,转换,变换,Cox,考虑,我们
From: https://blog.51cto.com/u_14293657/5890777

相关文章

  • 使用Apache PDFBox实现拆分、合并PDF
    目录使用ApachePDFBox实现拆分、合并PDF问题背景ApachePDFBox介绍拆分PDF合并PDF拆分+合并完整代码参考:使用ApachePDFBox实现拆分、合并PDF问题背景如何拆分PDF?......
  • -webkit-box-orient:vertical 编译报错之autoprefixer问题
    由于各大浏览器的兼容问题,autoprefixer插件就可以帮我们自动补齐前缀。它和less、scss这样的预处理器不同,它属于后置处理器。预处理器:在打包之前进行处理后置处......
  • VirtualBox-Ubuntu-哈工大李治军操作系统课程实验环境搭建
    每次更换电脑,都需要重新搭建操作系统的实验环境,每次都在网上找来找去,很麻烦,干脆就自己记录下整个搭建过程吧。(一)下载实验所需的资源linux-0.11源码、Bochs、用来编译li......
  • 线性变换
      线性空间是某一类事物从量的方面的一个抽象。我们认识客观事物,固然要弄清楚他们单个的和总体的性质,但更重要的是研究他们之间的各种各样的联系。在线性空间中,事物之间......
  • Vulnhub之MoneyBox 1靶机详细测试过程
    MoneyBox作者:jason_huawen靶机基本信息名称:MoneyBox:1地址:https://www.vulnhub.com/entry/moneybox-1,653/识别目标主机IP地址┌──(kali㉿kali)-[~/Vulnhub/Mo......
  • 在 VirtualBox 中安装 Ubuntu
    每次更换电脑,需要安装虚拟机的时候,都要去搜别人的教程,干脆自己把安装过程记录下来,方便后面的参考。(一)下载Ubuntu我使用的是ubuntu16ubuntu官网下载地址:https://r......
  • vulnhub靶场之EVILBOX: ONE
    准备:攻击机:虚拟机kali、本机win10。靶机:EVILBOX:ONE,下载地址:https://download.vulnhub.com/evilbox/EvilBox---One.ova,下载后直接vbox打开即可。知识点:文件包含漏洞、f......
  • 题解 [ABC279F] BOX
    这种合并集合的操作使我们想到并查集,因此我们在并查集算法的基础上进行改造来解决问题。这里使用路径压缩实现的并查集。在记录并查集的父亲数组的同时,我们还需要记录两个......
  • VirtualBox 的安装
    虚拟机仅仅是一个软件,运行在各种主流的操作系统上。它以自己运行的真实计算机为模板,虚拟出另一套处理器、内存和外部设备来。它的处理能力,完全来自于背后那台真实的计算机......
  • 如何更改XBOX截图存放位置
    1.找到Capture文件位置中文名捕获,摄像2.右键点开属性中的位置3.移动到想要的地方去之后的就都是新的了!!!......