2017-03-17 9 views
0

を通じて正しく取り付けられていない黄土曲線Iが近すぎるか、黄土曲線の下にあるポイントをフィルタリングしようとしています:Scatterplot with loess curveR - ポイント

明らかではない希望する結果:

結果は次のようになります。

しかし、私はscatter.smooth機能を使用している場合は、私が正しい探して曲線を得る: Scatterplot with scatter.smooth curve

どのように私は正しく私のデータを通じて黄土曲線にフィットすることができますか?

答えて

2

主に、私たちはどのようなpredict関数が返す点検する必要がありますので、それはベクトルですので、我々はlinesにそれを渡すとき、Rは大丈夫、あなたはxの値を指定していない」、と言う

head(predict(afit)) 
[1] 0.8548271 0.8797704 0.8584954 0.8031563 0.9012096 0.8955874 

私はちょうどxの値のためのインデックスを使用します "(私が意味するものを見るためにplot(2:10)を試してください)。

cbind(sort(means), predict(afit, newdata = sort(means)))

トリックを行う必要があります。

だから、私たちがしなければならないことは代わりに、linesに渡す2列の行列を指定しています。あなたの関数は次のように書くことができます:

FilterByVariance<-function(dat, threshold = 0.90, span = 0.75){ 
means <- apply(dat,1,mean) 
sds <- apply(dat,1,sd) 
cv <- sqrt(sds/means) 

afit<-loess(cv~means, span = span) 
resids<-afit$residuals 
# good<-which(resids >= quantile(resids, probs = threshold)) 
# points above the curve will have a residual > 0 
good <- which(resids > 0) 
#plots 

plot(cv~means) 
lines(cbind(sort(means), predict(afit, newdata = sort(means))), 
     col="blue",lwd=3) 
points(means[good],cv[good],col="red",pch=19) 

} 
+0

ありがとうございました!それは間違って描かれた曲線の問題を間違いなく解決します。しかし、赤い点は間違った黄色の曲線に沿って散らばっています。描かれている黄色の曲線に合わせることはできますか? – Flomp

+0

あなたは彼らが間違ったカーブに沿って散らばっているとはどういう意味ですか?黄土の下の__と__の上にあるポイントを見たいですか? – bouncyball

+0

選択したドットは、まだカーブの周りに「ランダムに」散らばっています。 http://imgur.com/a/fmKXm 私は曲線の上にあるデータポイントだけを選択したいと思います。 – Flomp

関連する問題