2016-04-02 12 views
0

私は散布図を持っており、平滑化された線を得るためにksmooth関数を使用しました。 これで、平滑化された線から実際の値を差し引いて残差を求めたいと思います。 誰かがxのyの値を見つける方法を知っているのでしょうか?あるいは残差を得る別の方法がありますか?Rのスムージングカーネル推定関数から任意の(x、y)点を得るには?

plot(x,y) 
kernel <- ksmooth(x,y, kernel="normal", bandwidth=0.01) 
lines(kernel, col=2) 

Here is the result

答えて

1

あなたはksmoothによって返されたモデルオブジェクトから直接当てはめ値にアクセスすることができます。ここMWEです:

x <- 1:100 
y <- rnorm(100, mean=(x/2000)^2) 
plot(x,y) 
kernel <- ksmooth(x,y, kernel="normal", bandwidth=10, x.points=x) 
lines(kernel, col=2) 
resid <- kernel$y - y 
print(resid) 

その後、これは動作しますが、カーネルの$ xのxの値と値が同じではないので、私はそれが正しい答えを与えるかどうかわからないんだけど、私はドンよう

all.equal(kernel$x, x) 
+0

を実行します同じxの残差を得ることはできません。 – Engi

+0

本当ですか? '' kernel $ x == x''を試してみると、真の値のベクトルが得られます。 – user2728808

+0

異なる値が得られますが、どこに問題があるのか​​わからない:/ – Engi

関連する問題