/* $RCSfile$
* $Author$
* $Date$
* $Revision$
*
* Copyright (C) 2004-2008 Rajarshi Guha <rajarshi.guha@gmail.com>
*
* Contact: cdk-devel@lists.sourceforge.net
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
* as published by the Free Software Foundation; either version 2.1
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*/
package org.openscience.cdk.qsar.model.R;
/**
* A class that wraps the return value from the R function, predict.lm.
*
* This is an internal class used by R to return the result of
* the call to <a href="http://stat.ethz.ch/R-manual/R-patched/library/stats/html/predict.lm.html">predict.lm</a>.
* As a result it should not be instantiated by the user. The actual modeling
* class, <code>LinearRegressionModel</code>, provides acess to the various
* fields of this object.
*
*
* @author Rajarshi Guha
* @cdk.require r-project
* @cdk.module qsar
* @cdk.githash
* @deprecated
*/
public class LinearRegressionModelPredict {
double[] pred, lwr, upr, sefit;
int degreesOfFreedom;
double residualScale;
/**
* Construct the object to contain linear regression predictions.
*
* @param predicted A 1-dimensional array of predicted values
* @param standardErrors A 1-dimensional array of standard errors of prediction
* @param lowerBounds A 1-dimensional array of lower confidence bounds
* @param upperBounds A 1-dimensional array of upper confidence bounds
* @param degreesOfFreedom The degrees of freedom of hte predictions
* @param residualScale The scale of the residuals
*/
public LinearRegressionModelPredict(double[] predicted, double[] standardErrors,
double[] lowerBounds, double[] upperBounds,
int degreesOfFreedom, double residualScale) {
setPredicted(predicted);
setSEFit(standardErrors);
setLower(lowerBounds);
setUpper(upperBounds);
setDF(degreesOfFreedom);
setResidualScale(residualScale);
}
/**
* Construct the object to contain linear regression predictions.
*
* This is required if a single prediction was requested in which case
* R will pass a single double value rather than an array.
*
* @param predicted The predicted values
* @param standardErrors The standard errors of prediction
* @param lowerBounds The lower confidence bounds
* @param upperBounds The upper confidence bounds
* @param degreesOfFreedom The degrees of freedom of hte predictions
* @param residualScale The scale of the residuals
*/
public LinearRegressionModelPredict(double predicted, double standardErrors,
double lowerBounds, double upperBounds,
int degreesOfFreedom, double residualScale) {
setPredicted(new double[] {predicted});
setSEFit(new double[] {standardErrors});
setLower(new double[] {lowerBounds});
setUpper(new double[] {upperBounds});
setDF(degreesOfFreedom);
setResidualScale(residualScale);
}
/**
* Get the degrees of freedom.
*
* @return An integer indicating the degrees of freedom
* @see #setDF
*/
public int getDF() { return(this.degreesOfFreedom); }
/**
* Set the degrees of freedom.
*
* This method should not be called outside this class
*
* @param degreesOfFreedom An integer indicating the degrees of freedom
* @see #getDF
*/
public void setDF(int degreesOfFreedom) { this.degreesOfFreedom = degreesOfFreedom; }
/**
* Get the scale of residuals.
*
* @return A double indicating the residual scale
* @see #setResidualScale
*/
public double getResidualScale() { return(this.residualScale); }
/**
* Set the scale of the residuals.
*
* This method should not be called outside this class
*
* @param scale The scale of the residuals
* @see #getResidualScale
*/
public void setResidualScale(double scale) { this.residualScale = scale; }
/**
* Get predicted values.
*
* Get the predictions for a set of observations from the current linear
* regression fit
*
* @return A 1-dimensional array containing the predicted values
* @see #setPredicted
*/
public double[] getPredicted() { return(this.pred); }
/**
* Set the predicted values.
*
* This method should not be called outside this class
*
* @param predicted A 1-dimensional array of predicted values
* @see #getPredicted
*/
public void setPredicted(double[] predicted) {
this.pred = new double[predicted.length];
for (int i = 0; i < predicted.length; i++) this.pred[i] = predicted[i];
}
/**
* Get the lower confidence bounds.
*
* Gets the lower confidence bounds for the predicted values of
* the observations
*
* @return A 1-dimensional array of lower confidence bounds
* @see #setLower
*/
public double[] getLower() { return(this.lwr); }
/**
* Set the lower confidence bounds.
*
* This method should not be called outside this class
*
* @param lowerBounds A 1-dimensional array of lower confidence bounds
* @see #getLower
*/
public void setLower(double[] lowerBounds) {
this.lwr = new double[lowerBounds.length];
for (int i = 0; i < lowerBounds.length; i++) this.lwr[i] = lowerBounds[i];
}
/**
* Get the upper confidence bounds.
*
* Gets the upper confidence bounds for the predicted values of
* the observations
*
* @return A 1-dimensional array of upper confidence bounds
* @see #setUpper
*/
public double[] getUpper() { return(this.upr); }
/**
* Set the upper confidence bounds.
*
* This method should not be called outside this class
*
* @param upperBounds A 1-dimensional array of upper confidence bounds
* @see #getUpper
*/
public void setUpper(double[] upperBounds) {
this.upr = new double[upperBounds.length];
for (int i = 0; i < upperBounds.length; i++) this.upr[i] = upperBounds[i];
}
/**
* Get the standard errors of prediction.
*
* @return A 1-dimensional array of standard errors
* @see #setSEFit
*/
public double[] getSEFit() { return(this.sefit); }
/**
* Set the standard errors of predictions.
*
* @param standardErrors A 1-dimensional array of standard errors
* @see #getSEFit
*/
public void setSEFit(double[] standardErrors) {
this.sefit = new double[standardErrors.length];
for (int i = 0; i < standardErrors.length; i++) this.sefit[i] = standardErrors[i];
}
}