Bazı benzetilmiş verileri düzeltmem gerekiyor, ancak zaman zaman simüle edilen ordinatların çoğunlukla aynı değerde olması durumunda sorun yaşanıyor. İşte en basit durumun küçük bir tekrarlanabilir örneği. `loess.smooth` değil,` loess` veya `lowess` kullanıp hata oluştu
> x <- 0:50
> y <- rep(0,51)
> loess.smooth(x,y)
Error in simpleLoess(y, x, w, span, degree, FALSE, FALSE, normalize = FALSE, :
NA/NaN/Inf in foreign function call (arg 1)
loess(y~x)
lowess(x,y)
ve MATLAB'te onların analog Bu örnekte üzerinde hatasız beklenen sonuçlar üretir. Burada
loess.smooth
kullanıyorum çünkü belirli sayılarda değerlendirilen tahminlere ihtiyacım var. Belgelere göre,
loess.smooth
ve
loess
'un aynı tahmin işlevlerini kullandığına inanıyorum, ancak eski değerlendirme noktalarını işlemek için bir "yardımcı işlev" dir. Hata C işlevinden geliyor gibi görünüyor:
> traceback()
3: .C(R_loess_raw, as.double(pseudovalues), as.double(x), as.double(weights),
as.double(weights), as.integer(D), as.integer(N), as.double(span),
as.integer(degree), as.integer(nonparametric), as.integer(order.drop.sqr),
as.integer(sum.drop.sqr), as.double(span * cell), as.character(surf.stat),
temp = double(N), parameter = integer(7), a = integer(max.kd),
xi = double(max.kd), vert = double(2 * D), vval = double((D +
1) * max.kd), diagonal = double(N), trL = double(1),
delta1 = double(1), delta2 = double(1), as.integer(0L))
2: simpleLoess(y, x, w, span, degree, FALSE, FALSE, normalize = FALSE,
"none", "interpolate", control$cell, iterations, control$trace.hat)
1: loess.smooth(x, y)
loess
da simpleLoess
çağırır, ancak farklı argümanlar gibi görünen ile. Tabi ki, y değerlerinin sıfırdan farklı olması durumunda, loess.smooth
hatasız çalışır, ancak programın en uç durumda bile çalışmasına ihtiyacım var. ,
- neden sadece
loess.smooth
değil, diğer işlevlerini anlama bu hatayı üretir ve bu soruna yönelik bir çözüm bulmak:Umarım, birileri aşağıdakilerden biri ve/veya tüm bana yardımcı olabilir.
loess
'u kullanarak bir çalışma bulun, ancak yine de, tahmini x vektöründen farklı olabilecek belirli bir noktadaki değerlendirmeyi değerlendirin. Örneğin, pürüzsüzlükte yalnızcax <- seq(0,50,10)
kullanmak isteyebilirim, ancak tahmini değerix <- 0:50
'da değerlendirebilirim. Bildiğim kadarıyla, yeni bir veri çerçevesine sahippredict
'un kullanılması, bu durumu düzgün bir şekilde yerine getirmeyecek, ancak bir şeyleri kaçırıyorsam lütfen bana bildirin.- Hatayı, programın bir sonraki simüle edilmiş veri kümesine geçmesini durduracak şekilde kullanmayın.
Bu sorun hakkında herhangi bir yardım için şimdiden teşekkür ederiz.
cevabımı şimdi sildiğin mesajın aynısını silindi .. –
@Joris - silme zorunluluğuna sahibim Cevabı iptal etmek üzereydim! –
Bölüm 1'de bir şey ekledim OP'nin "loess.smooth" un neden gösterilen sorunla başarısız olduğu sorusu. –