I am finding in my reading about hurdle models is that they may not be as simultaneous as they seem to me, despite being done in one R command. (See my question recently posted here on CV.)
I have dealt with this before, and this was my reasoning:
The only way that I would put "don't know" in the middle is that if the measurement tool actually positioned it in the middle of the scale. I don't agree with this measurement style, but I think that participants might interpret "don't know" to be "neutral" if the scale looks like, on the survey that the participant sees:
strongly disagree - mildly disagree - don't know - mildly agree - strongly agree
If this is the case, then I think it would be fair to just do one ordinal model, although I think the problem is with the measurement being confusing to the participant—not necessarily a statistical issue.
However, if the measurement tool placed "don't know" on the outside like I've seen others do, e.g.:
strongly disagree - mildly disagree - mildly agree - strongly agree || don't know
Then I think your two-step approach is totally valid. It is similar to and in the spirit of hurdle models (as far as I know about them—see the above link for evidence that I am still somewhat confused). The only thing I might change is:
Do a multinomial logistic regression, using "don't know" as the reference category and collapsing the two agree values together and the two disagree values together. That way you can predict the odds of people moving from don't know to agree and don't know to disagree. This can be done by recoding strongly/mildly agree into "agree" and recode strongly/mildly disagree into "disagree," then making "don't know" the first level in a
factor variable that represents this three-category dependent variable. I've only fit these models in Stan, but it seems pretty straightforward using the
multinom function from the
nnet package, although I would suggest reading up on it to see if everything matches what you think it is doing.
Do an ordered logistic regression, excluding the cases that are "don't know" from the sample. This can be done by assigning your dependent variable as
factor with levels ordered correctly, and then using the
clm function from the
model2 <- ordinal::clm(dv ~ iv, data = dat)
This two-step approach is similar to the hurdle model in that you are explicitly modeling two different kinds of processes: First, having no opinion vs. agreeing or disagreeing; Second, level of agreement.
Lastly, if you are interested in trying to predict whether or not people have an opinion—regardless of direction (disagree or agree)—then you should do a logistic regression predicting don't know versus any other response. It depends on what you are interested in at that point.