2011-12-09 46 views
6

我有一個包含未來退貨的向量Y,並且向量X包含當前的退貨。最後一個Y元素是NA,因爲最後的當前收益也是可用系列的最後一個。防止NA在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) 

我想確保每個系列的最後一個元素是列入迴歸。我閱讀了na.action文檔,但我不清楚這是否是默認行爲。

對於cor(),這是從計算中排除X [4]和Y [4]的正確解決方案嗎?

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

回答

8

的出廠默認新鮮爲lm是無視包含NA值觀測。因爲這可能使用全局選項覆蓋,你可能需要明確設定na.actionna.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) 
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 

關於你的第二個問題cor(X,Y,use='pairwise.complete.obs')是正確的。由於只有兩個變量,因此cor(X,Y,use='complete.obs')也會產生預期結果。

+3

您可能想澄清最後一句話的原因:只有兩個向量相互關聯,'pairwise.complete.obs'和'complete.obs'是等價的。隨着更多的矢量(即採取矩陣中所有列的相關性),它們不會是...... –