最新R语言局部多项式回归拟合LOESS回归案例分析报告 附代码数据.docx

上传人:b****3 文档编号:1862441 上传时间:2022-10-24 格式:DOCX 页数:14 大小:66.20KB
下载 相关 举报
最新R语言局部多项式回归拟合LOESS回归案例分析报告 附代码数据.docx_第1页
第1页 / 共14页
最新R语言局部多项式回归拟合LOESS回归案例分析报告 附代码数据.docx_第2页
第2页 / 共14页
最新R语言局部多项式回归拟合LOESS回归案例分析报告 附代码数据.docx_第3页
第3页 / 共14页
最新R语言局部多项式回归拟合LOESS回归案例分析报告 附代码数据.docx_第4页
第4页 / 共14页
最新R语言局部多项式回归拟合LOESS回归案例分析报告 附代码数据.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

最新R语言局部多项式回归拟合LOESS回归案例分析报告 附代码数据.docx

《最新R语言局部多项式回归拟合LOESS回归案例分析报告 附代码数据.docx》由会员分享,可在线阅读,更多相关《最新R语言局部多项式回归拟合LOESS回归案例分析报告 附代码数据.docx(14页珍藏版)》请在冰豆网上搜索。

最新R语言局部多项式回归拟合LOESS回归案例分析报告 附代码数据.docx

最新R语言局部多项式回归拟合LOESS回归案例分析报告附代码数据

R语言局部多项式回归拟合LOESS回归案例分析报告

LOESS回归是用来拟合平滑易变的时间序列的最常见的方法。

这是一种非参数方法,其中最小二乘回归在局部子集中执行。

介绍

局部回归的LOESS是一种非参数方法,适合多重回归。

如果你知道你的X变量被绑定在一个范围内,这可以是特别足智多谋的。

可以使用loess()数值向量来进行LOESS回归,以使其平滑并在局部(即,在训练值X s内)预测Y. 邻域的大小可以使用span参数来控制,范围在0到1之间。

它控制平滑的程度。

所以,值越大span,拟合曲线越平滑。

在没有解释变量的情况下,预测变量可以仅仅是从1到观察次数的指数。

如果有其他解释变量可用,也可以使用它们(最多4个)。

例子

对于这个例子,我们将尝试根据数据包中的数据集,对失业的中位数时间进行局部回归和平滑处理。

我们只考虑这个分析的前80行,因此在下面的图表中更容易观察平滑的程度。

economicsggplot2

data(economics,package="ggplot2")#loaddata

economics$index<-1:

nrow(economics)#createindexvariable

economics<-economics[1:

80,]#retail80rowsforbettergraphicalunderstanding

loessMod10<-loess(uempmed~index,data=economics,span=0.10)#10%smoothingspan

loessMod25<-loess(uempmed~index,data=economics,span=0.25)#25%smoothingspan

loessMod50<-loess(uempmed~index,data=economics,span=0.50)#50%smoothingspan

预测LOESS

#getsmoothedoutput

smoothed10<-predict(loessMod10)

smoothed25<-predict(loessMod25)

smoothed50<-predict(loessMod50)

从上图可以看出,随着跨度的增加,曲线的平滑度也随之增加。

#Plotitplot(economics$uempmed,x=economics$date,type="l",main="LoessSmoothingandPrediction",xlab="Date",ylab="Unemployment(Median)")lines(smoothed10,x=economics$date,col="red")lines(smoothed25,x=economics$date,col="green")lines(smoothed50,x=economics$date,col="blue")

寻找最佳的平滑范围

随着平滑span度的变化,拟合曲线的精度也会发生变化。

如果你的意图是最小化错误,那么optim()可以用它来找到span最小化平方误差和(SSE)的值。

对于这种情况,从图形上直观的看,较低的上证指数可能会在较低的价值下实现span,但对于更具挑战性的情况,optimizing跨度可能有所帮助。

为了实现optim(),我们定义了计算SSE的函数。

需要一个错误处理机制来解决span产生非数字的非常低的值和情况。

模拟退火方法(SANN)在这里实现,以找到span最小的SSE。

该par参数指定的第一个值span处optim()开始搜索。

#definefunctionthatreturnstheSSE

calcSSE<-function(x){

loessMod<-try(loess(uempmed~index,data=economics,span=x),silent=T)

res<-try(loessMod$residuals,silent=T)

if(class(res)!

="try-error"){

if((sum(res,na.rm=T)>0)){

sse<-sum(res^2)

}

}else{

sse<-99999

}

return(sse)

}#RunoptimtofindspanthatgivesminSSE,startingat0.5optim(par=c(0.5),calcSSE,method="SANN")#>$par#>[1]0.05433545#>#>$value#>[1]3.85753e-28#>#>$counts#>functiongradient#>10000NA#>#>$convergence#>[1]0#>#>$message#>NULL

