Hi,
lets assume I have a 3- or more-dimensional parameter room and many input-parameters like
f(x0,x1,x2) = value.
I would like to create a polynomial model in order to create a prediction model
I tried to play around with TLinearFitter and created a function of the type:
“1 ++ x[0] ++ x[1] ++ x[2] ++ x[0]*x[0] ++ x[1]*x[1] ++ x[0]*x[1] ++ x[1]*x[2] ++ x[0]*x[2]”
The fit is working I am able to obtain fit parameters and errors.
Now I would like to create a prediction model. In particular I would like to obtain the confidence interval in variation of the position (x0,x1,x2). I create two function:
Double_t GetValue(TLinearFitter *myFit, Double_t par0, Double_t par1, Double_t par2) {
TVectorD params;
myFit->GetParameters(params);
float fitResult = params(0)
+ params(1)*par0
+ params(2)*par1
+ params(3)*par2
+ params(4)*par0*par0
+ params(5)*par1*par1
+ params(6)*par0*par1
+ params(7)*par1*par2
+ params(8)*par0*par2;
return fitResult;
}
Double_t GetError(TLinearFitter *myFit, Double_t par0, Double_t par1, Double_t par2) {
TVectorD errors;
myFit->GetErrors(errors);
float fitResult = sqrt(
std::pow(errors(0),2)
+ std::pow((errors(1)*par0),2)
+ std::pow((errors(2)*par1),2)
+ std::pow((errors(3)*par2),2)
+ std::pow((errors(4)*par0*par0),2)
+ std::pow((errors(5)*par1*par1),2)
+ std::pow((errors(6)*par0*par1),2)
+ std::pow((errors(7)*par1*par2),2)
+ std::pow((errors(8)*par0*par2),2)
);
return fitResult;
}
The values are correct, but for me it seems that the errors are too large.
Is there another method? Again, I need a confidence inverval(h=0.95) for a point in that prediction model having the meaning: "The confidence interval that the point y at the position x0,x1,x2 is between [a,b] is 95%
Maybe @moneta has an idea?
Georg