Description Usage Arguments Details Value Author(s) References See Also Examples
Fit a semiparametric ANCOVA model with a local polynomial smoother. The specific model considered here is
y_ij= g_i + m(x_ij) + e_ij,
where the parametric part of the model, g_i, is a factor variable; the nonparametric part of the model, m(.), is a nonparametric smooth function; e_ij are independent identically distributed errors. The errors e_ij do not have to be independent N(0, sigma^2) errors. The errors can be heteroscedastic, i.e., e_ij = sigma_i(x_ij) * u_ij, where u_ij are independent identically distributed errors with mean 0 and variance 1. The model is fitted by the direct estimation method (Speckman, 1988), or by the backfitting method (Buja, Hastie and Tibshirani, 1989; Hastie and Tibshirani, 1990).
1 2 3 4 |
x |
a vector or two-column matrix of covariate values. |
y |
a vector of response values. |
group |
a vector of group indicators that has the same length as y. |
degree |
the degree of the local polynomials to be used. It can ben 0, 1 or 2. |
criterion |
the criterion for automatic smoothing parameter selection: “aicc” denotes bias-corrected AIC criterion, “gcv” denotes generalized cross-validation. |
family |
if “gaussian” fitting is by least-squares, and if “symmetric” a re-descending M estimator is used with Tukey's biweight function. |
method |
if “Speckman” the direct estimation method by Speckman (1988) will be used, and if “Backfitting” The model is fitted by the backfitting method (Buja, Hastie and Tibshirani, 1989; Hastie and Tibshirani, 1990). |
iter |
the number of iterations. |
tol |
the number of tolerance in the iterations. |
user.span |
the user-defined parameter which controls the degree of smoothing. If it is not specified, the smoothing parameter will be selected by “aicc” or “gcv” criterion. |
plot |
if TRUE (when x is one-dimensional), the fitted curves for all groups will be generated; if TRUE (when x is two-dimensional), only the smooth component in the model will be plotted. |
data.points |
if TRUE, the data points will be displayed in the plot. |
legend.position |
the position of legend in the plot: “topright”, “topleft”, “bottomright”, “bottomleft”, etc. |
... |
control parameters. |
Fit a local polynomial regression with automatic smoothing parameter selection. The predictor x can either one-dimensional or two-dimensional.
a list of a vector of the parametric estimates and an object of class “loess”.
X.F. Wang wangx6@ccf.org
Speckman, P. (1988). Kernel Smoothing in Partial Linear Models. Journal of the Royal Statistical Society. Series B (Methodological), 50, 413–436.
Buja, A., Hastie, T. J. and Tibshirani, R. J. (1989). Linear smoothers and additive models (with discussion). Annals of Statistics, 17, 453–555.
Hastie, T. J. and Tibshirani, R. J. (1990). Generalized Additive Models. Vol. 43 of Monographs on Statistics and Applied Probability, Chapman and Hall, London.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | ## Fit semiparametric ANCOVA model
set.seed(555)
n1 <- 80
x1 <- runif(n1,min=0, max=3)
sd1 <- 0.3
e1 <- rnorm(n1,sd=sd1)
y1 <- 3*cos(pi*x1/2) + 6 + e1
n2 <- 75
x2 <- runif(n2, min=0, max=3)
sd2 <- 0.2
e2 <- rnorm(n2, sd=sd2)
y2 <- 3*cos(pi*x2/2) + 3 + e2
n3 <- 90
x3 <- runif(n3, min=0, max=3)
sd3 <- 0.3
e3 <- rnorm(n3, sd=sd3)
y3 <- 3*cos(pi*x3/2) + e3
data.bind <- rbind(cbind(x1,y1,1), cbind(x2,y2,2),cbind(x3,y3,3))
data.bind <- data.frame(data.bind)
colnames(data.bind)=c('x','y','group')
x <- data.bind[,1]
y <- data.bind[,2]
group <- data.bind[,3]
loess.ancova(x,y,group, plot=TRUE, data.points=TRUE)
## Fit semiparametric ANCOVA model when the predictor is two-dimensional
n1 <- 100
x11 <- runif(n1,min=0, max=3)
x12 <- runif(n1,min=0, max=3)
sd1 <- 0.2
e1 <- rnorm(n1,sd=sd1)
y1 <- sin(2*x11) + sin(2*x12) + e1
n2 <- 100
x21 <- runif(n2, min=0, max=3)
x22 <- runif(n2, min=0, max=3)
sd2 <- 0.25
e2 <- rnorm(n2, sd=sd2)
y2 <- sin(2*x21) + sin(2*x22) + 1 + e2
n3 <- 120
x31 <- runif(n3, min=0, max=3)
x32 <- runif(n3, min=0, max=3)
sd3 <- 0.25
e3 <- rnorm(n3, sd=sd3)
y3 <- sin(2*x31) + sin(2*x32) + 3 + e3
data.bind <- rbind(cbind(x11, x12 ,y1,1), cbind(x21, x22, y2,2),cbind(x31, x32,y3,3))
data.bind <- data.frame(data.bind)
colnames(data.bind)=c('x1','x2', 'y','group')
loess.ancova(data.bind[,c(1,2)], data.bind$y, data.bind$group, plot=TRUE)
|
fANCOVA 0.5-1 loaded
$linear.fit
[,1]
(Intercept) 5.875129
group2 -3.009935
group3 -6.101343
$smooth.fit
Call:
loess(formula = lm.res ~ x, span = span1, degree = degree, family = family)
Number of Observations: 245
Equivalent Number of Parameters: 5.4
Residual Standard Error: 0.2912
$linear.fit
[,1]
(Intercept) -0.1933993
group2 1.0208445
group3 3.0423428
$smooth.fit
Call:
loess(formula = lm.res ~ x1 + x2, span = span1, degree = degree,
family = family)
Number of Observations: 320
Equivalent Number of Parameters: 17.74
Residual Standard Error: 0.2364
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.