R: Pseudo-Variance Modification of Rubin's Rules

PVR.confint {logistf} | R Documentation

## Pseudo-Variance Modification of Rubin's Rules

### Description

The pseudo-variance modification proposed by Heinze, Ploner and Beyea (2013) provides a quick way to adapt Rubin's rules to situations of a non-normal distribution of a regression coefficient. However, the approxiation is less accurate than that of the CLIP method.

### Usage

    PVR.confint(obj, variable, skewbeta = FALSE)

### Arguments

`obj` | A list of objects fitted by `logistf`.
`variable` | The variable(s) to compute the PVR confidence intervals, either provided as names or as numbers.
`skewbeta` | If TRUE, incorporates information on the skewness of the parameter estimates across the imputed data sets.

### Details

The pseudo-variance modification computes a lower and an upper pseudo-variance, which are based on the distance between profile likelihood limits and the parameter estimates. These are then plugged into the usual Rubin's rules method of variance combination.

### Value

An object of class `PVR.confint` with items

`estimate` | the pooled parameter estimate(s) (the average across completed-data estimates)
`ci` | the confidence intervals based on the PVR method
`lower.var` | the lower pseudo-variance(s)
`upper.var` | the upper pseudo-variance(s)
`conflev` | the confidence level: this is determined by the confidence level (1-alpha) used in the input fit objects
`call` | the function call
`variable` | the variable(s) for which confidence intervals were computed

### Author(s)

Georg Heinze

### References

Heinze G, Ploner M, Beyea J (2013). Confidence intervals after multiple imputation: combining profile likelihood information from logistic regressions. Statistics in Medicine, to appear.

### Examples

    #generate data set with NAs
    freq=c(5,2,2,7,5,4)
    y<-c(rep(1,freq[1]+freq[2]), rep(0,freq[3]+freq[4]), rep(1,freq[5]), rep(0,freq[6]))
    x<-c(rep(1,freq[1]), rep(0,freq[2]), rep(1,freq[3]), rep(0,freq[4]), rep(NA,freq[5]),
       rep(NA,freq[6]))
    toy<-data.frame(x=x,y=y)

    # impute data set 5 times
    set.seed(169)
    toymi<-list(0)
    for(i in 1:5){
      toymi[[i]]<-toy
      y1<-toymi[[i]]$y==1 & is.na(toymi[[i]]$x)
      y0<-toymi[[i]]$y==0 & is.na(toymi[[i]]$x)
      xnew1<-rbinom(sum(y1),1,freq[1]/(freq[1]+freq[2]))
      xnew0<-rbinom(sum(y0),1,freq[3]/(freq[3]+freq[4]))
      toymi[[i]]$x[y1==TRUE]<-xnew1
      toymi[[i]]$x[y0==TRUE]<-xnew0
    }

    # logistf analyses of each imputed data set
    fit.list<-lapply(1:5, function(X) logistf(data=toymi[[X]], y~x, pl=TRUE, dataout=TRUE))

    # CLIP confidence limits
    PVR.confint(obj=fit.list)

[Package logistf version 1.23 Index]