R plm singular matrix issue












1














First question on the site. I have been following Princeton's plm package guide and have everything done (without errors). However, I am stuck in the last step of estimating a "random" effects model. I think my data fits a random model well, so this is a big issue. I cannot understand why the fixed specification works but random does not. Here is the error I get:



Error in solve.default(M[therows, therows], quad[therows]) : Lapack routine dgesv: system is exactly singular: U[2,2] = 0


Any help on this would be really useful!



Here is my code:



random <- plm(Reserves ~ Corruption +
RuleofLaw +
BankingRisk +
GDPPC + Electricity +
Mobile + ATM + SchoolEnrollment + Savings +
Population + NumberPOS + POSper,
data=paneldata,
index=c("Country", "Year"), model="random")
summary (random)


All of my variables are general format in csv.










share|improve this question
























  • I cannot provide a thorough answer, because I'm still learning mixed/random models myself. The error means that plm cannot invert a matrix which is designed to depict the covariances between or within your random effects. You'll need to dive into the theory of random models to understand why. In my practice, if this error occurs it may mean that your model is overspecified, so your data is not enough to estimate all the effects you wrote in your formula. For example, what if two of your observables, e.g. Electricity and ATM are always the same? The model can't decide between those then.
    – akraf
    Nov 12 at 21:36










  • I actually just figured out the solution to it. In my case, all the independent variables are unique, so it was tougher. The default for plm under model = random is that random.model is always "swar". If you are to replace that with "walhus" it fixes the issue. Walhus is more tolerate of smaller values (I have a lot of variables that are second of third digit of zeros)
    – PBhGU123
    Nov 12 at 22:05










  • You can post this as an answer to your own question and accept your own answer after some time, this marks this case as done on the site.
    – akraf
    Nov 13 at 9:57










  • Can you make the data available to check why the Swamy/Arora model fails?
    – Helix123
    Nov 15 at 12:39
















1














First question on the site. I have been following Princeton's plm package guide and have everything done (without errors). However, I am stuck in the last step of estimating a "random" effects model. I think my data fits a random model well, so this is a big issue. I cannot understand why the fixed specification works but random does not. Here is the error I get:



Error in solve.default(M[therows, therows], quad[therows]) : Lapack routine dgesv: system is exactly singular: U[2,2] = 0


Any help on this would be really useful!



Here is my code:



random <- plm(Reserves ~ Corruption +
RuleofLaw +
BankingRisk +
GDPPC + Electricity +
Mobile + ATM + SchoolEnrollment + Savings +
Population + NumberPOS + POSper,
data=paneldata,
index=c("Country", "Year"), model="random")
summary (random)


All of my variables are general format in csv.










share|improve this question
























  • I cannot provide a thorough answer, because I'm still learning mixed/random models myself. The error means that plm cannot invert a matrix which is designed to depict the covariances between or within your random effects. You'll need to dive into the theory of random models to understand why. In my practice, if this error occurs it may mean that your model is overspecified, so your data is not enough to estimate all the effects you wrote in your formula. For example, what if two of your observables, e.g. Electricity and ATM are always the same? The model can't decide between those then.
    – akraf
    Nov 12 at 21:36










  • I actually just figured out the solution to it. In my case, all the independent variables are unique, so it was tougher. The default for plm under model = random is that random.model is always "swar". If you are to replace that with "walhus" it fixes the issue. Walhus is more tolerate of smaller values (I have a lot of variables that are second of third digit of zeros)
    – PBhGU123
    Nov 12 at 22:05










  • You can post this as an answer to your own question and accept your own answer after some time, this marks this case as done on the site.
    – akraf
    Nov 13 at 9:57










  • Can you make the data available to check why the Swamy/Arora model fails?
    – Helix123
    Nov 15 at 12:39














1












1








1







First question on the site. I have been following Princeton's plm package guide and have everything done (without errors). However, I am stuck in the last step of estimating a "random" effects model. I think my data fits a random model well, so this is a big issue. I cannot understand why the fixed specification works but random does not. Here is the error I get:



Error in solve.default(M[therows, therows], quad[therows]) : Lapack routine dgesv: system is exactly singular: U[2,2] = 0


Any help on this would be really useful!



Here is my code:



random <- plm(Reserves ~ Corruption +
RuleofLaw +
BankingRisk +
GDPPC + Electricity +
Mobile + ATM + SchoolEnrollment + Savings +
Population + NumberPOS + POSper,
data=paneldata,
index=c("Country", "Year"), model="random")
summary (random)


All of my variables are general format in csv.










share|improve this question















First question on the site. I have been following Princeton's plm package guide and have everything done (without errors). However, I am stuck in the last step of estimating a "random" effects model. I think my data fits a random model well, so this is a big issue. I cannot understand why the fixed specification works but random does not. Here is the error I get:



Error in solve.default(M[therows, therows], quad[therows]) : Lapack routine dgesv: system is exactly singular: U[2,2] = 0


Any help on this would be really useful!



Here is my code:



random <- plm(Reserves ~ Corruption +
RuleofLaw +
BankingRisk +
GDPPC + Electricity +
Mobile + ATM + SchoolEnrollment + Savings +
Population + NumberPOS + POSper,
data=paneldata,
index=c("Country", "Year"), model="random")
summary (random)


All of my variables are general format in csv.







r plm






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 12 at 19:50









Harro Cyranka

1,1621513




1,1621513










asked Nov 12 at 19:40









PBhGU123

62




62












  • I cannot provide a thorough answer, because I'm still learning mixed/random models myself. The error means that plm cannot invert a matrix which is designed to depict the covariances between or within your random effects. You'll need to dive into the theory of random models to understand why. In my practice, if this error occurs it may mean that your model is overspecified, so your data is not enough to estimate all the effects you wrote in your formula. For example, what if two of your observables, e.g. Electricity and ATM are always the same? The model can't decide between those then.
    – akraf
    Nov 12 at 21:36










  • I actually just figured out the solution to it. In my case, all the independent variables are unique, so it was tougher. The default for plm under model = random is that random.model is always "swar". If you are to replace that with "walhus" it fixes the issue. Walhus is more tolerate of smaller values (I have a lot of variables that are second of third digit of zeros)
    – PBhGU123
    Nov 12 at 22:05










  • You can post this as an answer to your own question and accept your own answer after some time, this marks this case as done on the site.
    – akraf
    Nov 13 at 9:57










  • Can you make the data available to check why the Swamy/Arora model fails?
    – Helix123
    Nov 15 at 12:39


















  • I cannot provide a thorough answer, because I'm still learning mixed/random models myself. The error means that plm cannot invert a matrix which is designed to depict the covariances between or within your random effects. You'll need to dive into the theory of random models to understand why. In my practice, if this error occurs it may mean that your model is overspecified, so your data is not enough to estimate all the effects you wrote in your formula. For example, what if two of your observables, e.g. Electricity and ATM are always the same? The model can't decide between those then.
    – akraf
    Nov 12 at 21:36










  • I actually just figured out the solution to it. In my case, all the independent variables are unique, so it was tougher. The default for plm under model = random is that random.model is always "swar". If you are to replace that with "walhus" it fixes the issue. Walhus is more tolerate of smaller values (I have a lot of variables that are second of third digit of zeros)
    – PBhGU123
    Nov 12 at 22:05










  • You can post this as an answer to your own question and accept your own answer after some time, this marks this case as done on the site.
    – akraf
    Nov 13 at 9:57










  • Can you make the data available to check why the Swamy/Arora model fails?
    – Helix123
    Nov 15 at 12:39
















I cannot provide a thorough answer, because I'm still learning mixed/random models myself. The error means that plm cannot invert a matrix which is designed to depict the covariances between or within your random effects. You'll need to dive into the theory of random models to understand why. In my practice, if this error occurs it may mean that your model is overspecified, so your data is not enough to estimate all the effects you wrote in your formula. For example, what if two of your observables, e.g. Electricity and ATM are always the same? The model can't decide between those then.
– akraf
Nov 12 at 21:36




I cannot provide a thorough answer, because I'm still learning mixed/random models myself. The error means that plm cannot invert a matrix which is designed to depict the covariances between or within your random effects. You'll need to dive into the theory of random models to understand why. In my practice, if this error occurs it may mean that your model is overspecified, so your data is not enough to estimate all the effects you wrote in your formula. For example, what if two of your observables, e.g. Electricity and ATM are always the same? The model can't decide between those then.
– akraf
Nov 12 at 21:36












I actually just figured out the solution to it. In my case, all the independent variables are unique, so it was tougher. The default for plm under model = random is that random.model is always "swar". If you are to replace that with "walhus" it fixes the issue. Walhus is more tolerate of smaller values (I have a lot of variables that are second of third digit of zeros)
– PBhGU123
Nov 12 at 22:05




I actually just figured out the solution to it. In my case, all the independent variables are unique, so it was tougher. The default for plm under model = random is that random.model is always "swar". If you are to replace that with "walhus" it fixes the issue. Walhus is more tolerate of smaller values (I have a lot of variables that are second of third digit of zeros)
– PBhGU123
Nov 12 at 22:05












You can post this as an answer to your own question and accept your own answer after some time, this marks this case as done on the site.
– akraf
Nov 13 at 9:57




You can post this as an answer to your own question and accept your own answer after some time, this marks this case as done on the site.
– akraf
Nov 13 at 9:57












Can you make the data available to check why the Swamy/Arora model fails?
– Helix123
Nov 15 at 12:39




Can you make the data available to check why the Swamy/Arora model fails?
– Helix123
Nov 15 at 12:39

















active

oldest

votes











Your Answer






StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53268997%2fr-plm-singular-matrix-issue%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown






























active

oldest

votes













active

oldest

votes









active

oldest

votes






active

oldest

votes
















draft saved

draft discarded




















































Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.





Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


Please pay close attention to the following guidance:


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53268997%2fr-plm-singular-matrix-issue%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

Xamarin.iOS Cant Deploy on Iphone

Glorious Revolution

Dulmage-Mendelsohn matrix decomposition in Python