Learn R Programming

DAMisc (version 1.7.2)

ordAveEffPlot: Plot Average Effects of Variables in Proportional Odds Logistic Regression

Description

For objects of class polr the function plots the average effect of a single variable holding all other variables at their observed values.

Usage

ordAveEffPlot(
  obj,
  varname,
  data,
  R = 1500,
  nvals = 25,
  plot = TRUE,
  returnInd = FALSE,
  returnMprob = FALSE,
  ...
)

Arguments

obj

An object of class polr

varname

A string providing the name of the variable for which you want the plot to be drawn.

data

Data used to estimate obj.

R

Number of simulations to generate confidence intervals.

nvals

Number of evaluation points of the function

plot

Logical indicating whether or not the result should be plotted (if TRUE) or returned to the console (if FALSE).

returnInd

Logical indicating whether average individual probabilities should be returned.

returnMprob

Logical indicating whether marginal probabilities, averaged over individuals, should be returned.

Arguments passed down to the call to xyplot

Value

Either a plot or a list with a data frame containing the variables

mean

The average effect (i.e., predicted probability)

lower

The lower 95% confidence bound

upper

The upper 95% confidence bound

y

The values of the dependent variable being predicted

x

The values of the independent variable being manipulated

and the elements Ind or Mprob, as requested.

Details

Following the advice of Hanmer and Kalkan (2013) the function calculates the average effect of a variable holding all other variables at observed values and then plots the result.

References

Hanmer, M.J. and K.O. Kalkan. 2013. ‘Behind the Curve: Clarifying the Best Approach to Calculating Predicted Probabilities and Marginal Effects from Limited Dependent Variable Models’. American Journal of Political Science. 57(1): 263-277.

Examples

Run this code
# NOT RUN {
library(MASS)
data(france)
polr.mod <- polr(vote ~ age + male + retnat + lrself, data=france)
# }
# NOT RUN {
ordAveEffPlot(polr.mod, "lrself", data=france)	
# }
# NOT RUN {
# }

Run the code above in your browser using DataLab