next up previous print clean
Next: TWO-STAGE LINEAR LEAST SQUARES Up: PEF ESTIMATION WITH MISSING Previous: Internal boundaries to multidimensional

Finding the prediction-error filter

The first stage of the least-squares estimation is computing the prediction-error filter. The second stage will be using it to find the missing data. The input data space contains a mixture of known data values and missing unknown ones. For the first stage of finding the filter, we generally have many more fitting equations than we need so we can proceed by ignoring the fitting equations that involve missing data values. We ignore them everywhere that the missing inputs hit the filter.

The codes here do not address the difficulty that maybe too much data is missing so that all weights are zero. To add stabilization we could supplement the data volume with a synthetic ``training dataset'' or by a ``prior filter''. With things as they are, if there is not enough data to specify a prediction-error filter, you should encounter the error exit from cgstep() [*].  

#$=head1 NAME
#$
#$pef  - find prediction error filter
#$
#$=head1 SYNOPSIS
#$  
#$C<call find_pef(dd,aa,niter)>
#$
#$=head1 INPUT PARAMETERS
#$
#$=over 4
#$
#$=item dd  -  C<real(:)>    
#$
#$      Input data 
#$  
#$=item niter - integer     
#$  
#$      Number of itterations
#$
#$=back
#$
#$=head1 OUTPUT PARAMETERS
#$
#$=over 4
#$  
#$=item  aa - type(filter)
#$
#$       output filter
#$
#$=back
#$
#$=head1 DESCRIPTION
#$
#$ Find prediction-error filter (helix magic)
#$
#$=head1 SEE ALSO
#$
#$L<npef>,L<hconest>,L<solver>,L<cgstep>,L<pefest>
#$
#$=head1 LIBRARY
#$
#$B<geef90>
#$
#$=cut
module pef {              # Find prediction-error filter (helix magic)
  use hconest
  use cgstep_mod
  use solver_mod
contains
  subroutine find_pef( dd, aa, niter) {
    integer,          intent( in)  :: niter        # number of iterations
    type( filter)                  :: aa           # filter
    real,    dimension(:), pointer :: dd           # input data
    call hconest_init( dd, aa)
    call solver( hconest_lop, cgstep, aa%flt, -dd, niter, x0= aa%flt)
    call cgstep_close()
    }
}

Results are shown in Figures 11- 13. Here again, the PEF is carefully designed using module bound [*] so that no filter outputs are used where the filter is only partway on the data. After the PEF was designed, it is applied with the more cavalier helix treatment of boundaries so although you cannot see the frame of excluded outputs, you can see what happens as the filter is climbing onto the data.

 
wood-hole
wood-hole
Figure 11
Hole in wood.


view burn build edit restore

 
herr-hole
herr-hole
Figure 12
Hole in herringbone.


view burn build edit restore

 
brick-hole
brick-hole
Figure 13
Hole in brick.


view burn build edit restore


next up previous print clean
Next: TWO-STAGE LINEAR LEAST SQUARES Up: PEF ESTIMATION WITH MISSING Previous: Internal boundaries to multidimensional
Stanford Exploration Project
12/15/2000