Skip to main content
4 of 5
added 233 characters in body
dimitriy
  • 38.3k
  • 7
  • 83
  • 167
  1. You need to use the i. prefix in front of connectivity to let Stata know that it is dealing with a categorical variable. Otherwise Stata will assume that it is continuous, which is why you only get one parameter. Some people do treat Likert scale variables as if they were continuous, but I would avoid it since it bakes in some strong assumptions.
  2. You can use margins to get the average marginal effects of the categorical variable for each possible outcomes.

Here's an example with the cars data. The outcome is repair record (1=Poor, Fair, Average, Good, and 5=Excellent) and the explanatory variable is rounded and scaled version of miles per gallon (1=low mileage,2,3,4=high mileage), cat_var:

webuse fullauto, clear
gen cat_var = round(mpg,10) 
replace cat_var = cat_var/10

oprobit rep78 i.cat_var 
margins, dydx(cat_var)

So for example, the AME for 4 versus 1 for outcome 5 (Excellent) is .5727857, which means that the probability that a car's repair record is rated as excellent goes up by .57 on a 0-1 scale as we go from the lowest mileage bucket to the highest.

You can control the omitted category for the categorical variable by adjusting the prefix:

oprobit rep78 ib2.cat_var

This makes the AMEs relative to 2 rather than 1.

dimitriy
  • 38.3k
  • 7
  • 83
  • 167