Rで行列とベクトルの積
Rで行列とベクトルの積を計算しようと思ったら期待通りにならなかったのでメモ。
知らなかったーw。
◎やりたいこと
1行2列のベクトルを、2行2列の行列に左から掛けた結果を得たい。そして、最後にその結果に1行2列の転置ベクトルを掛けてスカラー値を得たい。
◎やり方
結論から述べると次のようにする。
内積の演算子は「%*%」であることがポイント。
# 2 factor exp factor.exp <- matrix(c(0.5, 0.75), nrow=1, ncol=2, byrow=T) factor.cov.matrix<-matrix(c(0.625,0.0225,0.0225,0.1024), nrow=2, ncol=2,byrow=T) stock.a.return<-(factor.exp%*%factor.cov.matrix)%*%t(factor.exp)
上記やり方では、ベクトルc(0.5, 0.75)をmatrixで行列に変換してから実行している。
ベクトルのままやるには次のようにする。
factor.cov.matrix<-matrix(c(0.625,0.0225,0.0225,0.1024), nrow=2, ncol=2,byrow=T) stock.a.return<-(c(0.5, 0.75)%*%factor.cov.matrix)%*%t(t(c(0.5, 0.75)))