Mercurial > repos > vipints > rdiff
diff rDiff/src/locfit/m/predict.m @ 0:0f80a5141704
version 0.3 uploaded
author | vipints |
---|---|
date | Thu, 14 Feb 2013 23:38:36 -0500 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/rDiff/src/locfit/m/predict.m Thu Feb 14 23:38:36 2013 -0500 @@ -0,0 +1,101 @@ +function [y, se] = predict(varargin) + +% Interpolate a fit produced by locfit(). +% +% predict(fit) produces the fitted values at locfit's selected points. +% predict(fit,x) interpolates the fits to points specified by x. +% +% Input arguments: +% fit The locfit() fit. +% x Points to interpolate at. May be a matrix with d columns, +% or cell with d components (each a vector). In the former +% case, a fitted value is computed for each row of x. +% In the latter, the components of x are interpreted as +% grid margins. +% Can also specify 'data' (evaluate at data points); +% or 'fitp' (extract the fitted points). +% 'band',value +% Type of standard errors to compute. Default is 'band','n', for none. +% Other choices are 'band','g' (use a global s to estimate the resiudal +% standard deviation, so standard errors are s*||l(x)||); +% 'band','l' (use a local s(x), so std. errors are s(x)*||l(x)||); +% 'band','p' (prediction errors, so s*sqrt(1+||l(x)||^2). +% 'direct' +% Compute the local fit directly (rather than using local +% regression, at each point specified by the x argument. +% 'kappa',vector +% Vector of constants for simultaneous confidence bands, +% computed by the kappa0() function. +% 'level',value +% Coverage probability for confidence intervals and bands. +% Default is 0.95. +% +% Output is a vector of fitted values (if 'band','n'), or a cell +% with fitted value, standard error vectors, and matrix of lower +% and upper confidence limits. +% +% Note that for local likelihood fits, back-transformation is +% not performed, so that (e.g.) for Poisson regression with the +% log-link, the output estimates the log-mean, and its standard errors. +% Likewise, for density estimation, the output is log(density). +% +% Author: Catherine Loader. + +if (nargin<1) + error('predict requires fit argument'); +end; + +fit = varargin{1}; + +if (nargin==1) x = 'fitp'; else x = varargin{2}; end; + +band = 'n'; +what = 'coef'; +rest = 'none'; +dir = 0; +level = 0.95; +d = size(fit.data.x,2); +kap = [zeros(1,d) 1]; + +na = 3; +while na <= nargin + inc = 0; + if strcmp(varargin{na},'band') + band = varargin{na+1}; + inc = 2; + end; + if strcmp(varargin{na},'what') + what = varargin{na+1}; + inc = 2; + end; + if strcmp(varargin{na},'restyp') + rest = varargin{na+1}; + inc = 2; + end; + if strcmp(varargin{na},'direct') + dir = 1; + inc = 1; + end; + if strcmp(varargin{na},'kappa') + kap = varargin{na+1}; + inc = 2; + end; + if strcmp(varargin{na},'level') + level = varargin{na+1}; + inc = 2; + end; + if (inc == 0) + disp(varargin{na}); + error('Unknown argument'); + end; + na = na+inc; +end; + +[y se cb] = mexpp(x,fit,band,what,rest,dir,kap,level); +if (band=='n') + y = y; +else + y = {y se cb}; +end; + +return;