diff --git a/matlab/ols/pooled_fgls.m b/matlab/ols/pooled_fgls.m index 830257bdc..0b13b6cde 100644 --- a/matlab/ols/pooled_fgls.m +++ b/matlab/ols/pooled_fgls.m @@ -55,7 +55,7 @@ for i = 1:maxit resid = oo_.pooled_fgls.Y - oo_.pooled_fgls.X * beta0; resid = reshape(resid, oo_.pooled_fgls.dof, neqs); vcv = resid'*resid/oo_.pooled_fgls.dof; - kLeye = kron(chol(inv(vcv)), eye(oo_.pooled_fgls.dof)); + kLeye = kron(inv(chol(vcv))', eye(oo_.pooled_fgls.dof)); [q, r] = qr(kLeye*oo_.pooled_fgls.X, 0); oo_.pooled_fgls.beta = r\(q'*kLeye*oo_.pooled_fgls.Y); if max(abs(beta0 - oo_.pooled_fgls.beta)) < tol diff --git a/matlab/ols/sur.m b/matlab/ols/sur.m index a379c42e5..349ca9891 100644 --- a/matlab/ols/sur.m +++ b/matlab/ols/sur.m @@ -137,7 +137,7 @@ for i = 1:maxit resid = Y.data - X.data * beta0; resid = reshape(resid, oo_.sur.(model_name).dof, neqs); vcv = resid'*resid/oo_.sur.(model_name).dof; - kLeye = kron(chol(inv(vcv)), eye(oo_.sur.(model_name).dof)); + kLeye = kron(inv(chol(vcv))', eye(oo_.sur.(model_name).dof)); [q, r] = qr(kLeye*X.data, 0); oo_.sur.(model_name).beta = r\(q'*kLeye*Y.data); if max(abs(beta0 - oo_.sur.(model_name).beta)) < tol