/* $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]; } }