Got you
I think you need to do this in combination with SQL as well
but see this link if it helps
Multiple Regression - Free Statistics and Forecasting Software (Calculators) v.1.1.23-r7[
^]
but if it doesn't then, see the code below
Have you tried Matrix logic -
Matrix y = new Matrix(
new double[,]{{745},
{895},
{442},
{440},
{1598}});
Matrix x = new Matrix(
new double[,]{{1, 36, 66},
{1, 37, 68},
{1, 47, 64},
{1, 32, 53},
{1, 1, 101}});
Matrix b = (x.Transpose() * x).Inverse() * x.Transpose() * y;
for (int i = 0; i < b.Rows; i++)
{
Trace.WriteLine("INFO: " + b[i, 0].ToDouble());
}
_StatConn.EvaluateNoReturn(string.Format("output <- lm({0})", equation));
object intercept = _StatConn.Evaluate("coefficients(output)['(Intercept)']");
parameters[0] = (double)intercept;
for (int i = 0; i < xColCount; i++)
{
object parameter = _StatConn.Evaluate(string.Format("coefficients(output)['x{0}']", i));
parameters[i + 1] = (double)parameter;
}
public void Foo(List<Sample> samples)
{
int nAttributes = 3;
int nSamples = samples.Count;
double[,] tsData = new double[nSamples, nAttributes];
double[] resultData = new double[nSamples];
for (int i = 0; i < samples.Count; i++)
{
tsData[i, 0] = samples[i].Tminus1min;
tsData[i, 1] = samples[i].Tminus2min;
tsData[i, 2] = samples[i].Tminus3min;
resultData[i] = samples[i].Final;
}
double[] weights = null;
int fitResult = 0;
alglib.lsfit.lsfitreport rep = new alglib.lsfit.lsfitreport();
alglib.lsfit.lsfitlinear(resultData, tsData, nSamples, nAttributes, ref fitResult, ref weights, rep);
Dictionary<string, double> labelsAndWeights = new Dictionary<string, double>();
labelsAndWeights.Add("1min", weights[0]);
labelsAndWeights.Add("2min", weights[1]);
labelsAndWeights.Add("3min", weights[2]);
}