Soru:
Üstel ağırlıklı hareketli doğrusal regresyon
brandon
2011-04-24 23:56:27 UTC
view on stackexchange narkive permalink

Örnekler geldikçe doğrusal regresyonu hesaplamam gereken bir problemim var. Üstel ağırlıklı hareketli doğrusal regresyonu elde etmek için kullanabileceğim bir formül var mı? Yine de buna adının bu olduğundan emin değilim.

Üssel olarak söylüyorum çünkü eski örneklerin ağırlığını aynı ağırlıklı hareketli ortalama kullanmak gibi kontrol etmek istiyorum. Ama eski örneklerin yeni örneklere göre katlanarak daha az ağırlıklı olmasını istiyorum.
Altı yanıtlar:
#1
+7
Dirk Eddelbuettel
2011-04-25 02:27:09 UTC
view on stackexchange narkive permalink

Elbette, lm () öğesine bir ağırlıklar = bağımsız değişkeni eklemeniz yeterlidir ( R durumunda):

  R> x <- 1:10 ## bunun ortalama 5.5R> lm (x ~ 1) ## regresyonda sabit hesaplamalara göre ortalamaCall: lm (formül = x ~ 1) Katsayılar: (Kesişim) 5.5 R> lm (x ~ 1, ağırlıklar = 0,9 ^ (seq (10,1, by = -1))) Çağrı: lm (formül = x ~ 1, ağırlıklar = 0,9 ^ (seq (10, 1, by = -1))) Katsayılar : (Intercept) 6.35 R> 

Burada 'daha yeni' ( yani , daha yüksek) değerlere daha fazla ağırlık verin ve ortalama 5.5'ten 6.35'e kayıyor. Anahtar eğer varsa, anında hesapladığım $ \ lambda ^ \ tau $ üstel ağırlıktır; ağırlık faktörünü seçtiğiniz herhangi bir değere değiştirebilir ve verilerinizi nasıl sıraladığınıza bağlı olarak üssün diğer şekilde çalışmasını da sağlayabilirsiniz.

Aynı şeyi, sahip olduğunuz regresörleri içeren regresyon modelleriyle de yapabilirsiniz. .

R.'yi hiç duymadım, istediğim gibi görünüyor, ama tüm sözdizimini anlamıyorum. Bu doğrusal regresyon formülüyle bunun nasıl çalıştığını açıklayabilir misiniz? (NΣXY - (ΣX) (ΣY)) / (NΣX ^ 2 - (ΣX) ^ 2). Formül benim problemim için mükemmel çalışıyor, ancak bir araştırma makalesi yazıyorum ve örnekler geldikçe çalışmak için bunun daha kabul edilebilir bir üstel hareketli formuna ihtiyacım var.
Bu sözdizimindeki seq komutu, son 10 örneği takip ettiği anlamına geliyor gibi görünüyor. Yaklaşan tüm geçmiş ağırlıkları azaltan ancak asla 0'a ulaşmayan üssel ağırlıklı hareketli ortalama gibi bir şeye ihtiyacım var.
Örnek için 10 kullandım; Veri kümenizin uzunluğu olarak N'yi belirlediğiniz yerde bunu N ile değiştirin. Ayrıca, bu, herhangi bir düzgün regresyon ders kitabının daha ayrıntılı olarak ele alacağı, sadece ** ağırlıklı en küçük kareler ** uygulamasıdır.
#2
+4
Ralph Winters
2011-04-25 20:18:03 UTC
view on stackexchange narkive permalink

Yapmak istediğiniz iki aşamalı bir model gibi görünüyor. Öncelikle verilerinizi belirli bir yumuşatma faktörü kullanarak üssel olarak düzleştirilmiş forma dönüştürün ve ardından dönüştürülen verileri doğrusal regresyon formülünüze girin.

http://www.jstor.org/pss/2627674

http://en.wikipedia.org/wiki/Exponential_smoothing

