Description Usage Arguments Details Value Author(s) See Also Examples
Fit a curve by a multivariate kernel regression.
1 |
x |
a matrix. |
y |
a vector. |
xpred |
a vector. |
kernel |
the used kernel. |
b |
a bandwidth |
~~ If necessary, more details than the description above ~~
A list, containing
xpred |
same as in input |
ypred |
vector of the predictions |
b |
bandwidth |
Rene Carmona
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 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 | ##---- Should be DIRECTLY executable !! ----
##-- ==> Define data, use random,
##-- or do help(data=index) for the standard data sets.
## The function is currently defined as
function(x, y, xpred = x, kernel = 4, b)
{
########################################################################
# kreg
# ----
# kernel regression (possibly multivariate)
#
# Inputs
# ------
# x nxp matrix of n observations & p explanatory variables
# y vector of n observations of the response variable
# xpred n'xp matrix of n' regressors for prediction
# kernel function
# 1 <-> uniform
# 2 <-> cosine
# 3 <-> triangular
# 4 <-> Epanechnikov
# 5 <-> quartic
# 6 <-> triweight
# 7 <-> Gaussian
# b bandwidth
#
# Outputs
# -------
# xpred same as in input
# ypred vector of the predictions (for the rows of xpred)
# b same as in input
#
###########################################################################
if(is.vector(x)) {
n <- length(x)
p <- 1
}
else if(is.matrix(x)) {
n <- dim(x)[1]
p <- dim(x)[2]
}
if(is.vector(xpred)) {
npred <- length(xpred)
ppred <- 1
}
else if(is.matrix(xpred)) {
npred <- dim(xpred)[1]
ppred <- dim(xpred)[2]
}
if(is.vector(y)) {
ny <- length(y)
py <- 1
}
else if(is.matrix(y)) {
ny <- dim(y)[1]
py <- dim(y)[2]
}
if(ny != n) {
stop("The number of rows of x should be the same\n as the number of rows of y"
)
}
if(py != 1) {
stop("y should not have more than one column")
}
if(p != ppred) {
stop("The number of columns of x should be the same\n as the number of columns of xpred"
)
}
ypred <- rep(0, npred)
x <- c(x)
dim(x) <- c(length(x), 1)
dim(y) <- c(length(y), 1)
xxpred <- c(xpred)
dim(xxpred) <- c(length(xxpred), 1)
dim(ypred) <- c(length(ypred), 1)
z <- .C("kreg",
as.double(x),
as.double(y),
as.double(xxpred),
ypred = as.double(ypred),
as.integer(n),
as.integer(p),
as.integer(npred),
as.integer(kernel),
as.double(b))
ypred <- z$ypred
dim(ypred) <- c(npred, 1)
list(xpred = xpred, ypred = ypred, b = b)
}
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.