2016-10-08 126 views
3

xyの間に回帰を適合させるために関数lowessを使用しています。今私はxの新しい値で適合した値を知りたいです。たとえば、次の例では、適合値をx=2.5に見つけるにはどうすればよいですか?私はloessがそれを行うことができますが、私は誰かのプロットを再現したいと彼はlowessを使用しています。lowess関数を使った新しい値での予測R

set.seed(1) 
x <- 1:10 
y <- x + rnorm(x) 
fit <- lowess(x, y) 
plot(x, y) 
lines(fit) 

enter image description here

答えて

2

ローカル回帰(LOWESS)ノンパラメトリック統計手法である、それはあなたが新しい値を推定するモデルを直接使用することができるようにしない線形回帰です。

関数から値を取得する必要があります(そのため、リストが返されるだけです)。独自の補間スキームを選択する必要があります。スキームを使用して新しいポイントを予測します。

https://www.r-bloggers.com/interpolation-and-smoothing-functions-in-base-r/

EDIT

一般的な手法は、スプライン補間(しかし、そこにいる他の人)である私はpredict機能があなたのために補間を行いかなり確信しています。私も正確にpredictが何を使用しているかについての情報を見つけることができないので、私はソースコードをトレースしようとしました。

https://github.com/wch/r-source/blob/af7f52f70101960861e5d995d3a4bec010bc89e6/src/library/stats/R/loess.R

else { ## interpolate 
## need to eliminate points outside original range - not in pred_ 

IはRコードは、基礎となるCの実装を呼び出しますが、それはうまくので、私はそれを使用するもののアルゴリズムを知らない文書化されていませんだと確信しています。

私の提案は、predict機能を信頼するか、独自の補間アルゴリズムを展開することです。

+0

ありがとうございます。 'loess'では' cars.lo

+0

@PatrickLi私が説明したように、関数は補間をしています。私はどのスキームを使用しているかを見ています。見つけたら、答えを更新します。 – SmallChess

+0

@PatrickLi私はそれをトレースしようとしましたが、完全には成功しませんでした。私のEDITEDを見てください。 – SmallChess

関連する問題