## NAME

r.rational.regression - linear and nonlinear regression calculation from data stored in ASCII file
(GRASS Raster Processing Program)

## SYNOPSIS

r.rational.regression
r.rational.regression help
r.rational.regression input=name output=name [check="phrase"] [predict="phrase"] [plot="phrase"] [calculat="phrase"]

## DESCRIPTION

The r.rational.regression program calculates the linear or nonlinear regression model. If it is used as an image precessing tool, the multispectral space remote sensing data will be the regression variables (ascii file) and the ground vegetation coverage measurements will be the response variables (also ascii file) and this command will be useful for obtaining linear or nonlinear regression models from the remote-sensing data which have corresponding ground mearsurement and for predicting vegetation coverage using other remote-sensing data which have no corresponding ground truth records. The input file has the following format

  regression valuables x1, x2, ... response variable y

  channel 1 (x1) channel 2 (x2) ... coverage

  For a three channel remote-sensing data the following is an example of input ascii file

      0.4350    0.2616      0.7016        0.98

      0.4140    0.2620      0.6520        0.99

      0.4940    0.3500      0.5580        0.34

      0.5983    0.5350      0.5650        0.10

      0.4883    0.3733      0.5533        0.88

      0.4150    0.2916      0.5116        0.60

      0.5566    0.5250      0.5466        0.09

      0.4420    0.2820      0.6800        0.86

      0.4220    0.2620      0.6260        0.88

      0.4766    0.3666      0.5933        0.61

      0.5180    0.4300      0.5140        0.60

      0.4416    0.2700      0.7383        0.96

      0.4583    0.3116      0.5133        0.76

      0.4300    0.2750      0.7233        0.98

      0.4320    0.2760      0.6460        1.00

      0.4733    0.3566      0.5616        0.53

      0.4200    0.2450      0.7966        1.00

      0.4850    0.3533      0.7216        0.99

      0.4360    0.2620      0.7620        0.99

      0.4283    0.2650      0.6783        0.91

      0.4633    0.3200      0.6750        0.94

  The resulted regression model (coefficient numbers) and related information about the confidencial test, goodness or utility test (e.g., correlation coefficient r between observed and calculated coverage, F value and t value) are put on the output file (ascii file also).

  Eight models can be choosen by user after prompted by the program. They are:

  1) usual linear model:
  y=a[0]x[0]+a[1],
  y=a[0]x[0]+a[1]x[1]+a[2]
  y=a[0]x[0]+a[1]x[1]+a[2]x[2]+a[4]

  2) linear model with remote-sensing data normalized by the data in the first spectrial band; normalized by x1:
  y=a[0]x[1]/x[0] + a[1]
  y=a[0]x[1]/x[0] + a[1]x[2]/x[0] + a[2]

  3) linear model with normalization by the second band; normalized by x2:
  y=a[0]x[0]/x[1] + a[1]
  y=a[0]x[0]/x[1] + a[1]x[2]/x[1] + a[2]

  4) NDVI (normalized differential vegetation index) model;

  5) NDVI model for intensity instead of radiance;

  6) NDVI model for reflectance;

  7) semi-relaxation vegetation index model;

  8) RVI (relaxation vegetation index) nonlinear model.

  The user has three options for check: multx1, multx2, and multx3. These options check multi-collinearity of the input data. multx1 calculates $R sup 2$ for channel x1 being replaced by coverage y. multx2 for channel x2 if input data are composed of two remote-sensing channels. And multx3 for channel x3 if input data are composed of at least three channels.

  The program provides three methods to conduct the nonlinear regression calculation. These methods can be invoked by the user as options of calculat. The first one is rational fraction method. If no any option of calculat is given by the user, the program will adopt the first method. If calculat = rvi_linear the linearization method is taken to conduct the nonlinear relaxation index regression. If the user set calculat = rvi_nonlinear the general nonlinear regression method is used. If calculat = all, the program will conduct nonlinear regression first using the rational fraction method and then using the obtained coefficients as initial values to conduct the second method calculation and finally using the third method to improve the results. For nonlinear regression calculation there may exist multi-minimums. We can not be in reliance on the existing usual algorithms which can find one minimum only. The computer will not scan the possible minimums in order to save computer time. The user should judge and select a least minimum during the iteration. The necessary parameters which will facilitate the judgement for each iteration are displayed in the screen and also output to the output file.

  For plots of relavant features of the regression calculation the user can set option for plot. There are four options for the plot. If plot = radiance-coverage computer will send radiance data against coverage data for further plotting radiance-coverage curves or figures to show the scatter of input data. This data will stored in ascii files named "curve.radiance_coverage_x1y", "curve.radiance_coverage_x2y" and "curve.radiance_coverage_x3y". If plot = vegetation-soil three ascii data files will be generated by the program for further figuers. Their names are "curve.veget_soil_x1x2", "curve.veget_soil_x1x3" and "curve.veget_soil_x2x3". If the user set plot = adequacy the program will generate residual data files for plotting figures of residuals against predictors and dependent variable to show the adequacy. These files named curve_residual_x1", "curve_residual_x2", "curve_residual_x3" and "curve_residual_y". If plot = all the program will generate all these above mentioned data files for further plotting of different figures.

  The program not only can calculate regression models but also can make prediction to new remote sensing data using the obtained model. The user can set option of predict = same to calculate regression model using part of one imagery data and predict vegetation coverage for another part of remote sensing data in the same imagery. If predict = other the program will use one imagery to get regression model and predict vegetation coverage for other imagery. If the user did not give any option for predict the program calculates model based on the whole input data and not conduct any prediction. The program still generate a set of "calculated vegetation coverage" using the obtained model and the same input data in order for the user to check the utility, goodness and confidencial status of the regression. r.rational.regression will be run non-interactively if the user specifies program arguments on the command line, using the form:

  r.rational.regression input=name output=name [check="phrase"] [predict="phrase"] [plot="phrase"] [calculat="phrase"]

  But after run, the computer will prompt the user to select model number.
  Alternately, the user can simply type:

  r.rational.regression

  on the command line without program arguments. In this case, the user will be prompted for parameter values using the standard GRASS user interface described in the manual entry for parser.

  ## OPTIONS

  ### Parameters:

  check="phrase"
    For check of multi-collinearity.
    Options: multx1, multx2, multx3
  calculat="phrase"
    Method of calculation for nonlinear regression.
    Options: rvi_linear, rvi_nonlinear, all
  plot="phrase"
    Name of data files generated by the program for further plotting.
    Options: radiance-coverage, vegetation-soil, adequacy, all
  predict=
    Fashion of prediction.
    Options: same, other

  ## SEE ALSO

  i.ndvi, r.linear.regression

  ## AUTHORS

  Hong C. Zhuang, U.S. Army Construction Engineering Research Laboratory Department of Electrical Computer Engeering, University of Illinois at Urbana-Champiagn.

  Michael Shapiro, U.S. Army Construction Engineering Research Laboratory.

  Last changed: $Date: 2002/01/25 05:45:34 $