How to store the regression coefficients and std.errors of the slope only (but not intercept)?
3 views (last 30 days)
Show older comments
Dear all
I want to estimate a set of regressions with HAC covariance matrix. For this purpose, I created the function below. I have a N*N matrix whose columns are time series. I wish to regress each column on each other column and store the slopes in a N*N matrix, the serrors in another N*N matrix. Position (i,j) in these matrices would store the slope coefficient or serror of the regression of the data in column i on the data in column j. My problem is that the standard errors and the coefficients are returned in pairs (for the slope and for the intercept). How can I adapt the code below so that I only store the slope coefficients and associated st.errors but not those of the intercept?
Thanks!
function [mCoeff mSE mTstat] = regressionHAC(mMatrix)
[~, C] = size(mMatrix,2);
mCoeff = NaN(C,C);
mSE = NaN(C,C);
for j = 1 : C
for k = 1 : C
if j ~= k % This is just to avoid regressing a column on itself
[mCoeff(j,k) mSE(j,k)] = hac(mMatrix(:,k),mMatrix(:,j));
end
end
end
mTstat = mCoeff ./ mSE;
end
Accepted Answer
dpb
on 18 Jul 2016
According to the doc, the coefficient vector is third output argument, not first...
[~,SE,Coeff] = hac(mMatrix(:,k),mMatrix(:,j));
mSE(j,k)=SE(end);
mCoeff(j,k)=Coeff(end);
I presume above it's a poly of degree 1; the intercept is first in position in the vector (again, according to the doc at <econ/hac>, hence the slope is last ( end) position in the output 2-vector. Matlab has no facility to subscript function results for even a single output argument, what more multiple ones, so just save each result as a temporary and then retrieve the desired quantities for posterity.
More Answers (0)
See Also
Categories
Find more on Linear Regression in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!