| cv.polywog | R Documentation | 
k-fold cross-validation to select the polynomial degree and penalization
factor for a polywog model.
cv.polywog(
  formula,
  ...,
  degrees.cv = 1:3,
  nfolds = 10,
  model = TRUE,
  X = FALSE,
  y = FALSE
)
| formula | model formula specifying the response and input variables. | 
| ... | other arguments to be passed to  | 
| degrees.cv | vector of polynomial degrees to examine via cross-validation. | 
| nfolds | number of folds to use in cross-validation. | 
| model | logical: whether to include the model frame in the
 | 
| X | logical: whether to include the raw model matrix (i.e., the
matrix of input variables prior to taking their polynomial expansion) in
the  | 
| y | logical: whether to include the response variable in the
 | 
When fitting with method = "scad", different fold assignments are
used for each polynomial degree specified, because cv.ncvreg
does not allow for custom fold assignments.  This may affect the accuracy
of the estimated cross-validation error for each degree.  When
method = "scad", the calls to polywog made by
cv.polywog will issue warnings that the foldid argument is
being ignored.
An object of class "cv.polywog", a list containing:
resultsA table of each degree tested, the optimal
penalization factor \lambda for that degree, and its
cross-validation error.
degree.minThe polynomial degree giving the lowest cross-validation error.
polywog.fitA polywog model, fit at the
polynomial degree giving the lowest cross-validation error.
Because the returned object contains the fitted polywog model for the
optimal degree, no additional runs of polywog are necessary
to estimate coefficients or the penalization factor \lambda.
However, bootstrap results must be obtained by running
bootPolywog on the "polywog.fit" element of the
returned object, as in the examples below.
Brenton Kenkel and Curtis S. Signorino
## Using occupational prestige data
data(Prestige, package = "carData")
Prestige <- transform(Prestige, income = income / 1000)
## Examine degrees 1 through 4
## (note: using low convergence threshold to shorten computation time of the
## example, *not* recommended in practice!)
set.seed(39)
cv1 <- cv.polywog(prestige ~ education + income + type,
                  data = Prestige,
                  degrees.cv = 1:4,
                  nfolds = 10,
                  thresh = 1e-4)
print(cv1)
## Extract best model and bootstrap
fit1 <- cv1$polywog.fit
fit1 <- bootPolywog(fit1, nboot = 5)
summary(fit1)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.