You are here

Cov is not positive definite in tssem2

3 posts / 0 new
Last post
Arant's picture
Offline
Joined: 01/23/2017 - 16:31
Cov is not positive definite in tssem2
AttachmentSize
File FULL_2L.csv2.31 KB
Binary Data Code.R1.28 KB

Hi Mike,

Thank you so much answering all these questions on this forum. I was able to solve a lot of practical problems I ran into in my study.

But I am not sure how to solve this one properly: (code and data attached)
I successfully ran the tssem1 with my data, and was informed the Cov is not positive definite in the second stage.
I am a little bit confused as the result for tssem1 looks normal.

Why am I getting this error? Is it because I have too many missing values in the dataset?
If that is the case, should I try to combine variables and investigate at a higher level, or should I drop studies with too many missing values (e.g., studies reporting only 1 correlation) to reduce the missing value rate?

Please help.

Thank you in advance.

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

Hi Arant,

The stage-one analysis does not check whether or not the average correlation matrix is positive definite. If you check it, it is not.

> is.pd(vec2symMat(coef(random1, select="fixed"), diag=FALSE))
[1] FALSE

When you check the individual studies, studies 8 and 9 are not positive definite. You may consider dropping them from the analysis.

> is.pd(data3$data)
1 2 3 4 5 6 7 8 9 10 11
NA NA NA NA NA NA NA FALSE FALSE NA NA
12 13 14 15 16 17 18 19 20 21 22
NA NA NA NA NA NA NA NA NA NA NA
23 24 25 26 27 28 29 30 31 32 33
NA NA NA NA NA NA NA NA NA NA NA
34 35 36 37 38 39 40 41 42 43 44
NA NA NA NA NA NA NA NA NA NA NA
45 46 47 48 49 50 51 52 53 54 55
NA NA NA NA NA NA NA NA NA NA NA
56 57 58 59 60 61 62 63 64 65 66
NA NA NA NA NA NA NA NA NA TRUE NA
67 68 69 70 71 72 73 74 75 76
NA NA NA NA NA NA NA NA NA NA

When you further check the numbers of studies, there are only a few for specific correlation coefficients. If you drop studies 8 and 9, there will be even fewer studies.

> pattern.na(data3$data, show.na=FALSE)
SUB DIS WS NE OS
SUB 76 3 25 39 9
DIS 3 76 29 4 17
WS 25 29 76 5 21
NE 39 4 5 76 22
OS 9 17 21 22 76

Yes, it may be a good idea to either combine some of these variables or drop some of these variables.

Mike

Arant's picture
Offline
Joined: 01/23/2017 - 16:31
Hi Mike,

Hi Mike,

Thank you so much for your quick reply.
I will talk with my coauthor about the model modification for sure.

By the way, do you see any other potential ways to overcome this issue?(I guess only by collecting more studies?)

Log in or register to post comments