Inferenza della regressione e stimatori sandwich


10

Potete darmi un esempio dell'uso degli stimatori sandwich per eseguire inferenze di regressione robuste?

Riesco a vedere l'esempio in ?sandwich, ma non capisco bene come possiamo passare da lm(a ~ b, data)( codice ) a una stima e un valore p risultanti da un modello di regressione usando la matrice varianza-covarianza restituita dalla funzione sandwich.


hai passato gli esempi nella vignetta associata ?
user603

(1) Link funziona per me. (2) È una domanda di codifica? Come ottenere Huber-White SE dopo aver montato un modello. O qualcos'altro?
charles,

@charles 1) In effetti funziona! Non so cosa sia successo prima. Sì, è una domanda di codifica R. 2) Non so quali sono gli errori standard Huber-White e non so come calcolarli adesso. Grazie per l'aiuto!
Remi.b

Ottieni valori p ed errori standard come al solito, sostituendo la stima sandwich della matrice varianza-covarianza con quella dei minimi quadrati.
Scortchi - Ripristina Monica

@Scortchi Ok. E una volta che ho queste stime (stime OLS o sandwich) cosa posso fare con loro?
Remi.b

Risposte:


9

Penso che ci siano alcuni approcci. Non li ho guardati tutti e non sono sicuro di quale sia il migliore:

  1. Il sandwichpacchetto:

    library(sandwich)    
    coeftest(model, vcov=sandwich)
    

Ma questo non mi dà le stesse risposte che ottengo da Stata per qualche motivo. Non ho mai provato a capire perché, non uso questo pacchetto.

  1. Il rmspacchetto: trovo un po 'una seccatura con cui lavorare ma di solito ottengo buone risposte con un certo sforzo. Ed è il più utile per me.

    model = ols(a~b, x=TRUE)    
    robcov(model)
    
  2. Puoi codificarlo da zero (vedi questo post sul blog ). Sembra l'opzione più dolorosa, ma straordinariamente facile e questa opzione spesso funziona meglio.

Una spiegazione semplice / rapida è che Huber-White o Robust SE derivano dai dati piuttosto che dal modello, e quindi sono robusti per molte ipotesi di modello. Ma come sempre, una rapida ricerca su Google lo spiegherà in modo estremamente dettagliato se sei interessato.


Dovresti davvero vedere questa risposta qui: stats.stackexchange.com/a/117066/12053
chandler

2
Mi piace come questa risposta supponga implicitamente che ci sia qualcosa di sbagliato in R, perché ottieni risultati diversi da Stata. Per le persone che sanno come funzionano gli stimatori sandwich, la differenza è ovvia e facile da porre rimedio. Per le persone che non lo sanno, ti preghiamo di leggere la vignetta (guida) fornita con il pacchetto
Repmat

10

È possibile utilizzare una funzione di riepilogo alternativa per eseguire una regressione efficace.

lm.object <- lm(a~b+c)
summary(lm.object, robust=TRUE)

Per ottenere solidi errori standard, impostare il parametro '' robust '' nella funzione di riepilogo su TRUE.

Il seguente post di blog fornisce la funzione e una descrizione dettagliata della funzione: https://economictheoryblog.com/2016/08/08/robust-standard-errors-in-r

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.