首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R中的Loess预测(或调和黄土与低度)

R中的Loess预测(或调和黄土与低度)
EN

Stack Overflow用户
提问于 2015-03-25 18:48:56
回答 1查看 469关注 0票数 1

我试图插值/本地外推法一些工资数据,以填写一个数据集。

以下是数据集和可用数据的图表:

代码语言:javascript
复制
    experience   salary
 1:          1 21878.67
 2:          2 23401.33
 3:          3 23705.00
 4:          4 24260.00
 5:          5 25758.60
 6:          6 26763.40
 7:          7 27920.00
 8:          8 28600.00
 9:          9 28820.00
10:         10 32600.00
11:         12 30650.00
12:         14 32600.00
13:         15 32600.00
14:         16 37700.00
15:         17 33380.00
16:         20 36784.33
17:         23 35600.00
18:         25 33590.00
19:         30 32600.00
20:         31 33920.00
21:         35 32600.00

考虑到明显的非线性,我希望通过一个局部线性估计器进行插值和外推(我想通过一个局部线性估计来填充0到40年的经验),所以我默认使用lowess,它给出了如下结果:

这在情节上很好,但是原始数据丢失了-- R的绘图装置填补了我们的空白。我还没有为这个函数找到一个predict方法,因为R似乎正在转向使用loess,据我所知,这是一个泛化。

但是,当我使用loess (设置surface="direct"使其能够外推,正如在?loess中提到的那样)(它有一个标准的predict方法)时,拟合结果就不那么令人满意了:

(有很强的理论理由可以说,工资应该是不减的-这里有一些噪音/可能的误差驱动着U形。)

我似乎无法摆弄任何参数,以获得lowess给出的不递减拟合值。

有什么建议吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-25 19:07:09

我不知道如何“协调”这两个函数,但我使用了cobs包(COnstrained B样条非参数回归分位数),并在类似的任务中取得了一些成功。默认的分位数是(本地)中位数或0.5分位数。在此数据集中,span或内核宽度的默认选择似乎非常合适。

代码语言:javascript
复制
require(cobs)
Loading required package: cobs
Package cobs (1.3-0) attached.  To cite, see citation("cobs")

 Rbs <- cobs(x=dat$experience,y=dat$salary, constraint= "increase")
qbsks2():
# Performing general knot selection ...
#
# Deleting unnecessary knots ...
 Rbs
#COBS regression spline (degree = 2) from call:
#    cobs(x = dat$experience, y = dat$salary, constraint = "increase")
#{tau=0.5}-quantile;  dimensionality of fit: 5 from {5}
#x$knots[1:4]:  0.999966,  5.000000, 15.000000, 35.000034
plot(Rbs, lwd = 2.5)

它确实有一种预测方法,尽管您需要使用特殊的参数,因为它不支持通常的data=形式:

代码语言:javascript
复制
 help(predict.cobs)
 predict(Rbs, z=seq(0,40,by=5))
       z      fit
 [1,]  0 21519.83
 [2,]  5 25488.71
 [3,] 10 30653.44
 [4,] 15 32773.21
 [5,] 20 33295.84
 [6,] 25 33669.14
 [7,] 30 33893.12
 [8,] 35 33967.78
 [9,] 40 33893.12
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29264059

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档