This tutorial shows how the least trimmed squares regression, included in the TLinearFitter class, can be used for fitting in cases when the data contains outliers.
Here the fitting is done via the TGraph::Fit function with option "rob": If you want to use the linear fitter directly for computing the robust fitting coefficients, just use the TLinearFitter::EvalRobust function instead of TLinearFitter::Eval
Ordinary least squares:
****************************************
Minimizer is Linear / Migrad
Chi2 = 606758
NDf = 246
p0 = 15.724 +/- 0.0887641
p1 = -0.835912 +/- 0.14096
p2 = -3.40616 +/- 0.0607296
p3 = 4.82569 +/- 0.0602628
Resistant Least trimmed squares fit:
****************************************
Minimizer is Linear / Robust (h=0.75)
Chi2 = 634792
NDf = 246
p0 = 1.00953
p1 = 1.71148
p2 = 2.97937
p3 = 4.07752
{
int i;
y[i]=1 + 2*
x[i] + 3*
x[i]*
x[i] + 4*
x[i]*
x[i]*
x[i] +
e[i]*
r.Gaus();
}
y[i] = 1 + 2*
x[i] + 3*
x[i]*
x[i] + 4*
x[i]*
x[i]*
x[i] +
r.Landau(10, 5);
}
printf(
"Ordinary least squares:\n");
printf(
"Resistant Least trimmed squares fit:\n");
leg->AddEntry(
ffit1,
"Ordinary least squares",
"l");
leg->AddEntry(
ffit2,
"LTS regression",
"l");
}
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t r
A TGraphErrors is a TGraph with error bars.
This class displays a legend box (TPaveText) containing several legend entries.
This is the base class for the ROOT Random number generators.
- Author
- Anna Kreshuk
Definition in file fitLinearRobust.C.