private double GetValue() { //var yDispersion = StatCharacteristicModel.StandartDeviationSkew.GetValue(lr.yData); //yDispersion *= yDispersion; //return 1 - (lr.N - lr.Scores.Count) * lr.ResiduesDisp / (lr.N * yDispersion); double top = 0; double bottom = 0; for (int i = 0; i < lr.N; i++) { top += (lr.yData[i] - lr.Calculate(lr.xData[i])) * (lr.yData[i] - lr.Calculate(lr.xData[i])); bottom += (lr.yData[i] - lr.yavg) * (lr.yData[i] - lr.yavg); } return(1 - top / bottom); }
private void FillLinearRegressionSeria(Regression lr) { sLinearRegression.Points.Clear(); sRegressionInterval.Points.Clear(); sPrognosisInterval.Points.Clear(); foreach (var x in xData) { var regressionValue = lr.Calculate(x); sLinearRegression.Points.Add(new DataPoint(x, regressionValue)); var regresstionIntervalBelow = lr.GetRegressionIntervalBelow(x); var regresstionIntervalTop = lr.GetRegressionIntervalTop(x); sRegressionInterval.Points.Add(new DataPoint(x, regresstionIntervalBelow)); sRegressionInterval.Points.Add(new DataPoint(x, regresstionIntervalTop)); var prognosisIntervalBelow = lr.GetPrognosisIntervalBelow(x); var prognosisIntervalTop = lr.GetPrognosisIntervalTop(x); sPrognosisInterval.Points.Add(new DataPoint(x, prognosisIntervalBelow)); sPrognosisInterval.Points.Add(new DataPoint(x, prognosisIntervalTop)); } }