Skip to content Skip to navigation
University of Warwick
  • Study
  • |
  • Research
  • |
  • Business
  • |
  • Alumni
  • |
  • News
  • |
  • About
  • Text only
  • |
  • Sign in
  • Search WMS
  • Search University of Warwick
  • Search for people at Warwick
  • Search Warwick Blogs
  • Search past exam papers
  • Search video
  • More…

    Warwick Medical School

    • Study
    • Research
    • News and Events
    • About us
    • Our staff
    • Dr Nick Parsons »
    • repolr
    University of Warwick

    Repeated measures proportional odds logistic regression

    Method 

    Repeated measures proportional odds logistic regression models correlated repeat ordinal scores using the method suggested by Parsons et al. (2006). Code for model fitting runs in the free statistical software R. Before sourcing the repolr functions, download R and the latest version of the GEE solver package gee. Two example data sets are available (Example 1: Achilles tendon data and Example 2: Hip resurfacing data) and code for analysis and a description of implementation is given below.

      

    Code

    The source functions for R implementation of repolr must be loaded prior to model fitting.

      

    Example 1: Achilles tendon data

    Example data is from a clinical trial of treatment post-surgery after rupture of the Achilles tendon. Reads data from user defined location, loads gee library, fits model and summarises.

    
    
    # example code
    achilles.dat <- read.table(“c:/data location/achilles_data.txt”, 
    col.names=c("Patient","Treat","Time","Activity"),header=T) 
    attach(achilles.dat) 
    library(gee) 
    source(“c:/function location/repolr_functions.R”) 
    fitted.mod <- repolr(formula = Activity ~ factor(Treat) * Time , 
    subjects = "Patient" , data = achilles.dat , 
    categories = 3 ,  times = c(1,2,3) , corstr = "ar1", 
    tol = 0.001, scalevalue = 1, alpha = 0.5,
    po.test=TRUE, fixed=FALSE) 
    summary(fitted.mod[["gee"]]) 
    fitted.mod[["corr"]]

      

    Implementation

    
    

    The user is required to specify:

    (i) a data set name (data)

    (ii) a model formula (formula)

    (iii) a cluster identification variable (subjects)

    (iv) a time variable (time)

    (v) and the number of categories used for the response variable (categories)

    The data set may contain records with missing data for either the response variable or the explanatory variables. The response variable must have at least three ordered categories (K>=3)  and, as K cut-point parameters are estimated, an additional intercept term can not be explicitly included in the model formula. A subject variable, which takes integer values from 1 to N with no missing values allowed, indicates the data clusters (patients or experimental units) and a time variable indicates the within cluster ordering; times must be ordered integers starting from one and spaced to indicate the relative distance between successive times. For instance, four observations at equally spaced times would be entered as 1, 2, 3 and 4, whereas if the first two observations were separated by half the time interval of the other observations then coding would be 1, 2, 4 and 6. The data must be pre-sorted by time clusters within each subject, and complete, i.e. where data is missing for a particular time it must be indicated as such. The available options for the correlation model (corstr) are AR1, uniform, fixed and independence, with default setting AR1. 

    Additionally there are a number of other algorithm related options. A fixed scale parameter (scalevalue) is assumed to be 1, but otherwise it can be set to any positive value . The algorithm is generally robust to the initial value for alpha (default setting = 0.5), however a starting value for alpha  can be set. The maximum number of iterations allowed (maxiter; default setting = 10) can be specified and convergence (tol) is monitored using the average relative change in the regression parameters at each iteration of the algorithm; the default setting (0.001) is such that the algorithm continues until this drops to below 0.1%. The algorithm will fail if the working correlation matrix is not positive definite and, in order to speed convergence for the AR1 and uniform correlation models,  is constrained to be between 0.05 and 0.95. The proportional odds assumption can be tested, using a score test, by setting the option po.test to TRUE (default).

    The functions require the user to have pre-installed the latest version of the R GEE solver gee and the fitted model (fitted.mod[["gee"]]) inherits the class attributes of this package; correlation model ouput is available from fitted.mod[["corr"]].

      

    Example 2: Hip resurfacing data

    Example data is from a clinical trial of treatment post-surgery after hip resurfacing.

      
    # example code
    pain.dat <- read.table(“c:/data location/pain_data.txt”, 
    col.names=c("Patient","Sex","Time","HHSpain"),header=T) 
    attach(pain.dat) 
    library(gee) 
    source(“c:/function location/repolr_functions.R”) 
    fitted.mod <- repolr(formula = HHSpain ~ factor(Sex) * factor(Time) , 
    subjects = "Patient" , data = pain.dat , 
    categories = 4 ,  times = c(1,2,5) , corstr = "ar1", 
    tol = 0.001, scalevalue = 1, alpha = 0.5,
    po.test=TRUE, fixed=FALSE) 
    summary(fitted.mod[["gee"]]) 
    fitted.mod[["corr"]]
    # plot profile likelihood
    proflik <- vector(length=81)
    alphas <- seq(0.1,0.9,0.01)
    for (j in 1:81){
    proflik[j] <- srepolr(mod.gee=fitted.mod,alpha=alphas[j],data=HHSpain.dat)
    }
    Nproflik <- proflik/srepolr(mod.gee=fitted.mod,alpha=fitted.mod[["corr"]]$alpha,data=HHSpain.dat)
    plot(x=alphas,y=Nproflik,type="l",lwd=2)
     

    References

    Parsons, NR, Edmondson, RN and Gilmour, SG, (2006) 'A generalized estimating equation method for fitting autocorrelated ordinal score data with an application in horticultural research.' Applied Statistics 55, 507 - 524.

    twitter
    Staff IntranetCurrent Students
    Warwick Medical School
    The University of Warwick
    Coventry
    CV4 7AL
    Tel: +44 (0) 2476 574 880
     
    Close this email form
    Page contact: Nicholas Parsons Last revised: Tue 11 Mar 2008
    • Sign in
    • |
    • Powered by Sitebuilder
    • |
    • © MMXII
    • |
    • Privacy
    • |
    • Accessibility