diff options
author | Laurent Balland-Poirier <laurent.balland-poirier@laposte.net> | 2014-03-05 10:43:54 +0100 |
---|---|---|
committer | Tomaž Vajngerl <quikee@gmail.com> | 2014-03-07 06:46:34 -0600 |
commit | cade56eef6d23aa7dd6e374858cf30ff3fcd163b (patch) | |
tree | 9c0deb41dcf1f64f03dc0b7a28a8863c012fa04c | |
parent | 58d0ba47f82e264e9b17c0e0d37bc043126d195d (diff) |
fdo#75538 R^2 calculation of trendline similar to LINEST function
Modify for forced intercept of trendline, calculation of R^2 in the same
way as LINEST function does calculation
Update fo 4.2
Change-Id: I06ba4e7f5e07f7db150e1bf1070870bf64ad6f61
Reviewed-on: https://gerrit.libreoffice.org/8462
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
Tested-by: Tomaž Vajngerl <quikee@gmail.com>
-rw-r--r-- | chart2/source/tools/PolynomialRegressionCurveCalculator.cxx | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/chart2/source/tools/PolynomialRegressionCurveCalculator.cxx b/chart2/source/tools/PolynomialRegressionCurveCalculator.cxx index 21b564d63d08..3c15d2831b18 100644 --- a/chart2/source/tools/PolynomialRegressionCurveCalculator.cxx +++ b/chart2/source/tools/PolynomialRegressionCurveCalculator.cxx @@ -168,7 +168,6 @@ void SAL_CALL PolynomialRegressionCurveCalculator::recalculateRegression( double aSumError = 0.0; double aSumTotal = 0.0; double aSumYpred2 = 0.0; - double aSumYactual2 = 0.0; for( sal_Int32 i = 0; i < aNoValues; i++ ) { @@ -177,15 +176,14 @@ void SAL_CALL PolynomialRegressionCurveCalculator::recalculateRegression( double yPredicted = getCurveValue( xValue ); aSumTotal += (yActual - yAverage) * (yActual - yAverage); aSumError += (yActual - yPredicted) * (yActual - yPredicted); - aSumYpred2 += yPredicted * yPredicted; - aSumYactual2 += yActual * yActual; + if(mForceIntercept) + aSumYpred2 += (yPredicted - mInterceptValue) * (yPredicted - mInterceptValue); } double aRSquared = 0.0; if(mForceIntercept) { - if(aSumYactual2 != 0.0) - aRSquared = aSumYpred2 / aSumYactual2; + aRSquared = aSumYpred2 / (aSumError + aSumYpred2); } else { |