Görünüşe göre bu site yukarı oku basmama izin vermiyor çünkü çok yeniyim, ama kesinlikle ihtiyacım olan şey
@brandon Şimdi yapabilirsiniz (15 tekrar gereklidir).
Bilginize, Crane and Crotty referansı (http://www.jstor.org/pss/2627674) geçerli bir URL, ancak PDF'yi almaya çalışırken "dosya hasarlı ve onarılamadı" mesajı alıyorum .
#3
+3
Henry
2011-04-25 21:20:16 UTC
view on stackexchange narkive permalink

Formun bir denklemini arıyorsanız

$$ y = \ alpha_n + \ beta_n x $$

$ n $ veri geldikten sonra, ve $ k \ ge 1 $ üstel bir faktör kullanıyorsanız, bu durumda

$$ \ beta_n = \ frac {\ left (\ sum_ {i = 1} ^ nk ^ i \ right) \ kullanabilirsiniz. left (\ sum_ {i = 1} ^ nk ^ i X_i Y_i \ right) - \ left (\ sum_ {i = 1} ^ nk ^ i X_i \ right) \ left (\ sum_ {i = 1} ^ nk ^ i Y_i \ sağ)} {\ left (\ sum_ {i = 1} ^ nk ^ i \ right) \ left (\ sum_ {i = 1} ^ nk ^ i X_i ^ 2 \ right) - \ left (\ sum_ {i = 1} ^ nk ^ i X_i \ right) ^ 2} $$

ve

$$ \ alpha_n = \ frac {\ left (\ sum_ {i = 1 } ^ nk ^ i Y_i \ right) - \ beta_n \ left (\ sum_ {i = 1} ^ nk ^ i X_i \ right)} {\ sum_ {i = 1} ^ nk ^ i}. $$

Yuvarlama veya hız sorun haline gelirse, bu başka şekillerde yeniden biçimlendirilebilir. Ayrıca $ k>1 $ için $ \ sum_ {i = 1} ^ n k ^ i = \ frac {k (k ^ n - 1)} {k-1} $ olduğunu bilmeye değer.

Bu güzel, ancak çevrimiçi, yinelemeli bir formülasyon var mı?ör. $ a_ {n-1}, b_ {n-1}, x_n, y_n, k $ cinsinden $ a_n, b_n $ yazabilir misiniz?
@Peter: muhtemelen kolay değil, ancak çeşitli $ X_i $ ve $ Y_i $ tutarlarını saklamak yerine sadece dört veya beş cari meblağ depolayabilirsiniz.
#4
+3
MohSahx
2014-01-04 03:41:08 UTC
view on stackexchange narkive permalink

Evet yapabilirsin. Aradığınız yönteme üstel ağırlıklı en küçük kareler yöntemi denir. Yinelemeli en küçük kareler yönteminin bir varyasyonudur: \ begin {align} Θ ̂ (k + 1) & = Θ ̂ (k) + K [z (k + 1) -x ^ T (k + 1) Θ ̂ (k)] \\ K (k + 1) & = D (k) x (k + 1) [λ + x ^ T (k + 1) D (k) x (k + 1)] ^ (- 1 ) \\ D (k + 1) & = \ frac 1 λ \ bigg (D (k) -D (k) x (k + 1) \ bigg [λ + x ^ T (k + 1) D (k) x (k + 1) \ bigg] ^ {- 1} x ^ T (k + 1) D (k) \ bigg) \ end {align} $ 0.9<λ<1 $ tipik olarak.

Bu, geliştirilmiş bir yöntemdir. zamanla değişen parametreleri hesaba katmak için ancak yine de doğrusal bir formattadır. maliyet fonksiyonundan gelir: $$ J (Θ) = 1/2 ∑_ (i = km) ^ k▒ 〖λ ^ (ki) [z (i) -x ^ T (i) Θ]〗 ^ 2 $$

Sıradan En küçük kareler, karşılaştırma için aşağıdakilerden hesaplanır:

maliyet fonksiyonu şu şekildedir: $$ J (Θ) = 1/2 ∑_ (i = i) ^ k▒ [z (i) -x ^ T (i) Θ] ^ 2 $$ with \ begin {align} Θ (k) & = D (k) X_k ^ T Z_k \\ Cov [Θ ̂ (k)] & = σ ^ 2 D (k) \\ D (k) & = [X_k ^ T X_k] ^ {- 1} \ end {hizala}

-1
#5
+1
IrishStat
2011-04-25 15:49:36 UTC
view on stackexchange narkive permalink

Transfer Fonksiyonu Modelini oluşturursanız y (t) = W (B) * X (t) + [THETA (B) / PHI (B)] * a (t) operatörü [THETA (B) / PHI (B)] "yumuşatma bileşeni" dir. Örneğin, PHI (B) = 1.0 ve THETA (B) = 1-.5B ise bu, 0,5, .25, .125, ... değerlerinde bir dizi ağırlık anlamına gelir. bu şekilde, biçimini varsaymak yerine "ağırlıklı hareketli doğrusal regresyonu" optimize etme yanıtını sağlayabilirsiniz.

#6
+1
Peter
2018-05-10 14:12:33 UTC
view on stackexchange narkive permalink

Bunun üstel ağırlıklı hareketli doğrusal regresyonla gerçek ilişkisinden emin değilim, ancak üssel ağırlıklı bir eğimi ve ofseti tahmin etmek için basit bir çevrimiçi formül Holt-Winters çift üstel yumuşatma olarak adlandırılıyor.Wikipedia sayfasından:

$ x_0 ... x_t $ zaman serisi ve $ \ alpha \ in (0,1], \ beta \ in (0, 1] $ gibi düzgünleştirme parametreleri verildiğinde, Şununla başlat:

\ başla {hizala} s_1 & = x_1 \\ b_1 & = x_1 - x_0 \ end {hizala}

Ve sonra $ t>1 $ karşılığında: \ başla {hizala} s_t & = (1- \ alpha) (s_ {t-1} + b_ {t-1}) + \ alpha x_t \\ b_t & = (1- \ beta) b_ {t-1} + \ beta (s_t - s_ {t-1}) \ end {hizala}

$ b_t $, tahmini bir eğim ve $ s_t $, t anında tahmini bir y-kesişimidir.

Belki istatistiksel olarak eğilimli bir kişi, bunun üssel ağırlıklı hareketli doğrusal regresyon çözümüne ne kadar yakın olduğu konusunda yorum yapabilir.



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...