123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- 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;
|