Come gestite le variabili "nidificate" in un modello di regressione?


11

Considera un problema statistico in cui hai una responsevariabile che vuoi descrivere in base a una explanatoryvariabile e una nestedvariabile, in cui la variabile nidificata si pone solo come variabile significativa per valori particolari della variabile esplicativa . Nei casi in cui la variabile esplicativa non ammette una variabile nidificata significativa, quest'ultima è generalmente codificata come NAnel set di dati o se è codificata con un valore, quel valore è semplicemente un segnaposto che non ha alcuna interpretazione significativa.

Questa situazione tende a presentarsi ogni volta che si ha una variabile esplicativa che indica l' esistenza di una cosa e una o più variabili nidificate che descrivono le caratteristiche di quella cosa. Alcuni esempi di questo tipo di situazione in problemi statistici sono i seguenti:

  • La variabile esplicativa è un indicatore del fatto che un partecipante al sondaggio sia married, e la variabile nidificata è un po ' characteristic of the spouse(es. Istruzione, età, ecc.);

  • La variabile esplicativa è un indicatore di presence of an itemin uno spazio e la variabile nidificata è una misura di alcuni characteristic of the item(ad esempio, dimensione, distanza, ecc.);

  • La variabile esplicativa è un indicatore del verificarsi di un evente la variabile nidificata è una descrizione di alcuni characteristic of the event(ad esempio, durata, grandezza, ecc.).

In questo tipo di situazioni, spesso vogliamo costruire un modello di tipo di regressione (in senso lato che includa GLM, GLMM, ecc.) Che descriva la relazione tra la variabile di risposta e le altre variabili. Non è ovvio come gestire la variabile nidificata in questo tipo di modello.

Domanda: Come gestiamo la nestedvariabile in questo tipo di modello?


Nota: questa domanda è progettata per fornire una risposta generalizzata a una domanda ricorrente su CV.SE relativa alle variabili nidificate in regressione (vedere ad es. Qui , qui , qui e qui ). Questa domanda ha lo scopo di fornire un esempio generalizzato indipendente dal contesto di questo problema.


1
Avrei lasciato questo come commento ma non ho abbastanza reputazione. Sto riscontrando problemi nell'uso di questa soluzione in R - glm () o lm (). Sto usando il modello: y ~ x1 + x1: x2 Sfortunatamente se codifico i dati mancanti come NA, la na.action predefinita rimuove le righe con NA e lascia x1 con un solo livello - rendendo il modello equivalente a solo: y ~ x2 Se uso argomento per glm: na.action = na.pass ricevo un errore: Errore in glm.fit (x = c (1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 , 1, 1, 1, 1, 1,: NA / NaN / Inf in 'x' Se invece codifico la variabile mancante come 0, il modello nidificato: y ~ x1 + x1: x2 Fornisce l'esatto
Adam Waring

Risposte:


9

I valori insignificanti delle variabili nidificate non devono influire sul modello: il desiderio cruciale con questo tipo di analisi dei dati è che la nestedvariabile non deve influire sul modello se la explanatoryvariabile originale non lo ammette come variabile significativa. In altre parole, il modello deve essere di una forma che ignora i valori insignificanti della variabile nidificata . Questo è un requisito fondamentale per un modello valido con variabili nidificate, poiché garantisce che l'output del modello non sia influenzato da scelte di codifica arbitrarie.


