Previsione della varianza dei dati eteroscedastici


15

Sto cercando di fare una regressione sui dati eteroscedastici in cui sto cercando di prevedere le varianze di errore e i valori medi in termini di un modello lineare. Qualcosa come questo:

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.

In parole, i dati sono costituiti da misurazioni ripetute di a vari valori di e . Presumo che queste misurazioni consistano in un valore "vero" medio che è una funzione lineare di e , con rumore gaussiano additivo cui deviazione standard (o varianza, Non ho deciso) dipende anche linearmente da . (Potevo permettere dipendenze più complicato su e -, non v'è una forte motivazione teorica per una forma lineare - ma io le cose, piuttosto non complicare in questa fase.)y(x,t)xty¯(x,t)xtξ(x,t)x,txt

So che il termine di ricerca qui è "eteroscedasticità", ma tutto ciò che sono riuscito a trovare finora sono discussioni su come ridurlo / rimuoverlo per prevedere meglio , ma nulla in termini di tentare di prevedere in termini di variabili indipendenti. Vorrei stimare e con intervalli di confidenza (o equivalenti bayesiani), e se c'è un modo semplice per farlo in SPSS, tanto meglio! Cosa dovrei fare? Grazie.y¯ σy0,a,b,σ0,cd


Vedi questa domanda correlata per alcuni riferimenti, Varianza in funzione dei parametri
Andy W

Hai provato GARCH?
Aksakal,

Modelli lineari generalizzati è il ramo che affronta il tuo problema. C'è un libro con lo stesso titolo, molto raccomandato.
Diego,

Risposte:


1

Penso che il tuo primo problema sia che non sia più una distribuzione normale e che il modo in cui i dati devono essere trasformati in modo omoscedastico dipende esattamente da cosa sia σ ( x , t ) . Ad esempio, se σ ( x , t ) = a x + b t , allora l'errore è di tipo proporzionale e il logaritmo dei dati y deve essere preso prima della regressione, oppure, la regressione adattata dai minimi quadrati ordinari (OLS) a ponderata minimi quadrati con un 1N(0,σ(x,t))σ(x,t)σ(x,t)=ax+bt peso (che modifica la regressione in errore di tipo proporzionale minimizzato). Allo stesso modo, se σ ( x , t ) = e a x + b t , si dovrebbe prendere il logaritmo del logaritmo e regredire.1/y2σ(x,t)=eax+bt

Penso che la ragione per cui la previsione dei tipi di errore sia scarsamente coperta è che si fa prima una vecchia regressione (gemito, minimi quadrati tipicamente ordinari, OLS). E dalla trama residua, vale a dire , si osserva la forma residua e si traccia l'istogramma di frequenza dei dati e si osserva quello. Quindi, se i residui sono un'apertura fascio a ventaglio verso destra, si cerca dati proporzionale modellazione, se l'aspetto dell'istogramma come un decadimento esponenziale si potrebbe provare moto alternativo, 1 / y , e così via e così via per le radici quadrate, squadratura, elevamento , prendendo esponenziale-y.modely1/y

Ora, questo è solo il racconto. La versione più lunga include molti più tipi di regressione tra cui la regressione mediana di Theil, la regressione bivariata di Deming e la regressione per ridurre al minimo l'errore di problemi mal posti che non hanno minimizzato una relazione di bontà di adattamento all'errore propagato. Quest'ultimo è un enorme, ma, guarda questocome esempio. In modo che faccia una grande differenza ciò che la risposta si sta cercando di ottenere. In genere, se si desidera stabilire una relazione tra variabili, la OLS di routine non è il metodo di scelta e la regressione di Theil sarebbe un miglioramento rapido e sporco su questo. OLS minimizza solo nella direzione y, quindi la pendenza è troppo superficiale e l'intercetta troppo grande per stabilire quale sia la relazione sottostante tra le variabili. Per dirlo in un altro modo, OLS fornisce una stima dell'errore minimo di ay data una x, non fornisce una stima di come x cambi con y. Quando i valori r sono molto alti (0.99999+) fa poca differenza quale regressione si usa e OLS in y è approssimativamente uguale a OLS in x, ma, quando i valori r sono bassi, OLS in y è molto diverso da OLS in x.

In sintesi, molto dipende esattamente da quale sia il ragionamento che ha motivato a fare l'analisi di regressione in primo luogo. Ciò determina i metodi numerici necessari. Dopo aver fatto questa scelta, i residui hanno quindi una struttura correlata allo scopo della regressione e devono essere analizzati in quel contesto più ampio.


0

Il comando di estensione STATAN BREUSCH PAGAN può sia testare i residui per l'eteroscedasticità sia stimarlo in funzione di alcuni o tutti i regressori.


0

L'approccio generale ai problemi di questo tipo è massimizzare la probabilità (regolarizzata) dei dati.

LL(y0,a,b,σ0,c,d)=i=1nlogϕ(yi,y0+axi+bti,σ0+cxi+dti)
ϕ(x,μ,σ)=12πσe(xμ)22σ2

θ^θ=(y0,a,b,σ0,c,d)

Hθnθ^H1

Ecco un codice di esempio in Python:

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)

σσ1010

Il risultato (stime dei parametri e loro errori standard) prodotto dal codice è:

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

Puoi vedere che le stime sono vicine ai loro veri valori, il che conferma la correttezza di questa simulazione.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.