Hi?I am using NeweyWest standard errors to correct lm( ) output. For example: lm(A~A1+A2+A3+A4+A5+B1+B2+B3+B4+B5) vcovNW<-NeweyWest(lm(A~A1+A2+A3+A4+A5+B1+B2+B3+B4+B5)) I am using package(sandwich) for NeweyWest. Now when I run this command, it gives following error: Error in solve.default(diag(ncol(umat)) - apply(var.fit$ar, 2:3, sum)) :system is computationally singular: reciprocal condition number = 7.49468e-18 Attached herewith is data for A&B, A1,A2,A3,A4,A5,B1,B2,B3,B4,B5 are simply lag variables. Can you help me removing this error please? Saba -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: data.txt URL: <https://stat.ethz.ch/pipermail/r-help/attachments/20151219/d41cb052/attachment.txt>
On Sat, 19 Dec 2015, Saba Sehrish via R-help wrote:> Hi?I am using NeweyWest standard errors to correct lm( ) output. For example: > lm(A~A1+A2+A3+A4+A5+B1+B2+B3+B4+B5) > vcovNW<-NeweyWest(lm(A~A1+A2+A3+A4+A5+B1+B2+B3+B4+B5)) > > I am using package(sandwich) for NeweyWest. Now when I run this command, it gives following error: > Error in solve.default(diag(ncol(umat)) - apply(var.fit$ar, 2:3, sum)) :system is computationally singular: reciprocal condition number = 7.49468e-18 > > Attached herewith is data for A&B, A1,A2,A3,A4,A5,B1,B2,B3,B4,B5 are > simply lag variables. Can you help me removing this error please?Without trying to replicate the error, there are at least two issues: (1) You should scale your data to use more reasonable orders of magnitude, e.g., in millions. This will help avoiding numerical problems. (2) More importantly, you should not employ HAC/Newey-West standard errors in autoregressive models. If you use an autoregressive specification, you should capture all relevant autocorrelations - and then no HAC estimator is necessary. Alternatively, one may treat autocorrelation as a nuisance parameter and not model it - but instead capture it in HAC standard errors. Naturally, the former strategy will typically perform better if the autocorrelations are more substantial.> Saba
Thank you. The issue is resolved by scaling the data in millions. Saba On Saturday, 19 December 2015, 15:06, Achim Zeileis <Achim.Zeileis at uibk.ac.at> wrote: On Sat, 19 Dec 2015, Saba Sehrish via R-help wrote:> Hi?I am using NeweyWest standard errors to correct lm( ) output. For example: > lm(A~A1+A2+A3+A4+A5+B1+B2+B3+B4+B5) > vcovNW<-NeweyWest(lm(A~A1+A2+A3+A4+A5+B1+B2+B3+B4+B5)) > > I am using package(sandwich) for NeweyWest. Now when I run this command, it gives following error: > Error in solve.default(diag(ncol(umat)) - apply(var.fit$ar, 2:3, sum)) :system is computationally singular: reciprocal condition number = 7.49468e-18 > > Attached herewith is data for A&B, A1,A2,A3,A4,A5,B1,B2,B3,B4,B5 are > simply lag variables. Can you help me removing this error please?Without trying to replicate the error, there are at least two issues: (1) You should scale your data to use more reasonable orders of magnitude, e.g., in millions. This will help avoiding numerical problems. (2) More importantly, you should not employ HAC/Newey-West standard errors in autoregressive models. If you use an autoregressive specification, you should capture all relevant autocorrelations - and then no HAC estimator is necessary. Alternatively, one may treat autocorrelation as a nuisance parameter and not model it - but instead capture it in HAC standard errors. Naturally, the former strategy will typically perform better if the autocorrelations are more substantial.> Saba[[alternative HTML version deleted]]