Modellazione con variabili nidificate: questo requisito viene raggiunto inserendo la nestedvariabile nel modello solo come interazione con la explanatoryvariabile originale , senza includerla come effetto principale. (Più specificamente, la variabile nidificata deve essere interagita con un'istruzione logica sulla variabile esplicativa che indica che si tratta di una variabile significativa.) Si noti che questa è un'eccezione alla regola generale che i termini non dovrebbero essere inclusi come interazioni senza un termine con effetto principale .

Considera il caso generale in cui la nestedvariabile è significativa solo quando la explanatoryvariabile si trova in un set di valori A. In tal caso, useresti un modulo modello come questo:

response ~ 1 + explanatory + (explanatory %in% A):nested + ...

Nel caso comune in cui la vostra explanatoryvariabile è una variabile indicatore (con un valore di una che dà origine a una variabile nidificata significativa), questo modulo modello semplifica a questo:

response ~ 1 + explanatory + explanatory:nested + ...

Si noti che in queste dichiarazioni del modello non esiste un termine effetto principale per la nestedvariabile. Questo è di progettazione --- la variabile nidificata non dovrebbe avere un termine con effetto principale, poiché non è una variabile significativa in assenza di una condizione sulla variabile esplicativa. Con questo tipo di modulo modello otterrai una stima per l'effetto della variabile esplicativa e un'altra stima per l'effetto della variabile nidificata.


Codifica delle variabili nidificate nei dati: quando si ha a che fare con frame di dati che elencano le variabili per la regressione, è buona norma nestedcodificare i valori della variabile come NAnei casi in cui non deriva in modo significativo dalla variabile esplicativa. Questo dice al lettore che non esiste una variabile significativa qui. Alcuni analisti codificano queste variabili con altri valori, come zero, ma questa è generalmente una cattiva pratica, poiché può essere scambiata per una quantità significativa.

Matematicamente, se moltiplichi un numero reale per zero, ottieni zero. Tuttavia, se stai inserendo un codice, Rdevi fare attenzione qui perché il programma si moltiplica 0:NAper dare NAinvece di 0. Ciò significa che potrebbe essere necessario ricodificare i NAvalori a zero ai fini dell'adattamento del modello o costruire la matrice di progettazione per il modello in modo che tali valori siano impostati su zero.


Casi in cui la variabile di base è una funzione della variabile nidificata: una situazione che si presenta occasionalmente nell'analisi di regressione che coinvolge variabili nidificate è il caso in cui la variabile nidificata ha una quantità sufficiente di dettagli da determinare completamente la variabile esplicativa iniziale da cui deriva - - ovvero, la variabile esplicativa originale è una funzione della variabile nidificata. Un esempio di ciò si verifica in questa domanda , in cui l'analista ha una variabile indicatore DrugAper sapere se è stato assunto o meno un farmaco e una variabile nidificata DrugA_Concper la concentrazione del farmaco. In questo esempio, quest'ultima variabile consente un valore di concentrazione pari a zero, che equivale al fatto che il farmaco non viene assunto, e quindi DrugAequivale a DrugA_Conc != 0.

In questi tipi di casi, il termine di interazione tra la variabile esplicativa e la variabile nidificata è funzionalmente equivalente alla variabile nidificata, quindi è possibile (e di solito desiderabile) rimuovere del tutto la variabile esplicativa iniziale dal modello e usare semplicemente il variabile nidificata da sola. Ciò è legittimo in questo caso, poiché i valori nella variabile nidificata determinano il valore della variabile esplicativa iniziale. Abbiamo notato sopra che spesso è appropriato codificare le variabili nidificate come NAquando le condizioni per esse non sono applicabili. Se la condizione deriva da una variabile esplicativa che è un indicatore e l'indicatore corrisponde all'uso della variabile nidificata, allora l'evento nested != NAè equivalente aexplanatory. In tali casi, è possibile ricodificare la variabile nidificata in modo che la variabile esplicativa iniziale non sia affatto richiesta nel modello.

Si noti che è necessario prestare attenzione quando si guarda questa situazione. Anche nel caso in cui si stia utilizzando una variabile esplicativa iniziale che è una variabile indicatore, può essere utile a fini interpretativi non unire la variabile esplicativa e la variabile nidificata. Inoltre, nei casi in cui la variabile esplicativa non è una variabile indicatore, di solito conterrà informazioni non contenute nella variabile nidificata e quindi non può essere rimossa.


Cosa significa la matrice del design Xsembra? Qui hai detto che si può usare NA. Ma penso che il software converta NA in una sorta di codice, perchéXnon accetta valore mancante.
user158565,

Dal momento che non ho specificato alcun software particolare (ma sto usando la sintassi di R) non mi è chiaro perché i NAvalori non sarebbero accettabili. In Rsi può certamente avere NAvalori nei dati fotogrammi.
Ben - Ripristina Monica il

Supponiamo che ci siano NA in X, come calcolare (X'X)-1?
user158565,

2
Con i modelli utilizzati in questa risposta, i NAvalori si presentano nel frame di dati per le variabili, ma non vengono visualizzati nella matrice di progettazione , poiché la variabile nidificata entra nel modello solo attraverso un'interazione.
Ben - Ripristina Monica il

Questa è la mia domanda originale: che aspetto ha la matrice del design? In realtà, voglio farlo in SAS, ma il valore mancante non può essere nella matrice di progettazione.
user158565,
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.