2011-12-09 18 views
6

Mam wektor Y zawierający przyszłe zwroty, a wektor X zawiera bieżące wyniki. Ostatnim elementem Y jest NA, ponieważ ostatni powrót prądu jest również końcem dostępnej serii.Zapobiegaj używaniu NA w regresji regresji

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) 

chcę, aby upewnić się, że ostatni element każdej serii jest nie zawarte w regresji. Przeczytałem dokumentację na.action, ale nie jestem pewien, czy jest to zachowanie domyślne.

Dla cor(), czy jest to prawidłowe rozwiązanie, aby wykluczyć X [4] i Y [4] z obliczeń?

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

Odpowiedz

8

Fabrycznie świeżość lm jest lekceważenie uwag zawierających NA wartości. Ponieważ może to być nadpisane przy użyciu opcji globalnych, można jawnie ustawić na.action do 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) 
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 

Co do drugiego pytania cor(X,Y,use='pairwise.complete.obs') jest poprawna. Ponieważ istnieją tylko dwie zmienne, cor(X,Y,use='complete.obs') również dałoby oczekiwany wynik.

+3

Możesz chcieć wyjaśnić przyczynę ostatniego zdania: z tylko dwoma wektorami, które są skorelowane, 'pairwise.complete.obs' i' complete.obs' są równoważne. Przy większej ilości wektorów (tj. Biorąc korelacje wszystkich kolumn w macierzy), nie będą one ... –