Minimizing the Poisson chi-square function
sivajip
I understand that in Igor the best values of the coefficients are the ones that minimize the value of Chi-square. Is it possible to use
Poisson chi-square function minimization
f(x)=2 \sum\limits_{i=1}^{N}(\mu_{i} - n_{i}ln\mu_{i})
instead of Chi-square minimization.
1) For a Poisson-distributed event-counting experiment, the data set is represented n_{i}, i = 1...N where each n_{i} is the measured number of events for bin i.
2) \mu_{i} is the fitted value for the point i.
Could anyone advice me on this matter.
Thanks and best regards,
Siva
For counting statistics, you can use normal least-squares fitting with a weighting wave equal to sqrt(counts). If you have bins with zero counts, you have to decide the correct approach- I believe a weight of 1 is commonly used.
John Weeks
WaveMetrics, Inc.
support@wavemetrics.com
August 18, 2016 at 11:47 am - Permalink
Thank you for the reply. I found this term "Poisson chi-square function" at a course note from University of Florida.
Please have a look at the page 11 and 12 of the PDF document from this link below.
http://www.phys.ufl.edu/courses/phy4803L/group_I/gamma_spec/poisson.pdf
In this document an effective chi-square statistic is defined from the Poisson likelihood. It is claimed that the process of maximizing the Poisson likelihood is equivalent to minimizing the Poisson chi-square function. My knowledge in statistics is not sound enough to judge this claim. It will be very kind of you if you could please have a look at this method.
Cheers,
Siva
August 18, 2016 at 04:21 pm - Permalink
August 18, 2016 at 06:40 pm - Permalink
It would also be possible to implement what that PDF describes using Igor's Optimize operation, though there will be some effort involved. And you would need to implement the process of optimizing with fixed and perturbed parameters in order to compute the errors. That might be done using a function that does the optimization using Optimize, then use that function with FindRoots to find where it increases the Poisson chi-square by 1.
John Weeks
WaveMetrics, Inc.
support@wavemetrics.com
August 19, 2016 at 09:40 am - Permalink
Hello Andrew, Thank you very much.
August 19, 2016 at 04:21 pm - Permalink
Hello Andrew, I managed to get it running with gencurvefit but its not giving the errors on the parameters (0 or NaN W_Sigma wave).
With FuncFit option its giving the errors on the parameters.
I tried No /MINF flag, /MINF=Chi2_CostFunc (given in gencurvefit help), /MINF=Chi2_Poisson1 and /MINF=Chi2_Poisson1 (I found two different Poisson cost functions in literature).
For NO /MINF flag and /MINF=Chi2_CostFunc cases W_sigma wave is filled with 0s.
/MINF=Chi2_Poisson1 and /MINF=Chi2 W_sigma wave is filled with NaN other than one column (=0) which was Held.
Limit waves are coef+/- 5%
It will be great if you could have a look at the experiment. Please find the attached file.
Cheers,
Siva
Command line used for different cases
•FuncFit/H="000000000000001"/NTHR=0 EEEGEEE coefs_HEMG DataY_counts[pcsr(A),pcsr(B)] /X=DataX_TOF /W=DataY_counts_err /I=1 /D /R
•Gencurvefit /hold=hold_HEMG /X=DataX_TOF /TOL=0.001 /R /L=100000 /W=DataY_counts_err HyperEMG,DataY_counts[pcsr(A),pcsr(B)] ,coefs_HEMG,"",limitsHEMG
•Gencurvefit /hold=hold_HEMG /X=DataX_TOF /MINF=Chi2_CostFunc /TOL=0.001 /R /L=100000 /W=DataY_counts_err HyperEMG,DataY_counts[pcsr(A),pcsr(B)] ,coefs_HEMG,"",limitsHEMG
•Gencurvefit /hold=hold_HEMG /X=DataX_TOF /MINF=Poisson_CostFunc1 /TOL=0.0001 /R /L=100000 /W=DataY_counts_err HyperEMG,DataY_counts[pcsr(A),pcsr(B)] ,coefs_HEMG,"",limitsHEMG
•Gencurvefit /hold=hold_HEMG /X=DataX_TOF /MINF=Poisson_CostFunc2 /TOL=0.0001 /R /L=100000 /W=DataY_counts_err HyperEMG,DataY_counts[pcsr(A),pcsr(B)] ,coefs_HEMG,"",limitsHEMG
August 21, 2016 at 10:27 am - Permalink
August 22, 2016 at 09:15 pm - Permalink