Frage:
Exponentiell gewichtete bewegte lineare Regression
brandon
2011-04-24 23:56:27 UTC
view on stackexchange narkive permalink

Ich habe ein Problem, bei dem ich die lineare Regression berechnen muss, wenn Stichproben eingehen. Gibt es eine Formel, mit der ich die exponentiell gewichtete bewegte lineare Regression ermitteln kann? Ich bin mir nicht sicher, ob Sie es so nennen würden.

Ich sage exponentiell, weil ich das Gewicht alter Proben genau wie den gewichteten gleitenden Durchschnitt kontrollieren möchte. Aber ich möchte, dass die alten Samples weniger gewichtet werden, exponentiell weniger als neuere Samples
Sechs antworten:
#1
+7
Dirk Eddelbuettel
2011-04-25 02:27:09 UTC
view on stackexchange narkive permalink

Sicher, fügen Sie einfach ein Argument weight = zu lm () hinzu (im Fall von R):

  R> x <- 1:10 ## Mittelwert davon ist 5.5R> lm (x ~ 1) ## Regression bei konstanten Berechnungen meanCall: lm (Formel = x ~ 1) Koeffizienten: (Intercept) 5.5 R> lm (x ~ 1, Gewichte = 0,9 ^ (seq (10,1, by = -1))) Aufruf: lm (Formel = x ~ 1, Gewichte = 0,9 ^ (seq (10, 1, by = -1)) Koeffizienten : (Intercept) 6.35 R>  

Hier geben Sie 'neueren' ( dh höheren) Werten mehr Gewicht und der Mittelwert verschiebt sich von 5,5 auf 6,35. Der Schlüssel, falls vorhanden, ist das exponentielle Gewicht von $ \ lambda ^ \ tau $, das ich im laufenden Betrieb berechne. Sie können den Gewichtungsfaktor in einen beliebigen Wert ändern. Je nachdem, wie Sie Ihre Daten bestellen, kann der Exponent auch in die andere Richtung ausgeführt werden.

Sie können dasselbe mit Regressionsmodellen tun, an denen die Regressoren beteiligt sind, die Sie haben .

Ich habe noch nie von R. gehört. Scheint das zu sein, was ich will, aber ich verstehe nicht die gesamte Syntax. Können Sie erklären, wie das mit dieser linearen Regressionsformel funktionieren würde? (NΣXY - (ΣX) (ΣY)) / (NΣX ^ 2 - (ΣX) ^ 2). Die Formel funktioniert perfekt für mein Problem, aber ich schreibe eine Forschungsarbeit und benötige eine akzeptablere exponentielle Bewegungsform, um zu arbeiten, wenn Proben eingehen.
Es scheint, als ob der Befehl seq in dieser Syntax bedeutet, dass er die letzten 10 Samples verfolgt. Ich brauche so etwas wie einen exponentiell gewichteten gleitenden Durchschnitt, der alle vergangenen Gewichte verringert, die sich nähern, aber niemals 0 erreichen
Ich habe 10 für das Beispiel verwendet; Ersetzen Sie dies durch N, wobei Sie N als Länge Ihres Datensatzes bestimmen. Dies ist auch einfach eine Anwendung von ** gewichteten kleinsten Quadraten **, die in jedem anständigen Regressionslehrbuch ausführlicher behandelt wird.
#2
+4
Ralph Winters
2011-04-25 20:18:03 UTC
view on stackexchange narkive permalink

Klingt so, als ob Sie ein zweistufiges Modell machen möchten. Transformieren Sie Ihre Daten zunächst unter Verwendung eines angegebenen Glättungsfaktors in eine exponentiell geglättete Form und geben Sie dann die transformierten Daten in Ihre lineare Regressionsformel ein.

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

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

