2011-12-09 11 views
6

Ho un vettore Y contenente i ritorni futuri e un vettore X contiene i ritorni correnti. L'ultimo elemento Y è NA, poiché l'ultimo ritorno corrente è anche la fine della serie disponibile.Impedire che NA venga utilizzato in un lm regresion

X = { 0.1, 0.3, 0.2, 0.5 } 
Y = { 0.3, 0.2, 0.5, NA } 
Other = { 5500, 222, 523, 3677 } 

lm(Y ~ X + Other) 

voglio fare in modo che l'ultimo elemento di ogni serie è non inclusi nella regressione. Ho letto la documentazione di na.action ma non sono chiaro se questo è il comportamento predefinito.

Per cor(), è la soluzione corretta per escludere X [4] e Y [4] dal calcolo?

cor(X, Y, use = "pairwise.complete.obs") 

risposta

8

L'impostazione di fabbrica-fresco per lm è quello di ignorare le osservazioni che contengono valori NA. Dal momento che questo potrebbe essere sovrascritto utilizzando le opzioni globali, si potrebbe desiderare di impostare in modo esplicito na.action a na.omit:

> summary(lm(Y ~ X + Other, na.action=na.omit)) 

Call: 
lm(formula = Y ~ X + Other, na.action = na.omit) 

[snip] 

    (1 observation deleted due to missingness) 
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 

Per quanto riguarda la seconda domanda cor(X,Y,use='pairwise.complete.obs') è corretto. Poiché ci sono solo due variabili, cor(X,Y,use='complete.obs') produrrebbe anche il risultato atteso.

+3

Si potrebbe voler chiarire il motivo alla base della frase finale: con solo due vettori correlati, 'pairwise.complete.obs' e' complete.obs' sono equivalenti. Con più vettori (cioè prendendo le correlazioni di tutte le colonne in una matrice), non sarebbero ... –

Problemi correlati