Open asha24choudhary opened 11 months ago
do u think if it was a good idea to calculate pseudo inverse, if the inverse of the sub_corr_matrix gives error?
I also have the same issue when I use causallearn.search.ScoreBased.GES
. I guess it is caused by input data. I don't know what kind of requirements should be met. It would be good if developers could list requirements for input data.
Yea, this is due to some violation of the data-generating process, e.g., violation of faithfulness. I don't know if any strategy exists to detect this given an observed dataset. The pseudo-inverse could be a good solution in practice, but we need to investigate deeper to see if that would introduce any issue with the asymptotic guarantee.
Perhaps adding some small random noises could help?
Yes and can you check two things: a) distinct count per column b) distinct count of identical rows
What I learned with repeated data, it does create singular matrix. Also interested to learn!
So I might be missing some theoretical concept, but want to clear it now.
I have a dataset, take the fork scenario. My data is generated as follows:
Clearly, the rank is 1 and you can see in the fig below
When I perform causal discovery using PC, I get 'ValueError: Data correlation matrix is singular. Cannot run fisherz test. Please check your data.'
Below you can find the code which I'm using to perform causal discovery using PC.
Need help in understanding it, although I think as the data is correlated and singular I'm getting this error, however, how can I resolve this error without adding some random noise in the variables W & Y. Isn't causal discovery possible in my case?