Anscheinend lässt mich diese Seite nicht auf den Aufwärtspfeil treffen, weil ich zu neu bin, aber definitiv das, was ich brauchte
@brandon Jetzt können Sie (15 Wiederholungen erforderlich).
Zu Ihrer Information, die Crane and Crotty-Referenz (http://www.jstor.org/pss/2627674) ist eine gültige URL, aber beim Versuch, das PDF abzurufen, wird die Meldung angezeigt, dass "die Datei beschädigt ist und nicht repariert werden konnte". .
#3
+3
Henry
2011-04-25 21:20:16 UTC
view on stackexchange narkive permalink

Wenn Sie nach einer Gleichung der Form

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

suchen, nachdem $ n $ Daten eingegangen sind, Wenn Sie einen Exponentialfaktor $ k \ ge 1 $ verwenden, können Sie

$$ \ beta_n = \ frac {\ left (\ sum_ {i = 1} ^ nk ^ i \ right) \ verwenden links (\ sum_ {i = 1} ^ nk ^ i X_i Y_i \ rechts) - \ links (\ sum_ {i = 1} ^ nk ^ i X_i \ rechts) \ links (\ sum_ {i = 1} ^ nk ^ i Y_i \ rechts)} {\ links (\ sum_ {i = 1} ^ nk ^ i \ rechts) \ links (\ sum_ {i = 1} ^ nk ^ i X_i ^ 2 \ rechts) - \ links (\ sum_ {i = 1} ^ nk ^ i X_i \ right) ^ 2} $$

und

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

Wenn Rundungen oder Geschwindigkeit zu Problemen werden, kann dies in anderen Formen neu gefasst werden. Es kann auch erwähnenswert sein, dass Sie für $ k>1 $ $ \ sum_ {i = 1} ^ n k ^ i = \ frac {k (k ^ n - 1)} {k-1} $ haben.

Das ist schön, aber gibt es eine rekursive Online-Formulierung?d.h. können Sie $ a_n, b_n $ als $ a_ {n-1}, b_ {n-1}, x_n, y_n, k $ schreiben?
@Peter: wahrscheinlich nicht einfach, aber anstatt all die verschiedenen $ X_i $ und $ Y_i $ zu behalten, können Sie einfach vier oder fünf laufende Summen speichern
#4
+3
MohSahx
2014-01-04 03:41:08 UTC
view on stackexchange narkive permalink

Ja, das kannst du. Die Methode, nach der Sie suchen, wird als exponentiell gewichtete Methode der kleinsten Quadrate bezeichnet. Es ist eine Variation der Methode der rekursiven kleinsten Quadrate: \ begin {align} Θ k (k + 1) & = Θ k (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 $ typisch.

Es ist eine entwickelte Methode um zeitvariable Parameter zu berücksichtigen, die jedoch immer noch in einem linearen Format vorliegen. was aus der Kostenfunktion stammt: $$ J (Θ) = 1/2 ∑_ (i = km) ^ k▒ λ λ ^ (ki) [z (i) -x ^ T (i) Θ]〗 ^ 2 $$

Gewöhnliche kleinste Quadrate werden zum Vergleich aus den folgenden berechnet:

Die Kostenfunktion lautet: $$ J (Θ) = 1/2 ∑_ (i = i) ^ k▒ [z (i) -x ^ T (i) Θ] ^ 2 $$ mit \ begin {align} Θ (k) & = D (k) X_k ^ T Z_k \\ Cov [Θ ̂ (k)] & = σ ^ 2 D (k) \\ D (k) & = [X_k ^ T X_k] ^ {- 1} \ end {align}

Willkommen auf der Website, @MohSahx! Es wäre klarer, wenn Sie Ihre Formeln in "Latex" bearbeiten könnten, insbesondere um die Symbole wie "▒" zu überarbeiten.
#5
+1
IrishStat
2011-04-25 15:49:36 UTC
view on stackexchange narkive permalink

Wenn Sie das Übertragungsfunktionsmodell y (t) = W (B) * X (t) + [THETA (B) / PHI (B)] * a (t) bilden, ist der Operator [THETA (B) / PHI (B)] ist die "Glättungskomponente". Wenn beispielsweise PHI (B) = 1,0 und THETA (B) = 1 - 0,5 B sind, würde dies einen Satz von Gewichten von 0,5, 0,25, 0,125, ... implizieren. Auf diese Weise können Sie die Antwort auf die Optimierung der "gewichteten beweglichen linearen Regression" geben, anstatt ihre Form anzunehmen.

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

Ich bin mir nicht sicher, in welcher Beziehung dies zur exponentiell gewichteten linearen Regression steht, aber eine einfache Online-Formel zur Schätzung einer exponentiell gewichteten Steigung und eines Versatzes heißt Holt-Winters doppelte exponentielle Glättung.Von der Wikipedia-Seite:

Bei einer Zeitreihe $ x_0 ... x_t $ und Glättungsparametern $ \ alpha \ in (0,1], \ beta \ in (0, 1] $, initialisieren mit:

\ begin {align} s_1 & = x_1 \\ b_1 & = x_1 - x_0 \ end {align}

Und dann für $ t>1 $: \ begin {align} 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 {align}

Wobei $ b_t $ eine geschätzte Steigung und $ s_t $ ein geschätzter y-Achsenabschnitt zum Zeitpunkt t ist.

Vielleicht kann eine statistisch geneigte Person kommentieren, wie nahe dies an der Lösung der exponentiell gewichteten linearen Regression liegt.



Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 3.0-Lizenz, unter der er vertrieben wird.
Loading...