Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
02/05/15 16:09:10 (10 years ago)
Author:
ascheibe
Message:

#2031 implemented review comments

Location:
trunk/sources/HeuristicLab.Analysis/3.3/Statistics/Fitting
Files:
1 added
4 moved

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Analysis/3.3/Statistics/Fitting/ExpFitting.cs

    r11913 r11914  
    2525namespace HeuristicLab.Analysis.Statistics {
    2626  public class ExpFitting : IFitting {
    27     private void LogFunc(double[] c, double[] x, ref double func, object obj) {
     27    private void ExpFunc(double[] c, double[] x, ref double func, object obj) {
    2828      func = Math.Exp(-c[0] * Math.Pow(x[0], 2));
    2929    }
     
    3434    }
    3535
    36     public void Calculate(double[] dataPoints, out double p0, out double p1) {
     36    public void Calculate(double[] dataPoints, out double p0) {
    3737      var stdX = GetDefaultXValues(dataPoints.Count());
    38       Calculate(dataPoints, stdX, out p0, out p1);
     38      Calculate(dataPoints, stdX, out p0);
    3939    }
    4040
    41     public void Calculate(double[] y, double[] x, out double p0, out double p1) {
     41    public void Calculate(double[] y, double[] x, out double p0) {
    4242      if (y.Count() != x.Count()) {
    4343        throw new ArgumentException("The lenght of x and y needs do be equal. ");
     
    6060      alglib.lsfitcreatef(xx, y, c, diffstep, out state);
    6161      alglib.lsfitsetcond(state, epsf, epsx, maxits);
    62       alglib.lsfitfit(state, LogFunc, null, null);
     62      alglib.lsfitfit(state, ExpFunc, null, null);
    6363      alglib.lsfitresults(state, out info, out c, out rep);
    6464
    6565      p0 = c[0];
    66       p1 = c[0];
    6766    }
    6867
    69     public DataRow CalculateFittedLine(double[] dataPoints, string rowName) {
    70       DataRow newRow = new DataRow(rowName);
    71       double c0, c1;
    72       Calculate(dataPoints, out c0, out c1);
     68    public DataRow CalculateFittedLine(double[] dataPoints) {
     69      DataRow newRow = new DataRow();
     70      double c0;
     71      Calculate(dataPoints, out c0);
    7372      var stdX = GetDefaultXValues(dataPoints.Count());
    7473
     
    8079    }
    8180
    82     public DataRow CalculateFittedLine(double[] y, double[] x, string rowName) {
    83       DataRow newRow = new DataRow(rowName);
    84       double c0, c1;
    85       Calculate(y, x, out c0, out c1);
     81    public DataRow CalculateFittedLine(double[] y, double[] x) {
     82      DataRow newRow = new DataRow();
     83      double c0;
     84      Calculate(y, x, out c0);
    8685
    8786      for (int i = 0; i < x.Count(); i++) {
  • trunk/sources/HeuristicLab.Analysis/3.3/Statistics/Fitting/IFitting.cs

    r11913 r11914  
    2222namespace HeuristicLab.Analysis.Statistics {
    2323  public interface IFitting {
    24     void Calculate(double[] dataPoints, out double p0, out double p1);
    25     void Calculate(double[] y, double[] x, out double p0, out double p1);
    26 
    27     DataRow CalculateFittedLine(double[] dataPoints, string rowName);
    28     DataRow CalculateFittedLine(double[] y, double[] x, string rowName);
     24    DataRow CalculateFittedLine(double[] dataPoints);
     25    DataRow CalculateFittedLine(double[] y, double[] x);
    2926  }
    3027}
  • trunk/sources/HeuristicLab.Analysis/3.3/Statistics/Fitting/LinearLeastSquaresFitting.cs

    r11913 r11914  
    2525namespace HeuristicLab.Analysis.Statistics {
    2626  public class LinearLeastSquaresFitting : IFitting {
    27     public void Calculate(double[] dataPoints, out double p0, out double p1) {
     27    public void Calculate(double[] dataPoints, out double slope, out double intercept) {
    2828      var stdX = Enumerable.Range(0, dataPoints.Count()).Select(x => (double)x).ToArray();
    29       Calculate(dataPoints, stdX, out p0, out p1);
     29      Calculate(dataPoints, stdX, out slope, out intercept);
    3030    }
    3131
    32     public void Calculate(double[] y, double[] x, out double p0, out double p1) {
     32    public void Calculate(double[] y, double[] x, out double slope, out double intercept) {
    3333      if (y.Count() != x.Count()) {
    3434        throw new ArgumentException("The lenght of x and y needs do be equal. ");
     
    4848      }
    4949
    50       p0 = (sxy - (n * avgx * avgy)) / (sxx - (n * avgx * avgx));
    51       p1 = avgy - p0 * avgx;
     50      slope = (sxy - (n * avgx * avgy)) / (sxx - (n * avgx * avgx));
     51      intercept = avgy - slope * avgx;
    5252    }
    5353
    54     public double CalculateError(double[] dataPoints, double p0, double p1) {
     54    public double CalculateError(double[] dataPoints, double slope, double intercept) {
    5555      double r;
    5656      double avgy = dataPoints.Average();
     
    5959
    6060      for (int i = 0; i < dataPoints.Count(); i++) {
    61         double y = p0 * i + p1;
     61        double y = slope * i + intercept;
    6262        sstot += Math.Pow(dataPoints[i] - avgy, 2);
    6363        sserr += Math.Pow(dataPoints[i] - y, 2);
     
    6868    }
    6969
    70     public DataRow CalculateFittedLine(double[] y, double[] x, string rowName) {
    71       double k, d;
    72       Calculate(y, x, out k, out d);
     70    public DataRow CalculateFittedLine(double[] y, double[] x) {
     71      double slope, intercept;
     72      Calculate(y, x, out slope, out intercept);
    7373
    74       DataRow newRow = new DataRow(rowName);
     74      DataRow newRow = new DataRow();
    7575      for (int i = 0; i < x.Count(); i++) {
    76         newRow.Values.Add(k * x[i] + d);
     76        newRow.Values.Add(slope * x[i] + intercept);
    7777      }
    7878      return newRow;
    7979    }
    8080
    81     public DataRow CalculateFittedLine(double[] dataPoints, string rowName) {
    82       DataRow newRow = new DataRow(rowName);
    83       double c0, c1;
    84       Calculate(dataPoints, out c0, out c1);
     81    public DataRow CalculateFittedLine(double[] dataPoints) {
     82      DataRow newRow = new DataRow();
     83      double slope, intercept;
     84      Calculate(dataPoints, out slope, out intercept);
    8585      var stdX = Enumerable.Range(0, dataPoints.Count()).Select(x => (double)x).ToArray();
    8686
    8787      for (int i = 0; i < stdX.Count(); i++) {
    88         newRow.Values.Add(c0 * stdX[i] + c1);
     88        newRow.Values.Add(slope * stdX[i] + intercept);
    8989      }
    9090
  • trunk/sources/HeuristicLab.Analysis/3.3/Statistics/Fitting/LogFitting.cs

    r11913 r11914  
    6767    }
    6868
    69     public DataRow CalculateFittedLine(double[] dataPoints, string rowName) {
    70       DataRow newRow = new DataRow(rowName);
     69    public DataRow CalculateFittedLine(double[] dataPoints) {
     70      DataRow newRow = new DataRow();
    7171      double c0, c1;
    7272      Calculate(dataPoints, out c0, out c1);
     
    8080    }
    8181
    82     public DataRow CalculateFittedLine(double[] y, double[] x, string rowName) {
    83       DataRow newRow = new DataRow(rowName);
     82    public DataRow CalculateFittedLine(double[] y, double[] x) {
     83      DataRow newRow = new DataRow();
    8484      double c0, c1;
    8585      Calculate(y, x, out c0, out c1);
Note: See TracChangeset for help on using the changeset viewer.