Soru:
R'deki özel modele regresyon nasıl sığdırılır
XGF
2014-10-18 02:52:14 UTC
view on stackexchange narkive permalink

Bu, onur tezim için. Yalnızca "Düşük fosfor" serisi dediğim şeyi paylaştığım büyük bir veri kümem var:

  > P0 RNP D.weight1 r1 0 0 63.82 r2 0 0 34.23 r3 0 0 24.94 r4 0 0 30.45 r5 0 0 33.36 r1 45 0 24.57 r2 45 0 20.18 r3 45 0 23.79 r4 45 0 20.010 r5 45 0 66.811 r1 90 0 27.812 r2 90 0 17.213 r3 90 0 36.414 r4 90 0 33.515 r5 90 0 14.016 r1 180 0 20.617 r2 180 0 9.718 r3 180 0 8.819 r4 180 0 14.420 r5 180 0 21.621 r1 360 0 18.422 r2 360 0 8.923 r3 360 0 31.424 r4 360 0 13.325 r5 360 0 21.9  
  • R temsilidir
  • N, toprağa uygulanan azottur
  • P, toprağa uygulanan fosfordur
  • D. ağırlık, ortalama kuru ağırlıktır. gram cinsinden bitkiler

Bu verileri görselleştirmenin yolu, x eksenine N ve y eksenine kuru ağırlığı koymaktır:

Plot

Bu veriler için doğrusal olmayan bir regresyon yapmam gerekiyor, ancak ikinci dereceden bir modele uydurmak için nt; bunun yerine, aşağıdaki denkleme uydurmak istiyorum (Mitscherlich denklemine bir alternatif):

$ Y = a - b \ times \ exp (-cx) $

  • Y, kuru ağırlıktır
  • a, maksimum biyokütleyi temsil eden uygun bir parametredir
  • b, toprağa eklenen besin maddesinin başlangıç ​​seviyesini temsil eden uygun bir parametredir
  • c, artan besin değişikliği ile biyokütledeki artış oranını temsil eden uygun bir parametredir
  • x, bu durumda, nitrojen seviyesidir

Sorun şu ki, ben sadece bunun için nasıl kod yazılacağını bilmiyorum. R'ye bu denklemi regresyonum için kullanmak istediğimi ve $ Y = ax + b $ (doğrusal regresyonda olduğu gibi) veya $ Y = ax ^ 2 + yerine kullanmak istediğimi nasıl "söyleyeceğimi" bulmaya çalışırken deliriyorum bx + c $ ikinci dereceden regresyondaki gibi, vb.

Doğrusal olmayan modellemenin tekrarlanan ölçümlerle nasıl yapılacağı konusunda akademik istatistiksel danışma aradığınız görülüyor.Bu, SO'nun hedeflerinin bir parçası değil.(N ve P değerlerini nasıl kullanmayı planladığınız da net değil.)
Bir programcıya değil, bir istatistikçiye danışmanız gerekir.Bunun yerine [stats.se] deneyin;bu tür sorular için uygun yer burasıdır.Ne tür bir modele uyduğunuz, çoğunlukla test etmek istediğiniz hipoteze bağlıdır.
Hepinize merhaba.Soruyu düzenledim, ilk seferinde net olamadıysam üzgünüm.Belki başka bir göz atabilir misin?Teşekkürler.
Bu, CV'de birçok yerde gösterilmiştir.Cevaplarım arasında, benzer bir işlev kullanan (sizinkine kolayca değiştirilebilen) ve yarım düzine kod satırı ile uyumu sağlayan http://stats.stackexchange.com/a/70184;ve genelleştirilmiş bir doğrusal modele uyan http://stats.stackexchange.com/a/64039.Ayrıca tam olarak üstel modelinizle ilgilenen epeyce iş parçacığı vardır (ancak bir aramada bulmak zordur).Ancak önceki yorumların önerdiği gibi, bu analizde verilere bir eğri uydurmaktan çok daha fazlası var.Mümkünse, kurumunuzda istatistiksel destek arayın.
üç yanıtlar:
Glen_b
2014-10-18 09:51:02 UTC
view on stackexchange narkive permalink

Doğrusal olmayan bir regresyon sığdırabilirsiniz. $ E (Y) $ ile $ x $ arasındaki doğrusal olmayan ilişkinin yanı sıra, model varsayımlarınız sıradan regresyona benziyorsa (örneğin bağımsızlık ve sabit varyans) bu uygun olacaktır.

R'de , bkz. ? nls .

