2011-12-09 15 views
6

私は将来のリターンを含むベクトルYを持ち、ベクトルXは現在のリターンを含んでいます。最後の現在の戻り値は利用可能な系列の最後でもあるため、最後のY要素はNAです。lm回帰でNAが使用されないようにする

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.omitna.actionを設定することをお勧めします:あなたの2つ目の質問cor(X,Y,use='pairwise.complete.obs')にしたよう

> 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) 
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 

正しいです。 2つの変数しかないので、cor(X,Y,use='complete.obs')も期待される結果を生成します。

+3

最終的な文章の背後にある理由を明確にすることができます.2つのベクトルだけが関連している場合、 'pairwise.complete.obs'と' complete.obs'は同等です。より多くのベクトル(行列のすべての列の相関関係を取る)では、それらは... –

関連する問題