关于算法:R语言进行数据结构化转换BoxCox变换凸规则变换方法

58次阅读

共计 1814 个字符,预计需要花费 5 分钟才能阅读完成。

原文链接: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.用机器学习辨认一直变动的股市情况——隐马尔可夫模型的利用

正文完
 0