对于这种情况,最好的span结果是0.05433SSE和最小的SSE 3.85e-28。

LOESS回归是用来平滑易变的时间序列的最常见的方法。

这是一种非参数方法,其中最小二乘回归在局部子集中执行,这使得它成为平滑任何数值向量的合适候选者。

介绍

局部回归的LOESS是一种非参数方法,适合多重回归。

如果你知道你的X变量被绑定在一个范围内,这可以是特别足智多谋的。

可以使用loess()数值向量来进行LOESS回归,以使其平滑并在局部(即,在训练值X s内)预测Y. 邻域的大小可以使用span参数来控制,范围在0到1之间。

它控制平滑的程度。

所以,值越大span,拟合曲线越平滑。

在没有解释变量的情况下,预测变量可以仅仅是从1到观察次数的指数。

如果有其他解释变量可用,也可以使用它们(最多4个)。

例子

对于这个例子,我们将尝试根据数据包中的数据集,对失业的中位数时间进行局部回归和平滑处理。

我们只考虑这个分析的前80行,因此在下面的图表中更容易观察平滑的程度。

economicsggplot2

data(economics,package="ggplot2")#loaddata

economics$index<-1:

nrow(economics)#createindexvariable

economics<-economics[1:

80,]#retail80rowsforbettergraphicalunderstanding

loessMod10<-loess(uempmed~index,data=economics,span=0.10)#10%smoothingspan

loessMod25<-loess(uempmed~index,data=economics,span=0.25)#25%smoothingspan

loessMod50<-loess(uempmed~index,data=economics,span=0.50)#50%smoothingspan

预测LOESS

#getsmoothedoutput

smoothed10<-predict(loessMod10)

smoothed25<-predict(loessMod25)

smoothed50<-predict(loessMod50)

从上图可以看出,随着跨度的增加,曲线的平滑度也随之增加。

代码为剧情

#Plotitplot(economics$uempmed,x=economics$date,type="l",main="LoessSmoothingandPrediction",xlab="Date",ylab="Unemployment(Median)")lines(smoothed10,x=economics$date,col="red")lines(smoothed25,x=economics$date,col="green")lines(smoothed50,x=economics$date,col="blue")

寻找最佳的平滑范围

随着平滑span度的变化,拟合曲线的精度也会发生变化。

如果你的意图是最小化错误,那么optim()可以用它来找到span最小化平方误差和(SSE)的值。

对于这种情况,从图形上直观的看,较低的上证指数可能会在较低的价值下实现span,但对于更具挑战性的情况,optimizing跨度可能有所帮助。

为了实现optim(),我们定义了计算SSE的函数。

需要一个错误处理机制来解决span产生非数字的非常低的值和情况。

模拟退火方法(SANN)在这里实现,以找到span最小的SSE。

该par参数指定的第一个值span处optim()开始搜索。

#definefunctionthatreturnstheSSE

calcSSE<-function(x){

loessMod<-try(loess(uempmed~index,data=economics,span=x),silent=T)

res<-try(loessMod$residuals,silent=T)

if(class(res)!

="try-error"){

if((sum(res,na.rm=T)>0)){

sse<-sum(res^2)

}

}else{

sse<-99999

}

return(sse)

}#RunoptimtofindspanthatgivesminSSE,startingat0.5optim(par=c(0.5),calcSSE,method="SANN")#>$par#>[1]0.05433545#>#>$value#>[1]3.85753e-28#>#>$counts#>functiongradient#>10000NA#>#>$convergence#>[1]0#>#>$message#>NULL

对于这种情况,最好的span结果是0.05433SSE和最小的SSE 3.85e-28。

LOESS回归是用来平滑易变的时间序列的最常见的方法。

这是一种非参数方法,其中最小二乘回归在局部子集中执行,这使得它成为平滑任何数值向量的合适候选者。

介绍

局部回归的LOESS是一种非参数方法,适合多重回归。

如果你知道你的X变量被绑定在一个范围内,这可以是特别足智多谋的。

可以使用loess()数值向量来进行LOESS回归,以使其平滑并在局部(即,在训练值X s内)预测Y. 邻域的大小可以使用span参数来控制,范围在0到1之间。

它控制平滑的程度。

所以,值越大span,拟合曲线越平滑。

在没有解释变量的情况下,预测变量可以仅仅是从1到观察次数的指数。

如果有其他解释变量可用,也可以使用它们(最多4个)。

例子

对于这个例子,我们将尝试根据数据包中的数据集,对失业的中位数时间进行局部回归和平滑处理。

我们只考虑这个分析的前80行,因此在下面的图表中更容易观察平滑的程度。

economicsggplot2

data(economics,package="ggplot2")#loaddata

economics$index<-1:

nrow(economics)#createindexvariable

eco

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > PPT模板 > 动物植物

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1