Bazı üstel verileri nls
kullanarak uyguluyorum.R: 'nls' hatalarını yakalamak
kullanıyorum kodudur:
fit <- nls(y ~ expFit(times, A, tau, C), start = c(A=100, tau=-3, C=0))
expFit
expFit <- function(t, A, tau, C)
{
expFit <- A*(exp(-t/tau))+C
}
Bu başlangıç parametreleri sağlanan kendisi için benim verilerin çoğunu için iyi çalışır (100 olarak tanımlanır, -3 ve 0) iyi çalışıyor. Ancak, bazen, bu parametreler ile iyi gitmeyen verilerim var ve nls
'dan hatalar alıyorum (örneğin "tekil eğim" veya bunun gibi şeyler). Bu hataları nasıl "yakalarım?" ...
Herhangi fikirleri
Benfit <- NULL
fit <- nls(...)
if (is.null(fit))
{
// Try nls with other starting parameters
}
gibi bir şey yapmaya çalıştık Ama nls
yürütme ve yürütmek olmaz nls
sonra kodu durdurmak gibi görünüyor, çünkü bu işe yaramaz?
sayesinde Genellikle bu hile kullanmak
Büyük! Tam olarak ihtiyacım olan şey bu! Denemek için bir 'sessiz = 'DOĞRU'' parametresini ekledim, bu yüzden yazdırılan hataları alamıyorum. – nico
@kohske Cevabınızın mantığı mantıklı. '' Try' komutunu bilmek yararlıdır, ancak yazınızın dördüncü satırında bir nls çağrısı bekledim ve orada görünen nul işlevini bilmiyorum. Buradaki hızlı arama neyin ne yaptığını öğrenmeme yardımcı olmadı. Bunun hakkında daha fazla bilgi edinebileceğiniz herhangi bir ipucu var mı? Belki hangi paketin gerektiğini bilmiyorum? –
@JasonWhyte Bu sadece bir yazım hatası. Denemek istedim (fit <- nls (...)) ve nls bir hataya neden olduğunda NULL olacak. – kohske