2015-04-06 1 views
1

Comment puis-je extraire les prédictions de la sortie de locfit.robust?Comment extraire des prédictions de `locfit` et` locfit.robust`?

J'ai trouvé comment tracer, mais je ne vois pas comment extraire réellement les prédictions. Les données d'exemple sont ci-dessous.

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 
)) 

Je peux tracer les données avec:

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

enter image description here Mais comment puis-je extraire des prédictions pour chaque valeur de x?

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

Je n'ai aucune idée de ce que sont ces valeurs.

Répondre

2

Que diriez-vous

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 

?

Jetez un oeil à ?predict.locfit et ?preplot.locfit: Je suis d'accord que c'est un peu opaque, mais il devrait vous donner quelques indices ... Je pense que predict(fit) vous donne est les valeurs aux « points de fixation directe », c'est-à-dire les nœuds des polynômes utilisés pour s'adapter.

+0

En fait, la procédure locfit construit un cadre d'évaluation qui, je pense, est ce que Loader appelle "ev" sur la structure prédictive multidimensionnelle. Les "points" que vous voyez sont les points d'extrémité des bandes passantes locales. Il y a un compromis entre les largeurs de bande locales plus larges et les augmentations du critère d'ajustement choisi qui est décrit aux chapitres 11 à 12 du texte «Régression locale et vraisemblance» de Loader. Dans l'exemple présenté, vous remarquerez peut-être que les deux premières valeurs de fit $ ev sont le minimum et le maximum pour "x". –

+0

@BondedDust, ne hésitez pas à modifier ... –