using System; using System.IO; using CenterSpace.NMath.Core; namespace CenterSpace.NMath.Examples.CSharp { /// <summary> /// A .NET example in C# showing how to perform multiple linear regression. /// </summary> class MultipleLinearRegressionExample { static void Main( string[] args ) { var dataStream = new StreamReader( "MultipleLinearRegressionExample.dat" ); // First read in the independent (or predictor) values. This is a matrix // with one column and a row for each amounts measurement. var longLatValues = new DoubleMatrix( dataStream ); // Next, read in the responses. These are the readings of the gas // chromatograph var janTemp = new DoubleVector( dataStream ); // Print out the amounts and responses values. Console.WriteLine(); Console.WriteLine( "Longitudes and latitudes =" ); Console.WriteLine( longLatValues.ToTabDelimited( "G7" ) ); Console.WriteLine(); Console.WriteLine( "January temperatures =" ); Console.WriteLine( janTemp ); Console.WriteLine(); var regression = new LinearRegression( longLatValues, janTemp, true ); var regressionAnova = new LinearRegressionAnova( regression ); var regressionStats = new DataFrame(); regressionStats.RowKeyHeader = "Source "; regressionStats.AddColumn( new DFNumericColumn( "Sum of Squares" ) ); var dfCol = new DFIntColumn( "df" ); regressionStats.AddColumn( dfCol ); regressionStats.AddColumn( new DFNumericColumn( "Mean Square" ) ); regressionStats.AddColumn( new DFNumericColumn( "F-ratio" ) ); regressionStats.AddRow( "Regression", regressionAnova.RegressionSumOfSquares, regressionAnova.ModelDegreesOfFreedom, regressionAnova.MeanSquaredRegression, regressionAnova.FStatistic ); regressionStats.AddRow( "Residual", regressionAnova.ResidualSumOfSquares, regressionAnova.ErrorDegreesOfFreedom, regressionAnova.MeanSquaredResidual, Double.NaN ); Console.WriteLine( "Dependent Variable is: January Temp" ); Console.WriteLine(); Console.WriteLine( "{0} total cases", regression.NumberOfObservations ); Console.WriteLine(); Console.WriteLine( "R squared = " + regressionAnova.RSquared.ToString( "P" ) ); Console.WriteLine( "R squared (adjusted) = " + regressionAnova.AdjustedRsquared.ToString( "P" ) ); Console.WriteLine( "s = {0} with {1} degrees of freedom", System.Math.Sqrt( regression.Variance ).ToString( "G5" ), regression.NumberOfObservations - regression.NumberOfParameters ); Console.WriteLine(); Console.WriteLine( regressionStats ); Console.WriteLine(); Console.WriteLine( "Press Enter Key" ); Console.Read(); } // Main } // class } // namespace← All NMath Code Examples