Learn R Programming

Compositional (version 5.5)

Principal component generalised linear models: Principal component generalised linear models

Description

Principal component generalised linear models.

Usage

pcr(y, x, k = 1, xnew = NULL)
glm.pcr(y, x, k = 1, xnew = NULL)

Arguments

y

A numerical vector, a real values vector or a numeric vector with 0 and 1 (binary) or a vector with discrete (count) data.

x

A matrix with the predictor variable(s), they have to be continuous.

k

A number greater than or equal to 1. How many principal components to use. In the case of "pcr" this can be a single number or a vector. In the second case you get results for the sequence of principal components.

xnew

If you have new data use it, otherwise leave it NULL.

Value

A list including:

be

The beta coefficients of the predictor variables computed via the principcal components if "pcr" is used.

model

The summary of the logistic or Poisson regression model.

per

The percentage of variance of the predictor variables retained by the k principal components.

vec

The principal components, the loadings.

est

The fitted or the predicted values (if xnew is not NULL).

Details

Principal component regression is performed with linear, binary logistic or Poisson regression, depending on the nature of the response variable. The principal components of the cross product of the independent variables are obtained and classical regression is performed. This is used in the function alfa.pcr.

References

Aguilera A.M., Escabias M. and Valderrama M.J. (2006). Using principal components for estimating logistic regression with high-dimensional multicollinear data. Computational Statistics & Data Analysis 50(8): 1905-1924.

Jolliffe I.T. (2002). Principal Component Analysis.

See Also

alfa.pcr, alfapcr.tune

Examples

Run this code
# NOT RUN {
library(MASS)
x <- as.matrix(fgl[, 2:9])
y <- as.vector(fgl[, 1])
mod1 <- pcr(y, x, 1)
mod2 <- pcr(y, x, 2)
mod <- pcr(y, x, k = 1:4)  ## many results at once

x <- as.matrix(iris[, 1:4])
y<- rbinom(150, 1, 0.6)
mod<- glm.pcr(y, x, k = 1)
# }

Run the code above in your browser using DataLab