# predict

## PURPOSE

Interpolate a fit produced by locfit().

## SYNOPSIS

function [y, se] = predict(varargin)

## DESCRIPTION

     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.

## CROSS-REFERENCE INFORMATION

This function calls:

This function is called by:

- fig11_1 Local Regression and Likelihood, Figure 11.1
- fig13_1 Local Regression and Likelihood, Figure 13.1
- fig5_6 Local Regression and Likelihood, Figure 5.6.
- fig6_1 Local Regression and Likelihood, Figure 6.1.
- fig6_6 Local Regression and Likelihood, Figure 6.6.
- fig7_5 Local Regression and Likelihood, Figure 7.5.
- fig7_6 Local Regression and Likelihood, Figure 7.6.
- fig8_1 Local Regression and Likelihood, Figure 8.1.
- fig8_2 Local Regression and Likelihood, Figure 8.2.
- fig9_2 Local Regression and Likelihood, Figure 9.2.
- fitted Fitted values from a locfit object.
- lfband adds confidence bands around the plot of a locfit() fit.
- lfplot Plot (for one or two dimensions) a locfit() fit.
- locfit_all Smoothing noisy data using Local Regression and Likelihood.
- residuals Residuals (or a few other things) from a locfit() fit.
- scb Simultaneous Confidence Bands
- den_jack Function to compute smooth estimates of the mean of x using locfit,

## SOURCE CODE

    0001 function [y, se] = predict(varargin)
    0002
    0003 % Interpolate a fit produced by locfit().
    0004 %
    0005 % predict(fit)    produces the fitted values at locfit's selected points.
    0006 % predict(fit,x)  interpolates the fits to points specified by x.
    0007 %
    0008 % Input arguments:
    0009 %   fit   The locfit() fit.
    0010 %   x     Points to interpolate at. May be a matrix with d columns,
    0011 %         or cell with d components (each a vector). In the former
    0012 %         case, a fitted value is computed for each row of x.
    0013 %         In the latter, the components of x are interpreted as
    0014 %         grid margins.
    0015 %         Can also specify 'data' (evaluate at data points);
    0016 %         or 'fitp' (extract the fitted points).
    0017 %  'band',value
    0018 %         Type of standard errors to compute. Default is 'band','n', for none.
    0019 %         Other choices are 'band','g' (use a global s to estimate the resiudal
    0020 %         standard deviation, so standard errors are s*||l(x)||);
    0021 %         'band','l' (use a local s(x), so std. errors are s(x)*||l(x)||);
    0022 %         'band','p' (prediction errors, so s*sqrt(1+||l(x)||^2).
    0023 %  'direct'
    0024 %         Compute the local fit directly (rather than using local
    0025 %         regression, at each point specified by the x argument.
    0026 %  'kappa',vector
    0027 %         Vector of constants for simultaneous confidence bands,
    0028 %         computed by the kappa0() function.
    0029 %  'level',value
    0030 %         Coverage probability for confidence intervals and bands.
    0031 %         Default is 0.95.
    0032 %
    0033 %  Output is a vector of fitted values (if 'band','n'), or a cell
    0034 %  with fitted value, standard error vectors, and matrix of lower
    0035 %  and upper confidence limits.
    0036 %
    0037 %  Note that for local likelihood fits, back-transformation is
    0038 %  not performed, so that (e.g.) for Poisson regression with the
    0039 %  log-link, the output estimates the log-mean, and its standard errors.
    0040 %  Likewise, for density estimation, the output is log(density).
    0041 %
    0042 %  Author: Catherine Loader.
    0043
    0044 if (nargin<1)
    0045     error('predict requires fit argument');
    0046 end;
    0047
    0048 fit = varargin{1};
    0049
    0050 if (nargin==1) x = 'fitp'; else x = varargin{2}; end;
    0051
    0052 band = 'n';
    0053 what = 'coef';
    0054 rest = 'none';
    0055 dir  = 0;
    0056 level = 0.95;
    0057 d = size(fit.data.x,2);
    0058 kap = [zeros(1,d) 1];
    0059
    0060 na = 3;
    0061 while na <= nargin
    0062   inc = 0;
    0063   if strcmp(varargin{na},'band')
    0064     band = varargin{na+1};
    0065     inc = 2;
    0066   end;
    0067   if strcmp(varargin{na},'what')
    0068     what = varargin{na+1};
    0069     inc = 2;
    0070   end;
    0071   if strcmp(varargin{na},'restyp')
    0072     rest = varargin{na+1};
    0073     inc = 2;
    0074   end;
    0075   if strcmp(varargin{na},'direct')
    0076     dir = 1;
    0077     inc = 1;
    0078   end;
    0079   if strcmp(varargin{na},'kappa')
    0080     kap = varargin{na+1};
    0081     inc = 2;
    0082   end;
    0083   if strcmp(varargin{na},'level')
    0084     level = varargin{na+1};
    0085     inc = 2;
    0086   end;
    0087   if (inc == 0)
    0088     disp(varargin{na});
    0089     error('Unknown argument');
    0090   end;
    0091   na = na+inc;
    0092 end;
    0093
    0094 [y se cb] = mexpp(x,fit,band,what,rest,dir,kap,level);
    0095 if (band=='n')
    0096     y = y;
    0097 else
    0098     y = {y se cb};
    0099 end;
    0100
    0101 return;