[R-sig-ME] MCMCglmm bivariate logistic and poisson regression

Mark Straccia m@tr@cc|@ @end|ng |rom hotm@||@com
Mon Apr 22 22:29:24 CEST 2019

Hi all,

I am trying to run a bivariate cross-classified logistic and poisson regression with MCMCglmm. First I have to say MCMCglmm is great because it is so flexible! The part I am having trouble with is that logistic regression has no error terms so running bivariate (two outputs) regression seems pointless because I can't capture the correlation between two outputs. In MCMCglmm, the error variance has to be set to a number in order for the program to run. Whatever it is set to, the beta values must then be correct by k <- sqrt(1 + (((16 * sqrt(3))/(15 * pi))^2) * sigma (where sigma is the set variance). If I am running bivariate logistic regression the covariance between the errors also has to be set. It is recommended to be set at 0.5 and variances as 1.

1) Since the covariance is 0.5 in addition to variance being 1, do the betas need to be corrected by anything other than the standard k <- sqrt(1 + (((16 * sqrt(3))/(15 * pi))^2) * sigma (where sigma=1)?

2) 0.5 value seems arbitrary and I should instead let the data determine what the covariance is between the outputs. I tried rcov = ~corg(trait):units and when I run it, the covariance becomes 1 which I do not understand why this is happening. For output1 and output2 are 14% ones. If there is a one for output1, there is a 61% of the time there is a one for output2 and if there is a zero for output1, there is a 93.7% of the time there is a zero for output2. The correlation between output1 and output2 is 0.55 and the hamming distance is 264 out of 2450 data points (0.108). Why does the covariance become 1 rather than a lower number? (I should note that the data is doubled so outcome A in output1 and outcome B in output2 will later become outcome B for output1 and outcome A for output2, however, as noted earlier output1 is not perfectly predictive of output2)

3) Since logistic regression has no error terms, it is not clear what the program is doing when I run rcov = ~corg(trait):units with bivariate logistic regression. Does anyone have any insights?

4) With Gaussian bivariate regression, the error terms are allow to correlate to account for the dependencies between the two outputs. With poisson regression in MCMCglmm, my understanding is the error terms become the overdispersion in the model. With bivariate poisson regression, does the covariance between the errors for two output variables do the same thing as allowing the error terms to correlate in Gaussian bivariate regression or is it doing something else?

5) I also have count data that I want to run bivariate hurdle poisson regression with overdispersion. In MCMCglmm it will run both logisitic regression for the zeros and poisson regression with overdispersion for the counts. To problem comes that the error variance should be fixed for the two logistic regression parts while the error variance for the poisson part should be allowed to vary to account for the overdispersion. There seems to be no way in MCMCglmm to allow this. You can fix the R matrix (using fix = #) which will fix sections of the R matrix but you can't fix certain columns and rows. So you can't specify to fix the logistic regression parts and allow the poisson part to vary. Is that correct?

6) If #5 is true, are there any plans in the future to allow the column/rows to be fixed in the error R matrix so that multivariate hurdle poisson regression can be run with overdispresion?

7) Are there any plans in the future to add hurdle negative binomial (rather than just poisson) to MCMCglmm? Would that be difficult to implement?

Thanks for your help!

	[[alternative HTML version deleted]]

More information about the R-sig-mixed-models mailing list