Bu özel modeldeki zorluk, uygun başlangıç ​​değerleri bulmaktır. Bununla birlikte, bir yeniden parametrelendirme ile, onu mevcut kendi kendine başlatma işlevlerinden biri haline getirebilir ve burada bazı sorunları ortadan kaldırabilirsiniz (özellikle, SSasymp 'in, ihtiyaç duyduğunuz yeniden parametrelenmiş model). Ancak, yeterince makul başlangıç ​​değerleri bulmayı başardım ve yakınsama elde ettim:

  nlsfit <- nls (D.weight ~ a - b * exp (-c * N), P0, start = list (a = 10, b = -20, c = .05)) özet (nlsfit) Formül: D.ağırlık ~ a - b * exp (-c * N) Parametreler: Tahmini Std. Hata t değeri Pr (> | t |) a 16.208572 6.222312 2.605 0.01617 * b -22.000400 7.552922 -2.913 0.00806 ** c 0.011082 0.009454 1.172 0.25364 --- Signif. kodlar: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 '' 1 Kalan standart hata: 22 serbestlik derecesinde 12.63 Yakınsama için yineleme sayısı: 11 Elde edilen yakınsama toleransı: 8.554e-06  

Sabit varyans varsayımı şüpheli olsa da, tolere edilebilecek kadar iyi uyuyor gibi görünüyor:

enter image description here

Ayrıca doğru çarpıklık.

"Doğrusal olmayan en küçük kareler" veya "nls" yi ararsanız, bazıları yararlı tavsiyeler içeren bir dizi gönderi açmalısınız. Tavsiye alma konusunda aldığınız yorumlara katılıyorum.

Teşekkürler @Glen_b!nls () tam olarak aradığım şeydi. Kimse: iyi başlangıç değerleri elde etmek için bir kod için fikirler?@Glen_b'nin önerdiği gibi selfStart'ı veya başka bir yöntemi kullanma.Ben de kendi kendime deniyorum ama her türlü yardıma açığız.
Aslında ben anladım!Biraz zaman aldı ama sonunda oraya gittim :)
Aaron Zeng
2014-10-20 10:40:20 UTC
view on stackexchange narkive permalink

@Glen_b, izlemeniz gereken doğru yolu sağlar. İşte bu doğrusal olmayan modelleme senaryosu için işaret etmek istediğim bazı konular.

İlk olarak, @Glen_b'nin gösterdiği doğrusal olmayan uyum, aynı N'de olsun ya da olmasın her gözlemin bağımsız olduğuna dair temel bir varsayıma sahiptir. Rep olan bir "R" değişkenine sahip olduğunuzu fark ettim. Ne anlama geldiğinden emin değilim ama bana öyle geliyor ki 5 R var, yani r1, r2, r3, r4 ve r5. Bu nedenle, her bir temsilciden gelen verilerin birbiriyle ilişkili olabileceğinden endişeleniyorum (değişkenleriniz hakkında daha fazla bilgi vermek isteyebilirsiniz). İlişkilendirilmişlerse, doğrusal olmayan en küçük kareler regresyon modeline uyması için her nitrojen seviyesinde N havuzlanmış ortalamayı kullanmak isteyebilirsiniz. Aksi takdirde, benzer nokta tahminleri almanız gerekir, ancak standart hataların tahminleri farklıdır.

İkinci olarak, başlangıç ​​değerlerine gelince, kullanabileceğiniz püf noktaları aşağıda verilmiştir. $ A $ değerinin, $ x $ pozitif sonsuza gittiğinde ağırlık değeri olduğuna dikkat edin. Dolayısıyla, en yakın tahmin olacağı için, eldeki en büyük $ x $ 'dan (yani nitrojen seviyesinden) alınan ağırlık verilerinin havuzlanmış ortalamasını $ a $ karşılığında kullanabilirsiniz. Benzer şekilde, $ x = 0, y = a - b $ olduğunda, $ a-b $ için ilk tahmini elde etmek için $ x = 0 $ 'da havuzlanmış ağırlık ortalamasını kullanabilirsiniz. Böylelikle $ b $ için ilk tahminde bulunabilirsiniz. Bundan sonra, rastgele x $ değerindeki verileri seçebilir ve ilk tahmini $ c $ 'ı çözmek için $ a, b $ yerine kullanabilirsiniz.

Üçüncüsü, her bir temsilcinin verileri gerçekten ilişkilendirilmişse. İlk olarak, farklı R seviyelerinde doğrusal olmayan eğrilerin farklı olduğunu, yani $ a, b, c $ 'nın farklı olduğunu varsayarak doğrusal olmayan bir rastgele etkiler modeli oluşturmak isteyebilirsiniz. Modeli oluşturduktan sonra, üç rastgele katsayıdan her birinin önemli olup olmadığını test edebilirsiniz. Örneğin, rastgele $ a $ esasen rastgele kesiştir. Sadece rastgele kesişme varsa, bu, tüm doğrusal olmayan eğrilerin aynı şekle sahip olduğu anlamına gelir, ancak rastgele $ a $ ile yukarı ve aşağı kaydırılır. R'de doğrusal olmayan karma efektler modelini yapmak için R'yi kullanmadım. Ancak SAS'da PROC NLMIXED tam olarak bunu yapıyor.

valerie
2014-10-18 08:32:41 UTC
view on stackexchange narkive permalink

İstatistikçi olmadığınız için size basit bir çözüm vereceğimi varsaydım.

SPSS'yi kurun ve regresyon >> doğrusal olmayan seçeneğine gidin

enter image description here

Verileriniz tam olarak eklenmediği için denedim, böylece model gerçekten daha doğrusal değildir, N ile DW arasındaki grafik ilişkisinin doğrusal olmadığını varsayarsanız, bu tür mitscherlich yukarıdaki adımları kullanarak gidebilirsiniz, $ b = max $ $ a= min $ $ c = herhangi bir katsayı $ bu yüzden bu try ve error gibidir, ancak nihai sonuç yaklaşım parametresinin yinelemesidir.
'SPSS'yi Yükle'nin basit bir çözüm olduğunu düşünmüyorum.


Bu Soru-Cevap, otomatik olarak İngilizce dilinden çevrilmiştir.Orijinal içerik, dağıtıldığı cc by-sa 3.0 lisansı için teşekkür ettiğimiz stackexchange'ta mevcuttur.
Loading...