2016-04-12 8 views
1

私はRと統計を初めて利用しています。異なるサイズの列を持つ回帰からの残差の取得

私は、277社の株式リターンを含むマトリックスを持っています。マトリックスには370行が含まれています。これらの企業は年齢が異なるため、列の観測量に違いがあります。私はまた、ファマフランスの要因とダミー変数を含むベクトルを含む行列を持っています。私は回帰の係数を得るためのループを作成しましたが、GRSテストを実行できるように、回帰の残差を含む行列、または残差の共分散行列を取得する必要があります。

私がこれまで使用してきたコードは次のとおりです。私は得るこのループを実行するとき

reg <- data.frame(matrix(nrow=370, ncol=277)) 
for (i in c(1:277)) { 
reg[,i] <- dynlm(returns.ts[,i] ~ 1 + Mkt.Rf + SMB + HML)$residuals 
} 

しかしエラー「の交換は202行を持っているが、データは370を持っています」。私はこれが、最初の2つの列(「フル」観測値を持つ企業に属する)がリターン行列に埋め込まれているので、列の長さの違いが原因であると想定しています。

私はna.action = na.omitを試してみましたが、成功しませんでした。これらの回帰からの残差をこの行列に埋め込む方法はありますか?あるいはこのステップを回避する共分散行列を得ることは可能でしょうか?私はRを使用しています

答えて

0

残差を保存するためにdata.frameの代わりにリストを使用してください。

reg <- list() 

for (i in c(1:277)) { 
    reg[[i]] <- dynlm(returns.ts[,i] ~ 1 + Mkt.Rf + SMB + HML)$residuals 
} 

同じ抽出方法で残差にアクセスできます。たとえば、reg[[1]]は、残差の最初のセットを返します。

+0

ありがとうございました。それは完璧に働いた。 – Patusz

+0

確かに、@Patrick Bukowsky。これが参考になった場合は、それを答えとして選択することができます(アップフォートを追加することもできます)。 – lmo

+0

評判が低いため、私の投票結果は表示されません。 – Patusz

関連する問題