如何从`locfit`和`locfit.robust`中提取预测?

时间:2015-04-06 20:25:53

标签: r outliers

如何从locfit.robust的输出中提取出预测?

我已经想出如何绘制它,但我不知道如何实际提取预测。示例数据如下。

df <-
structure(list(x = c(45.0166666666667, 2.93361111111111, 22.7677777777778, 
34.6702777777778, 38.9808333333333, 2.07138888888889, 49.3283333333333, 
19.3177777777778, 42.4305555555556, 11.5561111111111, 29.6677777777778, 
6.38222222222222, 30.5302777777778, 52.775, 35.5325, 56.3958333333333, 
25.3544444444444, 10.6936111111111, 44.155, 31.3919444444444, 
13.2811111111111, 58.9841666666667, 7.24444444444444, 20.1802777777778, 
15.0061111111111, 51.0508333333333, 8.96916666666667, 32.945, 
27.9430555555556, 28.8055555555556, 3.79611111111111, 18.4558333333333, 
8.10694444444444), y = c(17.1906619704517, 51.3682492415682, 
34.5954944745371, 33.1782496417985, 28.8639252539494, 67.2499473509127, 
15.5739106117996, 29.7082944904524, 19.5924660810231, 27.6320399707289, 
30.09868839615, 33.7360588582795, 31.0412412696196, 85.8932775978829, 
29.6595900511557, 14.006526734448, 36.4282036185057, 25.3450383921273, 
17.0527246335207, 33.306938081975, 27.5846864057136, 15.9395044691672, 
28.7380574036629, 27.2409001620039, 26.5896320563312, 15.9792323783856, 
29.1293971960009, 94.2788150401981, 32.613338976917, 30.9617968951112, 
43.3449335001097, 30.6310217270105, 29.7063251039514)), .Names = c("x", 
"y"), class = c("tbl_df", "data.frame"), row.names = c(NA, -33L
))

我可以用以下方式绘制数据:

library(locfit)
with(df, plot(x = x, y = y))
fit <- with(df, locfit.robust(x = x, y = y))
lines(fit)

enter image description here 但是,如何为x的每个值提取预测?

> predict(fit)
[1] 46.70358 13.45021 32.58037 27.64739 20.74407

我不知道这些值是什么。

1 个答案:

答案 0 :(得分:2)

怎么样

predict(fit,df$x)

##  [1] 20.56971 44.27524 30.19321 30.03639 25.91535 46.70358 17.84494 28.27135
##  [9] 22.57487 29.62954 32.77769 36.43389 32.57954 15.95173 29.28375 14.32950
## [17] 31.72052 30.39511 21.16722 32.23446 28.49327 13.45021 34.91145 28.67745
## [25] 27.84376 16.86136 32.35024 31.34679 32.70253 32.81179 42.03931 27.94946
## [33] 33.55193

看看?predict.locfit?preplot.locfit:我同意它有点不透明,但它应该会给你一些线索......我认为那个predict(fit)给出的是&#34;直接拟合点&#34;的值,即用于拟合的多项式的节点。