# Polynomial Regression in IronPython QuickStart Sample

Illustrates how to fit data to polynomials using the PolynomialRegressionModel class in IronPython.

View this sample in: C# Visual Basic F#

``````Python
import numerics

from Extreme.Mathematics import *
from Extreme.Statistics import *

# Illustrates the use of the PolynomialRegressionModel class
# to perform polynomial regression.

# Polynomial regression can be performed using
# the PolynomialRegressionModel class.
#
# This QuickStart sample uses data from the National Institute
# for Standards and Technology's Statistical Reference Datasets
# library at http:#www.itl.nist.gov/div898/strd/.

# Note that, due to round-off error, the results here will not be exactly
# the same as the NIST results, which were calculated using 500 digits
# of precision!

# We use the 'Pontius' dataset, which contains measurement data
# from the calibration of load cells. The independent variable is the load.
# The dependent variable is the deflection.
deflectionData = Vector([ \
.11019, .21956, .32949, .43899, .54803, .65694, \
.76562, .87487, .98292, 1.09146, 1.20001, 1.30822, \
1.41599, 1.52399, 1.63194, 1.73947, 1.84646, 1.95392, \
2.06128, 2.16844, .11052, .22018, .32939, .43886, \
.54798, .65739, .76596, .87474, .98300, 1.09150, \
1.20004, 1.30818, 1.41613, 1.52408, 1.63159, 1.73965, \
1.84696, 1.95445, 2.06177, 2.16829 ])
150000, 300000, 450000, 600000, 750000, 900000, \
1050000, 1200000, 1350000, 1500000, 1650000, 1800000, \
1950000, 2100000, 2250000, 2400000, 2550000, 2700000, \
2850000, 3000000, 150000, 300000, 450000, 600000, \
750000, 900000, 1050000, 1200000, 1350000, 1500000, \
1650000, 1800000, 1950000, 2100000, 2250000, 2400000, \
2550000, 2700000, 2850000, 3000000 ])

deflection = NumericalVariable("deflection", deflectionData)

# Now create the regression model. We supply the dependent and independent
# variable, and the degree of the polynomial:

# The Compute method performs the actual regression analysis.
model.Compute()

# The Parameters collection contains information about the regression
# parameters.
print "Variable                  Value   Std.Error   t-stat  p-Value"
for parameter in model.Parameters:
# Parameter objects have the following properties:
print "{0:19}{1:12.4e}{2:12.2e}{3:9.2f}{4:9.4f}".format( # Name, usually the name of the variable:
parameter.Name, # Estimated value of the parameter:
parameter.Value, # Standard error:
parameter.StandardError, # The value of the t statistic for the hypothesis that the parameter
# is zero.
parameter.Statistic, # Probability corresponding to the t statistic.
parameter.PValue)
print

# In addition to these properties, Parameter objects have a GetConfidenceInterval
# method that returns a confidence interval at a specified confidence level.
# Notice that individual parameters can be accessed using their numeric index.
# Parameter 0 is the intercept, if it was included.
confidenceInterval = model.Parameters[0].GetConfidenceInterval(0.95)
print "95% confidence interval for constant term: {0:.4e} - {1:.4e}".format(
confidenceInterval.LowerBound, confidenceInterval.UpperBound)
print

# There is also a wealth of information about the analysis available
# through various properties of the LinearRegressionModel object:
print "Residual standard error: {0:.3e}".format(model.StandardError)
print "R-Squared:               {0:.4f}".format(model.RSquared)