# Interpreting a hurdle model with >2 levels of a variable and a negative intercept

I am new to R's pscl package, and struggling to interpret output from a hurdle model. I have a data frame df which contains a count variable named count (containing a lot of zero's) and two predictor variables: VAR1 and VAR2. VAR1 contains two levels(lev1 and lev2) and VAR2 contains three (levA, levB and levC).

I fit the model with

fit = hurdle(count ~ var1 + var2, data = df, link = 'logit', dist = 'negbin'


and summary(fit) returns something like this:

Zero hurdle model coefficients (binomial with logit link):
Estimate Std. Error z value Pr(>|z|)
(Intercept)          -2.799e+00  8.638e-01  -3.241  0.00119 **
VAR1lev2              8.924e-01  3.257e-01   2.740  0.00614 **
VAR2levB              1.236e+00  4.972e-01   2.487  0.01288 *
VAR2levC              5.217e-01  3.379e-01   1.544  0.12259


I have two major concerns.

1) I understand that the intercept represents the 'baseline' likelihood of a positive value for count. How does one interpret a negative intercept? Does it simply mean that count is more likely to be 0, as opposed to >0? More importantly, does a negative intercept affect interpretation of estimated values for my predictor variables? (and if so, how?)

2) I understand that each level of VAR1 and VAR2 is being compared to a reference level. So, there is a significant difference in estimated count between VAR1lev1 and VAR1lev2. Is there an sensible way to infer differences between two non-reference levels - in this case, between VAR2levB and levC?

Update: I figured out how to print contrasts between all conditions. The following loop essentially re-levels each variable k times, where k is the number of levels in the variable. The output for each loop is printed, such that all levels are presented as a reference. Hope this is helpful for future users.

for (lev in levels(df$Var1)[1:length(levels(df$Var1))]) {
df[,'Var1'] = relevel(df[,'Var1'],lev)
for (lev2 in levels(df$Var2)[1:length(levels(df$Var2))]) {
df[,'Var2'] = relevel(df[,'Var2'],lev2)
fit = update(fit)
smry = summary(fit)
print(c(lev,lev2,lev3))
print(smry)
}
}