Simple Regression in IronPython QuickStart Sample

Illustrates how to perform a simple linear regression using the SimpleRegressionModel 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 SimpleRegressionModel class 
# to perform multiple linear regression.

# Simple linear regression can be performed using 
# the SimpleRegressionModel class. There are some special constructors
# for simple linear regression, with only one independent variable.
#
# 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!

# Model 1 uses the 'NoInt1' dataset. The model has no intercept.

# First, we construct Double arrays containing the data for
# the dependent and independent variables.
yData1 = Vector([ 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140 ])
xData1 = Vector([ 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70 ])

# Next, we create the regression model. We can pass the data arrays directly.
model1 = SimpleRegressionModel(yData1, xData1)
model1.NoIntercept = True
model1.Compute()

for parameter in model1.Parameters:
	print parameter.ToString()
print "Residual standard error: {0:.2f}".format(model1.StandardError)
print "R-Squared: {0:.3f}".format(model1.RSquared)
print "Adjusted R-Squared: {0:.3f}".format(model1.AdjustedRSquared)
print "F-statistic: {0:.3f}".format(model1.FStatistic)

print model1.AnovaTable.ToString()

# Model 2 uses the 'Norris' dataset.

print "\n\nModel 2"
yData2 = Vector([ 0.1, 338.8, 118.1, 888.0, 9.2, 228.1, 668.5, 998.5, \
    449.1, 778.9, 559.2, 0.3, 0.1, 778.1, 668.8, 339.3, 448.9, \
    10.8, 557.7, 228.3, 998.0, 888.8, 119.6, 0.3, 0.6, 557.6, \
    339.3, 888.0, 998.5, 778.9,  10.2 , 117.6, 228.9, 668.4, \
    449.2,   0.2 ])
dependent2 = NumericalVariable("y", yData2)
xData2 = Vector([ 0.2, 337.4, 118.2, 884.6, 10.1, 226.5, 666.3, 996.3, \
    448.6, 777.0, 558.2, 0.4, 0.6, 775.5, 666.9, 338.0, 447.5, \
    11.6, 556.0, 228.1, 995.8, 887.6, 120.2, 0.3, 0.3, 556.8, \
    339.1, 887.2, 999.0, 779.0, 11.1, 118.3, 229.2, 669.1, \
    448.9, 0.5 ])
independent2 = NumericalVariable("x", xData2)

# Next, we create the regression model, using the NumericalVariable objects
# we just created:
model2 = SimpleRegressionModel(dependent2, independent2)
model2.Compute()

for parameter in model2.Parameters:
	print parameter.ToString()
print "Residual standard error: {0:.8f}".format(model2.StandardError)
print "R-Squared: {0:.8f}".format(model2.RSquared)
print "Adjusted R-Squared: {0:.8f}".format(model2.AdjustedRSquared)
print "F-statistic: {0:.3f}".format(model2.FStatistic)

print model2.AnovaTable.ToString()

# The data can also be supplied as two float arrays.
# This is not illustrated here.
```