[R] WLS regression, lm() with weights as a matrix

Victor11 Yao.Zhao at invesco.com
Thu Jul 14 22:29:27 CEST 2011

Dear All,

I've been trying to run a Weighted Least Squares (WLS) regression:

Dependent variables: a 60*200 matrix (*Rit*) with 200 companies and 60 dates
for each company
Independent variables: a 60*4 matrix (*Ft*) with 4 factors and 60 dates for
each factor
Weights: a 60*200 matrix (*Wit*) with weights for 200 companies and 60 dates
for each company

The WLS regression I would like to run is:

(Wit)*Rit = a*(Wit*F1t) + b*(Wit*F2t) + c*(Wit*F3t) + d*(Wit*F4t) + eit

Ideally, I want to run WLS regressions for each company i (i.e., 200 WLS
regressions in total), in each regression using weights from column i in
matrix *Wit* ,and in the end obtain a 60*4 matrix with coefficients and a
200*60 matrix with residuals.

However, when I run:

/lm(Rit ~ Ft, weights=Wit)/

it fails because weights argument can only be vector not matrix.

I have been searching old posts but couldn't find any solutions. I'm
wondering if there is any other function or way to do this? I would really
appreciate for your help.


View this message in context: http://r.789695.n4.nabble.com/WLS-regression-lm-with-weights-as-a-matrix-tp3668577p3668577.html
Sent from the R help mailing list archive at Nabble.com.

More information about the R-help mailing list