Lojistik regresyon için bir üst sınırı sadece 5 ila 7 veri noktasıyla nasıl tahmin edebilirim?


11

I biçimi olduğunu veri . ile arasındaki tahminler için bu yazının formüllerini kullanıyorum: John Fox - Doğrusal Olmayan Regresyon ve Doğrusal Olmayan En Küçük Kareler Bu makalede, verilere bakarak tahmin edilmiştir. Bunu yaparsam, sadece üç puanım olsa bile iyi çalışır. Bundan diğer ikisini hesaplayabilirim. Parametrelerimi R'de nls () ve C #'da LevenbergMarquardt ile test ettim. Onların geri döndürdüğü modeller tatmin edicidir. β1β3β1y=β11+exp(β2+β3x)β1β3β1

Sorun için iyi bir tahminci elde etmek için verilere bakmak istemiyorum, benim programı hesaplamak istiyorum. Bir süredir değerlerimin maksimumundan biraz daha yüksek değerler kullandım ( ve \ max * 1.5 arasında bir şey . Bu fonksiyonun çoğunu kapsadığı sürece iyi çalıştı. veri noktaları eğrinin "en üstünde" bir yerdeydi, ama hepsi çekim noktasının "altındaki" alandan geldiğinde, bu tahmin edici kesinlikle olması gerekenden daha düşüktü ve modele sığamazdım. bu kesinlikle maksimum noktadan daha yüksektir (gülünç derecede yüksek değerlerle çarparak) model herhangi bir yararlı şekilde uymaz.β1max1.1max1.5

Ölçümler şöyle görünebilir:

x = (40, 50, 60, 70), y = (1000, 950, 400, 200) -> hesaplaması kolay

x = (40, 50, 60, 70), y = (1000, 950, 800, 100) -> hesaplaması kolay

x = (40, 50, 60, 70), y = (500, 200, 100, 50) -> tahmin etmek o kadar kolay değil

Sanırım verilen noktalardaki deltaları hesaplayarak ve fonksiyonun neresinde olduğumu ("alt", "üst", eğimde) bulabilirim ve buna bağlı olarak bir üst sınır hesaplayabilirim. Daha iyi bir çözüm için bir ipucu var mı? Ek bilgi: Eğer yapılamazsa, benim için uygun olabilecek ölçümlerin olabildiğince iyi olması ve bazı ölçümlerin hiç uygun olamayacağını kabul ediyorum.

(C # 'da bir uygulama istememe rağmen buraya gönderdim, sorunun dile bağlı olduğunu düşünmüyorum)

güncelleme (bunun uygulaması):

x sıcaklık değerleri ve karşılık gelen ölçümlerdir. Doğası gereği, daha düşük sıcaklıklarda daha yüksek y değerlerine sahip bir lojistik eğri gibi görünmesi ve tersi de geçerlidir. Erime noktası, model parametrelerinde küçük değişikliklerle çok değişen eğrinin bükülme noktasına eşittir.

güncelleme (bazıları 7 veri noktası ve bilinen bükülme noktası 60 olan veriler):

//first I made up some data without any noise and enough (13) points
double[] x17 = { 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90 };
double[] y17 = { 2000, 1920, 1820, 1700, 1500, 1280, 1000, 720, 500, 300, 180, 80, 0 };
//calculated inflection point: 59.642....

//Then I took three different parts of that data 
(to simulate how much data I will have in the real world)
double[] x18 = { 30, 35, 40, 45, 50, 55, 60 };
double[] y18 = { 2000, 1920, 1820, 1700, 1500, 1280, 1000 };
//calculated inflection point: 59.263.... is ok!

double[] x19 = { 60, 65, 70, 75, 80, 85, 90 };
double[] y19 = { 1000, 720, 500, 300, 180, 80, 0 };
//calculated inflection point: 53.447.... to small!

double[] x20 = { 45, 50, 55, 60, 65, 70, 75 };
double[] y20 = { 1700, 1500, 1280, 1000, 720, 500, 300 };
//calculated inflection point: 59.868... almost perfect!

Üst sınır tahmini için şu anki yaklaşımım y0 * y0 / y1. Bu şekilde, her zaman maksimuma yakın bir değere sahip olamayacağımı dikkate almayı umuyorum.

update: x ve y değerleri asla negatif olmayacaktır. Bir veri noktası kaybolmadıkça x daima {40, 45, 50, 55, 60, 65, 70} olacaktır.

güncelleme: Takılması kolay olması gereken simüle edilmiş verilerle birçok test yaptım (tam olarak eğri üzerinde olan veri noktalarını seçiyorum = herhangi bir gürültü olmadan) ve birinci veya ikinci veri noktası (burada x = 40 veya x = 45) eksik. Sanırım bu tür ölçümleri atmam gerekecek ve kullanıcı bununla yaşamak zorunda kalacak.


Bu kadar az sayıda nokta ile gerçek probleminizin tahminlerin yanlışlığı olduğunu düşünüyorum, onları nasıl hesapladığınız değil.
Michael R. Chernick

1
Son örnekle ilgili sorun, (eksi işaretine dikkat edin formunun bir fonksiyonu ile çok daha iyi uyum . Bu kabul edilebilir bir çözüm müdür? Değilse, sorun yaşamaya devam edeceksiniz, çünkü iki model arasındaki sınırdaki çözümleri kabul etmeniz gerekecek (ve bunlar korkunç). y=β11exp(β2+β3x))
whuber

@MichaelChernick Sanırım haklısın, sorun şu ki 7'den fazla veri puanı alamayacağım. Sanırım bundan daha azıyla sonuç çıkarmak zorundayım. Aynı olması gereken sonuçları içeren test senaryoları ekledim. İyileştirme için yer var mı veya bu en yakın olanı mı?
Verena Haunschmid

@whuber Verileri negatif işaretiyle sığdırmaya çalıştım, ancak her parametre seti için tekil bir degrade matris hatası aldım (R'de). Hangi tahmincileri aldınız? Eğrinin neden bu şekilde görünmesi gerektiğinin altını çizmek için kullandığım alan hakkında bilgi ekledim. (Formülünüzün bu gereksinimleri karşılayıp karşılamadığından henüz emin değilim)
Verena Haunschmid

(1) değerleri hangi birimlerdedir ? Bunlar negatif olabilirse, modeliniz muhtemelen çalışmaz. (2) "Gürültünün" doğası veya değerlerindeki hatalar hakkında ne söyleyebilirsiniz ? Bu, montaj için çok önemli olabilir. yy
whuber

Yanıtlar:


1

Bu yılın başlarında benzer bir sorun üzerinde çalıştım. Kullandığım çözüm , maksimum değerini ortadan kaldırmak için doğrusal cebir kullanan bu makaleye dayanıyordu . Bu şekilde, kalan parametreler için sonuçlar bir kez bazı prosedürler ile belirlendikten sonra (kağıttaki gibi hata yüzeyini en aza sonunda çıkarmak için kullanılabilir .β 1β1β1

Sezgisel olarak, bu çözüm, aynı hız ve konum parametrelerine sahip tüm lojistik eğrilerin kendi kendine benzer olduğu öncülüne dayanır, böylece üst sınırın ayarlanması sadece sigmoidal eğriyi uygun maksimuma "uzatmak" anlamına gelir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.