Learn R Programming

DAMisc (version 1.3)

ordChange: Maximal First Differences for Proportional Odds Logistic Regression Models

Description

For objects of class polr, it calculates the change in predicted probabilities, for maximal discrete changes in all covariates holding all other variables constant at typical values.

Usage

ordChange(obj, data, typical.dat=NULL, diffchange = c("range", "sd", "unit"), 
    sim = TRUE, R=1500)

Arguments

obj
A model object of class polr.
data
Data frame used to fit object.
typical.dat
Data frame with a single row containing values at which to hold variables constant when calculating first differences. These values will be passed to predict, so factors must take on a single value, but have all possible levels as their leve
diffchange
A string indicating the difference in predictor values to calculate the discrete change. range gives the difference between the minimum and maximum, sd gives plus and minus one-half standard deviation change around the median an
sim
Logical indicating whether or not simulations should be done to generate confidence intervals for the difference.
R
Number of simulations.

Value

  • A list with the following elements:
  • diffsA matrix of calculated first differences
  • minmaxA matrix of values that were used to calculate the predicted changes
  • minPredA matrix of predicted probabilities when each variable is held at its minimum value, in turn.
  • maxPredA matrix of predicted probabilities when each variable is held at its maximum value, in turn.

Details

The function calculates the changes in predicted probabilities for maximal discrete changes in the covariates for objects of class polr. This function works with polynomials specified with the poly function. It also works with multiplicative interactions of the covariates by virtue of the fact that it holds all other variables at typical values. By default, typical values are the median for quantitative variables and the mode for factors. The way the function works with factors is a bit different. The function identifies the two most different levels of the factor and calculates the change in predictions for a change from the level with the smallest prediction to the level with the largest prediction.

Examples

Run this code
library(MASS)
data(france)
polr.mod <- polr(vote ~ age + male + retnat + lrself, data=france)
typical.france <- data.frame(
	age = 35, 
	retnat = factor(1, levels=1:3, labels=levels(france$retnat))
	)
ordChange(polr.mod, data=france, typical.dat=typical.france, sim=FALSE)

Run the code above in your browser using DataLab