Prognozowanie wariancji danych heteroscedastycznych

15

Próbuję wykonać regresję danych heteroscedastycznych, w których próbuję przewidzieć wariancje błędów, a także wartości średnie w odniesieniu do modelu liniowego. Coś takiego:

y(x,t)=y¯(x,t)+ξ(x,t),ξ(x,t)N(0,σ(x,t)),y¯(x,t)=y0+ax+bt,σ(x,t)=σ0+cx+dt.

Słowami, dane składa się z powtarzalnych pomiarów przy różnych wartościach i . Sądzę pomiary te składają się z „prawdziwego” Średnia wartość , który jest liniową funkcją i , w dodatku do szumu gaussowskiego , którego odchylenie standardowe (lub wariancji Nie zdecydowałem) zależy również liniowo od . (Mógłbym pozwolić na bardziej skomplikowane zależności od i - nie ma silnej teoretycznej motywacji dla formy liniowej - ale wolałbym nie komplikować rzeczy na tym etapie).y(x,t)xty¯(x,t)xtξ(x,t)x,txt

Wiem, że wyszukiwanym terminem jest „heteroscedastyczność”, ale jak dotąd udało mi się znaleźć dyskusje o tym, jak go zmniejszyć / usunąć, aby lepiej przewidzieć , ale nic w kategoriach próby przewidzeniay¯ σ pod względem zmiennych niezależnych. Chciałbym szacują, i D z przedziałami ufności (lub ekwiwalentów Bayesa), a jeśli nie jest to łatwy sposób, aby to zrobić w SPSS tym lepiej! Co powinienem zrobić? Dzięki.y0,a,b,σ0,cd

Michael
źródło
Zobacz to pokrewne pytanie dla niektórych odniesień, Wariancja jako funkcja parametrów
Andy W
Próbowałeś GARCH?
Aksakal
Uogólnione modele liniowe to gałąź zajmująca się twoim problemem. Jest książka o tym samym tytule, bardzo polecana.
Diego

Odpowiedzi:

1

Myślę, że twoim pierwszym problemem jest to, że nie jest już rozkładem normalnym, a to, jak dane muszą zostać przekształcone, aby były homoscedastyczne, zależy dokładnie od tego, czym jest σ ( x , t ) . Na przykład, jeśli σ ( x , t ) = a x + b t , to błąd ma charakter proporcjonalny, a logarytm danych y powinien zostać przyjęty przed regresją lub regresja skorygowana ze zwykłych najmniejszych kwadratów (OLS) do ważonej najmniej kwadratów z 1N.(0,σ(x,t))σ(x,t)σ(x,t)=zax+bt waga (która zmienia regresję na zminimalizowany błąd typu proporcjonalnego). Podobnie, jeśli σ ( x , t ) = e a x + b t , należałoby wziąć logarytm logarytmu i go regresować.1/y2)σ(x,t)=mizax+bt

Myślę, że powodem słabego przewidywania typów błędów jest to, że najpierw wykonuje się jakąkolwiek starą regresję (jęk, zwykle zwykłe najmniejsze kwadraty, OLS). Oraz z linii dostarczającej pozostałości działki, tj , obserwuje się resztkowe kształt i przedstawi się histogram częstotliwości danych i wygląda na to. Następnie, jeśli reszty są wiązką wachlarza otwierającą się w prawo, próbuje się proporcjonalnego modelowania danych, jeśli histogram wygląda jak rozkład wykładniczy, można spróbować odwrotności, 1 / y itd. Itd. Dla pierwiastków kwadratowych, kwadratów, potęgowania , biorąc wykładniczy-y.moremil-y1/y

To tylko krótka historia. Dłuższa wersja zawiera o wiele więcej rodzajów regresji, w tym regresję medianową Theila, regresję dwuwymiarową Deminga i regresję w celu minimalizacji błędu źle przedstawionych problemów, które nie mają szczególnego związku dopasowania dopasowania krzywej do pomniejszonego propagowanego błędu. Ten ostatni jest niesamowity, ale zobacz tojako przykład. Tak, że robi to dużą różnicę, jakie odpowiedzi próbuje się uzyskać. Zazwyczaj, jeśli ktoś chce ustalić związek między zmiennymi, rutynowy OLS nie jest metodą z wyboru, a regresja Theila byłaby szybką i nieprzyzwoitą poprawą. OLS minimalizuje się tylko w kierunku y, więc nachylenie jest zbyt płytkie, a przecięcie zbyt duże, aby ustalić, jaka jest podstawowa zależność między zmiennymi. Innymi słowy, OLS podaje oszacowanie najmniejszego błędu ay przy x, nie podaje oszacowania, jak x zmienia się zy. Gdy wartości r są bardzo wysokie (0,99999+), nie ma znaczenia, jaką regresję stosuje się, a OLS w y jest w przybliżeniu taki sam jak OLS w x, ale gdy wartości r są niskie, OLS w y bardzo różni się od OLS w x.

Podsumowując, wiele zależy dokładnie od tego, jakie jest uzasadnienie przeprowadzania analizy regresji w pierwszej kolejności. To dyktuje potrzebne metody numeryczne. Po dokonaniu tego wyboru reszty mają następnie strukturę związaną z celem regresji i muszą być analizowane w tym szerszym kontekście.

Carl
źródło
0

Polecenie rozszerzenia STATUS BREUSCH PAGAN może zarówno testować resztki pod kątem heteroscedastyczności, jak i szacować je jako funkcję niektórych lub wszystkich regresorów.

JKP
źródło
0

Ogólne podejście do tego rodzaju problemów polega na maksymalizacji (uregulowanego) prawdopodobieństwa danych.

L.L.(y0,za,b,σ0,do,re)=ja=1nlogϕ(yja,y0+zaxja+btja,σ0+doxja+retja)
ϕ(x,μ,σ)=12)πσmi-(x-μ)2)2)σ2)

θ^θ=(y0,za,b,σ0,do,re)

H.θnθ^H.-1

Oto przykładowy kod w Pythonie:

import scipy
import numpy as np

# generate toy data for the problem
np.random.seed(1) # fix random seed
n = 1000 # fix problem size
x = np.random.normal(size=n)
t = np.random.normal(size=n)
mean = 1 + x * 2 + t * 3
std = 4 + x * 0.5 + t * 0.6
y = np.random.normal(size=n, loc=mean, scale=std)

# create negative log likelihood
def neg_log_lik(theta):
    est_mean = theta[0] + x * theta[1] + t * theta[2]
    est_std = np.maximum(theta[3] + x * theta[4] + t * theta[5], 1e-10)
    return -sum(scipy.stats.norm.logpdf(y, loc=est_mean, scale=est_std))

# maximize
initial = np.array([0,0,0,1,0,0])
result = scipy.optimize.minimize(neg_log_lik, initial)
# extract point estimation
param = result.x
print(param)
# extract standard error for confidence intervals
std_error = np.sqrt(np.diag(result.hess_inv))
print(std_error)

σσ10-10

Wynik (oszacowania parametrów i ich błędy standardowe) wygenerowany przez kod to:

[ 0.8724218   1.75510897  2.87661843  3.88917283  0.63696726  0.5788625 ]
[ 0.15073344  0.07351353  0.09515104  0.08086239  0.08422978  0.0853192 ]

Widać, że szacunki są zbliżone do ich prawdziwych wartości, co potwierdza poprawność tej symulacji.

David Dale
źródło