2016-08-10 10 views
3

私はRでLOESS回帰を実行しており、私の小さなデータセットのいくつかについて警告が出ています。RESSのスパンに関連する警告/エラーを緩和します

1:-2703.9

2で使用擬似:simpleLoessで(simpleLoess(Y、X、W、スパン、度=程度、パラメトリック= パラメトリックにおいて、警告メッセージ

Y、X、W、スパン、度=程度、パラメトリック= パラメトリック:近傍半径796.09

3:相互条件:simpleLoess(Y、X、W、スパン、度=程度、パラメトリック= パラメトリックにおいて番号0

4:simpleLoess(y、x、w、span、degree = degree、parametric = パラメトリック):他にも近い特異点があります。 6.1623e + 005

これらのエラーは、ここでは別のポストで議論されている: Understanding loess errors in R

これらの警告は、LOESS回帰のスパンセットに関連しているようです。私は、受け入れ可能な平滑化スパンのパラメータが0.3と0.6の間にある他のデータセットで行われた同様の方法を適用しようとしています。場合によっては、これらの問題を回避するためにスパンを調整することができますが、他のデータセットでは、エラー/警告を回避するためにスパンを許容レベルを超えて増加させる必要がありました。

これらの警告が具体的に何を意味するのか、これが回帰が使用可能であるかどうかについては興味がありますが、これらの警告が発生したこと、または回帰が完全に無効であることに注意する必要があります。ここで

は問題を抱えているデータセットの例である:

Period Value Total1 Total2 
-2950 0.104938272 32.4 3.4 
-2715 0.054347826 46 2.5 
-2715 0.128378378 37 4.75 
-2715 0.188679245 39.75 7.5 
-3500 0.245014245 39 9.555555556 
-3500 0.163120567 105.75 17.25 
-3500 0.086956522 28.75 2.5 
-4350 0.171038825 31.76666667 5.433333333 
-3650 0.143798024 30.36666667 4.366666667 
-4350 0.235588972 26.6 6.266666667 
-3500 0.228840125 79.75 18.25 
-4933 0.154931973 70 10.8452381 
-4350 0.021428571 35 0.75 
-3500 0.0625 28 1.75 
-2715 0.160714286 28 4.5 
-2715 0.110047847 52.25 5.75 
-3500 0.176923077 32.5 5.75 
-3500 0.226277372 34.25 7.75 
-2715 0.132625995 188.5 25 

そしてここでは、ここで改行

Period Value Total1 Total2 
-2950 0.104938272 32.4 3.4 
-2715 0.054347826 46 2.5 
-2715 0.128378378 37 4.75 
-2715 0.188679245 39.75 7.5 
-3500 0.245014245 39 9.555555556 
-3500 0.163120567 105.75 17.25 
-3500 0.086956522 28.75 2.5 
-4350 0.171038825 31.76666667 5.433333333 
-3650 0.143798024 30.36666667 4.366666667 
-4350 0.235588972 26.6 6.266666667 
-3500 0.228840125 79.75 18.25 
-4933 0.154931973 70 10.8452381 
-4350 0.021428571 35 0.75 
-3500 0.0625 28 1.75 
-2715 0.160714286 28 4.5 
-2715 0.110047847 52.25 5.75 
-3500 0.176923077 32.5 5.75 
-3500 0.226277372 34.25 7.75 
-2715 0.132625995 188.5 25 

ことなくデータである私が使用していたコードされています

Analysis <- read.csv(file.choose(), header = T) 
plot(Value ~ Period, Analysis) 
a <- order(Analysis$Period) 
Analysis.lo <- loess(Value ~ Period, Analysis, weights = Total1) 
pred <- predict(Analysis.lo, se = TRUE) 
lines(Analysis$Period[a], pred$fit[a], col="red", lwd=3) 
lines(Analysis$Period[a], pred$fit[a] - qt(0.975, pred$df)*pred$se[a],lty=2) 
lines(Analysis$Period[a], pred$fit[a] + qt(0.975,pred$df)*pred$se[a],lty=2) 

ご協力いただきありがとうございます。追加情報が必要な場合はお知らせください。

+1

エラーを生成するコードはどこですか? – steveb

+0

現時点では、あなたが説明していない手順から警告を受けている理由を尋ねています。 –

答えて

3

loessためのアルゴリズムが原因あなたのプロットから見てもでできるようPeriodは、倍の比較的多数を繰り返していくつかの値を持っているという事実のために、数値的困難を見つけたので、警告が発行されています

table(Analysis$Period) 

この点で、Periodは、適切なスムージングに必要な連続した変数ではなく、実際には個別の変数(因子)のように振る舞います。いくつかのジッタを追加すると、警告を削除しますspanパラメータを増やす

Analysis <- read.table(header = T,text="Period Value Total1 Total2 
-2950 0.104938272 32.4 3.4 
-2715 0.054347826 46 2.5 
-2715 0.128378378 37 4.75 
-2715 0.188679245 39.75 7.5 
-3500 0.245014245 39 9.555555556 
-3500 0.163120567 105.75 17.25 
-3500 0.086956522 28.75 2.5 
-4350 0.171038825 31.76666667 5.433333333 
-3650 0.143798024 30.36666667 4.366666667 
-4350 0.235588972 26.6 6.266666667 
-3500 0.228840125 79.75 18.25 
-4933 0.154931973 70 10.8452381 
-4350 0.021428571 35 0.75 
-3500 0.0625 28 1.75 
-2715 0.160714286 28 4.5 
-2715 0.110047847 52.25 5.75 
-3500 0.176923077 32.5 5.75 
-3500 0.226277372 34.25 7.75 
-2715 0.132625995 188.5 25") 

table(Analysis$Period)  
Analysis$Period <- jitter(Analysis$Period, factor=0.2) 

plot(Value ~ Period, Analysis) 
a <- order(Analysis$Period) 
Analysis.lo <- loess(Value ~ Period, Analysis, weights = Total1) 
pred <- predict(Analysis.lo, se = TRUE) 
lines(Analysis$Period[a], pred$fit[a], col="red", lwd=3) 
lines(Analysis$Period[a], pred$fit[a] - qt(0.975, pred$df)*pred$se[a],lty=2) 
lines(Analysis$Period[a], pred$fit[a] + qt(0.975,pred$df)*pred$se[a],lty=2) 

Period軸、それらが発生繰り返される値の山に沿って、「アウト潰し」の効果を有しています。小さなデータセットでは、繰り返しの積み重ねを補うためにたくさんの潰れが必要になります。Period

私は一般的に、おそらくグラフ出力を調べた後に、やはり回帰を信頼しています。しかし、私は間違いなく縮めを達成するためにspanを増やさないでしょう:その目的のためには、わずかな量のjitterを使う方がはるかに良いです。 spanは、Periodデータの全体的な広がりなど、他の考慮事項によって決定される必要があります。

+0

ジッタ付きデータを使用してLOESS回帰を実行する際に問題が発生しました。ジッタ付きデータとジッタなしデータの線は、一点で全く異なっていた。関連している間、それはそれ自身の質問の下で最もよく答えるかもしれないようだった。 http://stackoverflow.com/questions/38948553/jittering-effects-on-loess – Corey

関連する問題