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. ```