In this example, we fit the polynomial
. For this model, the user basis function is
with
and hasIntercept=true
.
Data are generated using the model
with
.
import com.imsl.stat.*;
import com.imsl.math.*;
public class UserBasisRegressionEx2 {
public static void main(String args[]) {
class Basis implements RegressionBasis {
public double basis(int index, double x) {
// Notice zero-based indexing requires index be incremented
return Math.pow(x,index+1);
}
}
UserBasisRegression ubr =
new UserBasisRegression(new Basis(), 4, true);
for (double x = 0; x < 10; x++) {
double y = 10.0+x+3*Math.pow(x,3);
ubr.update(x, y, 1.0);
}
// Print the regression coefficients
double coef[] = ubr.getCoefficients();
new PrintMatrix("The regression coefficients are:").print(coef);
// Print the Anova Table
ANOVA anovaTable= ubr.getANOVA();
System.out.println("Degrees Of Freedom For Model: "+
anovaTable.getDegreesOfFreedomForModel());
System.out.println("Degrees Of Freedom For Error: "+
anovaTable.getDegreesOfFreedomForError());
System.out.println("Total (Corrected) Degrees Of Freedom: "+
anovaTable.getTotalDegreesOfFreedom());
System.out.println("Sum Of Squares For Model: "+
anovaTable.getSumOfSquaresForModel());
System.out.println("Sum Of Squares For Error: "+
anovaTable.getSumOfSquaresForError());
System.out.println("Total (Corrected) Sum Of Squares: "+
anovaTable.getTotalSumOfSquares());
System.out.println("Model Mean Square: "+
anovaTable.getModelMeanSquare());
System.out.println("Error Mean Square: "+
anovaTable.getErrorMeanSquare());
System.out.println("F statistic: "+
anovaTable.getF());
System.out.println("P value: "+
anovaTable.getP());
System.out.println("R Squared (in percent): "+
anovaTable.getRSquared());
System.out.println("Adjusted R Squared (in percent): "+
anovaTable.getAdjustedRSquared());
System.out.println("Model Error Standard deviation: "+
anovaTable.getModelErrorStdev());
System.out.println("Mean Of Y: "+
anovaTable.getMeanOfY());
System.out.println("Coefficient Of Variation (in percent): "+
anovaTable.getCoefficientOfVariation());
}
}
The regression coefficients are: 0 0 10 1 1 2 -0 3 3 4 -0 Degrees Of Freedom For Model: 4.0 Degrees Of Freedom For Error: 5.0 Total (Corrected) Degrees Of Freedom: 9.0 Sum Of Squares For Model: 5152487.999999998 Sum Of Squares For Error: 1.862645149230957E-9 Total (Corrected) Sum Of Squares: 5152488.0 Model Mean Square: 1288121.9999999995 Error Mean Square: 3.7252902984619143E-10 F statistic: 3.4577761645363185E15 P value: 8.696627855641336E-39 R Squared (in percent): 99.99999999999997 Adjusted R Squared (in percent): 99.99999999999993 Model Error Standard deviation: 1.9301011109426144E-5 Mean Of Y: 622.0 Coefficient Of Variation (in percent): 3.103056448460795E-6Link to Java source.