You are here

Non-positive definit matrices

6 posts / 0 new
Last post
Roya's picture
Offline
Joined: 10/25/2021 - 08:32
Non-positive definit matrices

Hello Mike,

I am applying the MASEM method to 70 articles to find the direct and indirect effects of a variable (I have only three variables, one outcome, one exposure, and one mediator). I have 67 non-positive definite matrices. I understand that excluding all those matrices is missing lots of data. What should I do in this case? I did the analysis, ignoring the positive definite assumption, and I got the results but I don´t know how reliable are the results.
I´d be grateful if you please help me to find a solution for that.

Best,
Roya

Mike Cheung's picture
Offline
Joined: 10/08/2009 - 22:37
Dear Roya,

Dear Roya,

I have never seen so many non-positive definite matrices. If 67 of 70 correlation matrices are non-positive definite, it may suggest something is wrong in your data extraction process.

I do not think that we can trust the results if the majority of the inputs are questionable.

Best,
Mike

Roya's picture
Offline
Joined: 10/25/2021 - 08:32
Non-positive definit matrices

Hello Mike,

Thank you so much for your response.
The is.pd() syntax provides "NA" but not "FALSE". I don´t know what could be the differences between NA and FALSE? Do you think it might be due to missing correlations that in the output 67 articles are revealed as NA? If so, can I consider these matrices as positive definite and include them all in the analysis, then apply the TSSEM, relying on the fact that TSSEM uses the Maximum Likelihood method to handle the missing data?
I appreciate it if you could help me clear these doubts, please.

Best,
Roya

Mike Cheung's picture
Offline
Joined: 10/08/2009 - 22:37
NA and FALSE are different.

NA and FALSE are different. When there are missing values in the off-diagonal elements, is.pd() returns NA. You may make is.pd() to check it by declaring the relevant variances as NA. It will then return either TRUE or FALSE. For example,

library(metaSEM)
 
A <- matrix(c(1,NA,NA,
              NA,1,0.4,
              NA,0.4,1), ncol=3)
is.pd(A)
# NA
 
B <- matrix(c(NA,NA,NA,
              NA,1,0.4,
              NA,0.4,1), ncol=3)
is.pd(B)
# TRUE
Roya's picture
Offline
Joined: 10/25/2021 - 08:32
Dear Mike,

Dear Mike,

Thank you so much for the explanation. I could solve the problem of NA matrices as you explained and now all the matrices are positive and definite.
I am applying TSSEM on this data that has missing correlations. The output is interesting and I am writing the article. How should I justify the missingness in the data and its effect of the analysis results. I see that in one of your articles you mnetioned the OV and OC approaches but I couldn´t find any code or specific package for that in R. We would be grateful if you please guide us how can we address the missing correlations in TSSEM.

Best,
Roya

Mike Cheung's picture
Offline
Joined: 10/08/2009 - 22:37
Not specifically to MASEM.

Not specifically to MASEM. The following book section ("5.1.2 Univariate meta-analysis versus multivariate meta-analysis") briefly discusses missing effect sizes in multivariate meta-analysis.

https://books.google.com.sg/books?id=Pw7QBwAAQBAJ&pg=PA122&lpg=PA122&dq=%225.1.2+Univariate+meta-analysis+versus+multivariate+meta-analysis%22&source=bl&ots=zEjSbqiyP6&sig=ACfU3U0uj48yvMjVRgRjSECfAXtu38_o4A&hl=en&sa=X&ved=2ahUKEwiA__mEh5j5AhWyTnwKHVq3BCUQ6AF6BAgCEAM#v=onepage&q=%225.1.2%20Univariate%20meta-analysis%20versus%20multivariate%20meta-analysis%22&f=false