Come scegliere la migliore trasformazione per raggiungere la linearità?


10

Voglio fare una regressione lineare multipla e quindi prevedere nuovi valori con poca estrapolazione. Ho la mia variabile di risposta nell'intervallo da -2 a +7 e tre predittori (intervalli di circa +10 - +200). La distribuzione è quasi normale. Ma la relazione tra la risposta e i predittori non è lineare, vedo curve sui grafici. Ad esempio in questo modo: http://cs10418.userapi.com/u17020874/153949434/x_9898cf38.jpg

Vorrei applicare una trasformazione per raggiungere la linearità. Ho provato a trasformare la variabile di risposta controllando diverse funzioni e guardando i grafici risultanti per vedere una relazione lineare tra la risposta e i predittori. E ho scoperto che ci sono molte funzioni che possono darmi una relazione lineare visibile. Ad esempio, funzioni

t1=log(y+2.5)

t2=1log(y+5)

t3=1y+5

t4=1(y+10)3

t5=1(y+3)13 ecc. danno i risultati simili: http://cs10418.userapi.com/u17020874/153949434/x_06f13dbf.jpg

Dopo che trasformerò indietro i valori previsti (per come e così via). Le distribuzioni sono più o meno simili alla normale. y=1t=1(y+10)3y=1t1310

Come posso scegliere la migliore trasformazione per i miei dati? Esiste un modo quantitativo (e non molto complicato) per valutare la linearità? Per dimostrare che la trasformazione selezionata è la migliore o trovarla automaticamente se possibile.

O l'unico modo è fare la regressione multipla non lineare?


Ho provato a migliorare la formattazione delle tue formule ma potrei aver introdotto degli errori - controlla.
Peter Ellis,

Non ti credo. Non è matematicamente possibile per fino a avere contemporaneamente una relazione lineare con una sesta variabile nell'intervallo . Penso che potresti aver fatto un errore nel calcolare queste trasformazioni di . t1t50200y
whuber


2
Hai ragione. È piuttosto sorprendente che una così vasta gamma di re-espressioni di y rimanga in una relazione lineare con r. Grazie per averlo condiviso. Se si traccia i residui, troverete che si guarda intorno il meglio, e quindi non ha bisogno di ri-espressione: . 1/(y+5)rplot(lm(1/(y+5)~r))
whuber

Risposte:


14

Questa è in qualche modo un'arte, ma ci sono alcune cose semplici e standard che si possono sempre tentare.

La prima cosa da fare è riesprimere la variabile dipendente ( ) per rendere normali i residui . Questo non è realmente applicabile in questo esempio, in cui i punti sembrano cadere lungo una curva non lineare liscia con pochissima dispersione. Quindi procediamo al passaggio successivo.y

La prossima cosa è di ri-esprimere la variabile indipendente ( ) per linearizzare la relazione. C'è un modo semplice e facile per farlo. Scegli tre punti rappresentativi lungo la curva, preferibilmente ad entrambe le estremità e al centro. Dalla prima cifra ho letto le coppie ordinate = , e . Senza alcuna informazione diversa da quella sembra sempre essere positiva, una buona scelta è quella di esplorare le trasformazioni di Box-Cox da per vari poteri , generalmente scelti per essere multipli di o e in genere trar(r,y)(10,7)(90,0)(180,2)r r(rp1)/pp1/21/31 e . (Il valore limite quando avvicina a è .) Questa trasformazione creerà una relazione lineare approssimativa a condizione che la pendenza tra i primi due punti sia uguale alla pendenza tra la seconda coppia.1p0log(r)

Ad esempio, le pendenze dei dati non trasformati sono = - e = . Questi sono abbastanza diversi: uno è circa quattro volte l'altro. Provando ottengono pendenze di , ecc, che funziona a e : ora uno di loro è solo due volte l'altro, che è un miglioramento. Continuando in questo modo (un foglio di calcolo è conveniente), trovo che funzioni bene: le pendenze sono ora e(07)/(9010)0.088(20)/(18090)0.022p=1/2-16.6-32.4p0-7.3-6.6y=α+βlog(r)y(07)/(901/211/2101/211/2)16.632.4p07.36.6, quasi lo stesso valore. Di conseguenza, dovresti provare un modello nel formato . Quindi ripetere: adattare una linea, esaminare i residui, identificare una trasformazione di per renderli approssimativamente simmetrici e iterare.y=α+βlog(r)y

John Tukey fornisce dettagli e molti esempi nel suo libro classico Exploratory Data Analysis (Addison-Wesley, 1977). Fornisce procedure simili (ma leggermente più coinvolte) per identificare le trasformazioni stabilizzanti della varianza di . Un set di dati campione che fornisce come esercizio riguarda dati centenari sulle pressioni del vapore di mercurio misurate a varie temperature. Seguendo questa procedura è possibile riscoprire la relazione Clausius-Clapeyron ; i residui dell'adattamento finale possono essere interpretati in termini di effetti quantici-meccanici che si verificano a distanze atomiche!y


Grazie per il consiglio della trasformazione di Box-Cox. Ha senso controllare R-quadrato di lm (1 / (y + 5) ~ r) e lm di altre funzioni e quindi confrontare questi R-quadrato?
Nadya,

rR2rR2

Mille grazie per la risposta! Non trasformerò le mie variabili indipendenti
nadya,

y

@Erich Ogni pezzo di quel libro è profondamente gratificante: dopo tutto, se riesci a fare qualcosa con carta e matita, puoi programmare un computer per farlo :-). Con una singola variabile spesso è bello trasformarla per simmetria (della sua distribuzione empirica); Tukey lo definisce un "piccolo affare". Un modo semplice per identificare tale trasformazione è descritto nella sezione 3E, "Sguardo rapido". Illustra ciò che può essere appreso da uno sguardo a un riassunto di lettere N (Tukey suggerisce un riassunto di 7 o 9 lettere). Acquisire quell'abilità è più prezioso che avere un programma per computer che fa i calcoli per te.
whuber

1

Se la tua variabile di risposta (o meglio, ciò che diventerà i residui della tua variabile di risposta) sulla scala originale ha una distribuzione Normale come intendi, quindi trasformarla per creare una relazione lineare con le altre variabili significa che non è più Normale e cambierà anche la relazione tra la sua varianza e i valori medi. Quindi da quella parte della tua descrizione penso che stai meglio usando la regressione non lineare che trasformare la risposta. Altrimenti, dopo la trasformazione lineare della risposta, avrai bisogno di una struttura di errore più complessa (anche se questa può essere una questione di giudizio e dovresti verificare, usando metodi grafici).

In alternativa, indagare sulla trasformazione delle variabili esplicative . Oltre alle trasformazioni diritte, hai anche la possibilità di aggiungere in termini quadratici.

Più in generale, la trasformazione è più un'arte che una scienza, se non esiste una teoria esistente per suggerire cosa si dovrebbe usare come base della trasformazione.

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.