Greetings,
I have run a random-effects TSSEM (tssem2()) in metaSEM and received the estimated path loadings and correlations among factors in the output for my structural model. I also need to find the R2 values for my endogenous variables in my structural model. I was wondering how I can determine R2 values. I think they should be calculated as 1-var of the endogenous variables found in impliedS1 matrix in mx.fit component of the tssem2() output:
random2<-tssem2(...)
random2$mx.fit$impliedS1
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
[1,] 1.00000000 -0.2124499 -0.37657180 -0.1408749 0.1566710 0.03624335 -0.16619094 -0.06419929
[2,] -0.21244990 0.4783484 0.57574642 0.4799511 0.5499434 0.44504316 0.53299814 0.14718394
[3,] -0.37657180 0.5757464 0.77637611 0.5277954 0.6590216 0.60979639 0.56536845 0.04923937
[4,] -0.14087491 0.4799511 0.52779536 0.5113916 0.5535190 0.40219453 0.58033105 0.22417971
[5,] 0.15667096 0.5499434 0.65902158 0.5535190 1.0000000 0.46021062 0.56435678 -0.10231421
[6,] 0.03624335 0.4450432 0.60979639 0.4021945 0.4602106 1.00000000 0.45487242 0.20794375
[7,] -0.16619094 0.5329981 0.56536845 0.5803310 0.5643568 0.45487242 1.00000000 -0.08405294
[8,] -0.06419929 0.1471839 0.04923937 0.2241797 -0.1023142 0.20794375 -0.08405294 1.00000000
Then, for example,
R2 for [,2]= 1- 0.4783484= 0.5216516.
Am I right?
I appreciate any help,
Thank you,
Hamed
Hi, Hamed.
In your example, 0.4783484 is already the explained variance while 0.5216516 is the error variance.
An alternative approach to calculate the error variance is diag(mxEval(Ematrix, random2$mx.fit)) . Thus, the R squares are 1-diag(mxEval(Ematrix, random2$mx.fit)) .
Cheers,
Mike
Thank you, Mike. Your explanations helped a lot.
Cheers,
/Hamed