R: Functions For Computing Predictor Effects

predictorEffects {effects} | R Documentation

## Functions For Computing Predictor Effects

### Description

Alternatives to the `Effect` and `allEffects` functions that use a different paradigm for conditioning in an effects display. The user specifies one predictor, either continuous or a factor, for the horizontal axis of a plot, and the function determines the appropriate plot to display (which is drawn by `plot`).

### Usage

    predictorEffect(predictor, mod, xlevels, ...)

    ## S3 method for class 'svyglm'
    predictorEffect(predictor, mod, xlevels, ...)

    ## Default S3 method:
    predictorEffect(predictor, mod, ...)

    predictorEffects(mod, predictors, ...)

    ## Default S3 method:
    predictorEffects(mod, predictors = ~ ., ...)

### Arguments

`mod` | A model object. Supported models include all those described on the help page for `Effect`.
`predictor` | quoted name of the focal predictor.
`xlevels` | this argument is used to set the values for any predictor in the effect that is not a factor. For a predictor effect, the default is to use 50 quantiles of the focal predictor on the x-axis between the 0.01 and 0.98 quantiles. See `Effect` for details and for how other defaults are set.
`predictors` | If the default `~ .`, a predictor effecrts plot is drawn for each predictor (not regressor) in a model. Otherwise, this should be a one-sided formula listing the first-order predictors for which predictor effects plots should be drawn.
`...` | Additional arguments passed to `Effect`.

### Details

Effects plots view a fitted regression function E(Y|X) in (sequences of) two-dimensional plots using conditioning and slicing. The functions describe here use a different method of determining the conditioning and slicing than `Effects` uses. The predictor effects a focal predictor say `x1` will be the the usual effect for the generalized interaction of `x1` with all the other predictors in a model. When a predictor effects object is plotted, the focal predictor is by default plotted on the horizontal axis.

For example, in the model `mod` with formula `y ~ x1 + x2 + x3`, then `p1 <- predictorEffects(mod, ~ x1)` is essentially equilavent to `p2 <- Effect("x1", mod)`. When plotted, these objects may be different because `plot(p1)` will always put `x1` on the horizontal axis while `plot(p2)` uses a rule to determine the horizontal axis based on the characteristics of all the predictors, preferring continuous predictors over factors.

If `mod` has the formula `y ~ x1 + x2 + x3 + x1:x2`, then `p1 <- predictorEffects(mod, ~ x1)` is essentially equilavent to `p2 <- Effect(c("x1", "x2"), mod)`. As in the last example, the plotted versions of these objects may differ because of rules used to determine the horizontal axis.

If `mod` has the formula `y ~ x1 + x2 + x3 + x1:x2 + x1:x3`, then `p1 <- predictorEffects(mod, ~ x1)` is essentially equilavent to `p2 <- Effect(c("x1", "x2", "x3"), mod)`. The plotted versions of these objects may differ because of rules used to determine the horizontal axis.

### Value

`predictorEffect` returns an object of class `c(predictoreff, eff)`. The components of the object are described under the detalis at `Effect`. `predictorEffects` returns an object of class `predictorefflist`, which is a list whose elements are of class `c(predictoreff, eff)`

### Author(s)

S. Weisberg, sandy@umn.edu

### References

See `Effect`.

### See Also

`Effect`, `plot.predictoreff`

### Examples

    mod <- lm(prestige ~ type*(education + income + women), Prestige)
    plot(predictorEffect("income", mod))
    plot(predictorEffects(mod, ~ education + income + women))

    # svyglm() example (adapting an example from the survey package)

    if (require(survey)){
      data(api)
      dstrat<-svydesign(id=~1, strata=~stype, weights=~pw,
        data=apistrat, fpc=~fpc)
      mod <- svyglm(sch.wide ~ ell + meals + mobility, design=dstrat,
        family=quasibinomial())
      plot(predictorEffects(mod),
        axes=list(y=list(lim=log(c(0.4, 0.99)/c(0.6, 0.01)),
          ticks=list(at=c(0.4, 0.75, 0.9, 0.95, 0.99)))))
    }

[Package effects version 4.0-1 Index]