# [R-sig-ME] MCMCglmm biivariate logistic and poisson regression

Mark Straccia m@tr@cc|@ @end|ng |rom g@uc|@@edu
Thu Apr 18 03:06:46 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!
-Mark

[[alternative HTML version deleted]]

```