Hi,
at the moment i am doing a measurement (or actual multiple measurements) where i have two highly anti-correlated parameters.
Specifically i have these parameters.
N_tot = 250.053 +/- 16.6388 (limited)
R_c = 2.68118 +/- 1.08419 (limited)
f_W0 = 0.310684 +/- 0.655279 (limited)
f_Z0 = 0.299184 +/- 0.64911 (limited)
with their uncertainties before hesse and minos.
for the parameters i have set hard bounds of:
N_tot: [0,2500]
R_c : [0,5]
f_W0: [0,1]
f_Z0: [0,1]
that come from physical considerations.
Here are is an example post fit correlation plot
Depending on the pseudo data that i fit this to either one or both parameters get invalid minimums.
Here is the part of the log where it tries to get the f_W0 errors.
Minuit2Minimizer::GetMinosError for parameter 2 f_W0 using max-calls 2000, tolerance 1
MnFunctionCross: parameter 0 set to -0.343554
MnSeedGenerator: for initial parameters FCN = -515.4510394003
MnSeedGenerator: Initial state: - FCN = -515.4510394003 Edm = 9.73552 NCalls = 11
MnSeedGenerator: Negative G2 found - new state: - FCN = -515.4510394003 Edm = 7.26966 NCalls = 11
VariableMetric: start iterating until Edm is < 0.0005
VariableMetric: Initial state - FCN = -515.4510394003 Edm = 7.26966 NCalls = 11
VariableMetric: Iteration # 0 - FCN = -515.4510394003 Edm = 7.26966 NCalls = 11
VariableMetric: Iteration # 1 - FCN = -521.4728404213 Edm = 0.0102232 NCalls = 19
VariableMetric: Iteration # 2 - FCN = -521.4815929396 Edm = 7.04251e-06 NCalls = 26
MnFunctionCross: parameter 0 set to 5.55112e-17
MnSeedGenerator: for initial parameters FCN = -521.4815929396
MnSeedGenerator: Initial state: - FCN = -521.4815929396 Edm = 6.90865e-06 NCalls = 9
MnSeedGenerator: Negative G2 found - new state: - FCN = -521.4815929396 Edm = 6.49545e-06 NCalls = 9
VariableMetric: start iterating until Edm is < 0.0005
VariableMetric: Initial state - FCN = -521.4815929396 Edm = 6.49545e-06 NCalls = 9
VariableMetric: Iteration # 0 - FCN = -521.4815929396 Edm = 6.49545e-06 NCalls = 9
VariableMetric: Iteration # 1 - FCN = -521.4815994777 Edm = 7.77104e-10 NCalls = 16
MnFunctionCross: parameter 0 set to 0.654239
MnSeedGenerator: for initial parameters FCN = -494.9418758621
MnSeedGenerator: Initial state: - FCN = -494.9418758621 Edm = 1781.75 NCalls = 11
VariableMetric: start iterating until Edm is < 0.0005
VariableMetric: Initial state - FCN = -494.9418758621 Edm = 1781.75 NCalls = 11
VariableMetric: Iteration # 0 - FCN = -494.9418758621 Edm = 1781.75 NCalls = 11
VariableMetric: Iteration # 1 - FCN = -525.5371272243 Edm = 1.74369 NCalls = 29
VariableMetric: Iteration # 2 - FCN = -526.0781211432 Edm = 0.118481 NCalls = 39
VariableMetric: Iteration # 3 - FCN = -526.2314824381 Edm = 0.027502 NCalls = 49
VariableMetric: Iteration # 4 - FCN = -526.2700076465 Edm = 0.00192152 NCalls = 58
VariableMetric: Iteration # 5 - FCN = -526.272904085 Edm = 0.00068266 NCalls = 66
VariableMetric: Iteration # 6 - FCN = -526.2738723361 Edm = 3.54075e-05 NCalls = 74
MnFunctionCross: parameter 0 set to 0.687609
MnSeedGenerator: for initial parameters FCN = -525.8668114997
MnSeedGenerator: Initial state: - FCN = -525.8668114997 Edm = 0.00148695 NCalls = 7
VariableMetric: start iterating until Edm is < 0.0005
VariableMetric: Initial state - FCN = -525.8668114997 Edm = 0.00148695 NCalls = 7
VariableMetric: Iteration # 0 - FCN = -525.8668114997 Edm = 0.00148695 NCalls = 7
VariableMetric: Iteration # 1 - FCN = -525.8680983704 Edm = 1.65737e-05 NCalls = 15
Info in <Minuit2>: MnMinos could not find Lower Value for Parameter : par_name = f_W0
MnFunctionCross: parameter 0 set to 0.964923
MnSeedGenerator: for initial parameters FCN = -508.1906705745
MnSeedGenerator: Initial state: - FCN = -508.1906705745 Edm = 0.697507 NCalls = 11
MnSeedGenerator: Negative G2 found - new state: - FCN = -518.220374132 Edm = 0.116042 NCalls = 41
VariableMetric: start iterating until Edm is < 0.0005
VariableMetric: Initial state - FCN = -518.220374132 Edm = 0.116042 NCalls = 41
VariableMetric: Iteration # 0 - FCN = -518.220374132 Edm = 0.116042 NCalls = 41
VariableMetric: Iteration # 1 - FCN = -518.3325128181 Edm = 0.000380873 NCalls = 48
VariableMetric: Iteration # 2 - FCN = -518.33285135 Edm = 1.69704e-09 NCalls = 56
MnFunctionCross: parameter 0 set to 0.637804
MnSeedGenerator: for initial parameters FCN = -526.4200226397
MnSeedGenerator: Initial state: - FCN = -526.4200226397 Edm = 0.0129311 NCalls = 9
VariableMetric: start iterating until Edm is < 0.0005
VariableMetric: Initial state - FCN = -526.4200226397 Edm = 0.0129311 NCalls = 9
VariableMetric: Iteration # 0 - FCN = -526.4200226397 Edm = 0.0129311 NCalls = 9
VariableMetric: Iteration # 1 - FCN = -526.4341208549 Edm = 0.000800544 NCalls = 17
VariableMetric: Iteration # 2 - FCN = -526.4358426168 Edm = 9.61531e-08 NCalls = 25
MnFunctionCross: parameter 0 set to 0.634475
MnSeedGenerator: for initial parameters FCN = -526.465620497
MnSeedGenerator: Initial state: - FCN = -526.465620497 Edm = 2.96187e-05 NCalls = 9
VariableMetric: start iterating until Edm is < 0.0005
VariableMetric: Initial state - FCN = -526.465620497 Edm = 2.96187e-05 NCalls = 9
VariableMetric: Iteration # 0 - FCN = -526.465620497 Edm = 2.96187e-05 NCalls = 9
VariableMetric: Iteration # 1 - FCN = -526.4656508325 Edm = 4.70918e-08 NCalls = 16
MnFunctionCross: parameter 0 set to 0.628594
MnSeedGenerator: for initial parameters FCN = -526.5157496104
MnSeedGenerator: Initial state: - FCN = -526.5157496104 Edm = 0.000114849 NCalls = 9
VariableMetric: start iterating until Edm is < 0.0005
VariableMetric: Initial state - FCN = -526.5157496104 Edm = 0.000114849 NCalls = 9
VariableMetric: Iteration # 0 - FCN = -526.5157496104 Edm = 0.000114849 NCalls = 9
VariableMetric: Iteration # 1 - FCN = -526.5158661952 Edm = 3.16208e-08 NCalls = 16
Minos: Invalid lower error for parameter f_W0
Minos: Lower error for parameter f_W0 : -0.654239
Minos: Upper error for parameter f_W0 : 0.317623
in a slightly different setup i get something like this:
Minuit2Minimizer::GetMinosError for parameter 3 f_WZLT using max-calls 12000, tolerance 1
MnFunctionCross: parameter 0 set to -0.697167
MnSeedGenerator: for initial parameters FCN = -418.3355447846
MnSeedGenerator: Initial state: - FCN = -418.3355447846 Edm = 4720.43 NCalls = 93
MnSeedGenerator: Negative G2 found - new state: - FCN = -418.3355447846 Edm = 3.52679 NCalls = 93
VariableMetric: start iterating until Edm is < 0.0005
VariableMetric: Initial state - FCN = -418.3355447846 Edm = 3.52679 NCalls = 93
VariableMetric: Iteration # 0 - FCN = -418.3355447846 Edm = 3.52679 NCalls = 93
Info in <Minuit2>: VariableMetricBuilder: no improvement in line search
VariableMetric: Iteration # 1 - FCN = -418.3355447846 Edm = 3.52679 NCalls = 98
Info in <Minuit2>: VariableMetricBuilder: iterations finish without convergence.
Info in <Minuit2>: VariableMetricBuilder : edm = 14.1072
Info in <Minuit2>: requested : edmval = 0.0005
Info in <Minuit2>: VariableMetricBuilder: INVALID function minimum - edm is above tolerance, : edm = 3.52679
Info in <Minuit2>: VariableMetricBuilder: Required tolerance is 10 x edmval : edmval = 0.0005
Info in <Minuit2>: MnMinos could not find Lower Value for Parameter : par_name = f_WZLT
MnFunctionCross: parameter 0 set to 0.820094
MnSeedGenerator: for initial parameters FCN = -389.1211953927
MnSeedGenerator: Initial state: - FCN = -389.1211953927 Edm = 0 NCalls = 93
MnSeedGenerator: Negative G2 found - new state: - FCN = -389.1211953927 Edm = 0 NCalls = 93
VariableMetric: start iterating until Edm is < 0.0005
VariableMetric: Initial state - FCN = -389.1211953927 Edm = 0 NCalls = 93
VariableMetric: Iteration # 0 - FCN = -389.1211953927 Edm = 0 NCalls = 93
MnFunctionCross: parameter 0 set to 0.440779
MnSeedGenerator: for initial parameters FCN = -446.5055263959
MnSeedGenerator: Initial state: - FCN = -446.5055263959 Edm = 113245 NCalls = 93
VariableMetric: start iterating until Edm is < 0.0005
VariableMetric: Initial state - FCN = -446.5055263959 Edm = 113245 NCalls = 93
VariableMetric: Iteration # 0 - FCN = -446.5055263959 Edm = 113245 NCalls = 93
VariableMetric: Iteration # 1 - FCN = -518.261482895 Edm = 56540.8 NCalls = 154
VariableMetric: Iteration # 2 - FCN = -520.7580146987 Edm = 586.983 NCalls = 209
VariableMetric: Iteration # 3 - FCN = -522.4948308502 Edm = 9.39696 NCalls = 259
VariableMetric: Iteration # 4 - FCN = -522.5301500962 Edm = 4.18302 NCalls = 308
VariableMetric: Iteration # 5 - FCN = -522.558431035 Edm = 2.90101 NCalls = 357
VariableMetric: Iteration # 6 - FCN = -522.6439823471 Edm = 7.61813 NCalls = 405
VariableMetric: Iteration # 7 - FCN = -522.7534376083 Edm = 1.03794 NCalls = 453
VariableMetric: Iteration # 8 - FCN = -522.7924650526 Edm = 1.21882 NCalls = 501
VariableMetric: Iteration # 9 - FCN = -522.800969863 Edm = 0.763302 NCalls = 550
VariableMetric: Iteration # 10 - FCN = -522.8359927976 Edm = 2.48262 NCalls = 598
VariableMetric: Iteration # 11 - FCN = -522.8763799712 Edm = 1.18746 NCalls = 646
VariableMetric: Iteration # 12 - FCN = -522.889016906 Edm = 0.128825 NCalls = 694
VariableMetric: Iteration # 13 - FCN = -522.8940088352 Edm = 0.771101 NCalls = 742
VariableMetric: Iteration # 14 - FCN = -522.9676073514 Edm = 4.43429 NCalls = 790
VariableMetric: Iteration # 15 - FCN = -523.0045719823 Edm = 0.19883 NCalls = 838
VariableMetric: Iteration # 16 - FCN = -523.0058690827 Edm = 0.0487472 NCalls = 887
VariableMetric: Iteration # 17 - FCN = -523.0121273303 Edm = 1.18096 NCalls = 935
VariableMetric: Iteration # 18 - FCN = -523.1002040278 Edm = 1.13832 NCalls = 984
VariableMetric: Iteration # 19 - FCN = -523.1073667355 Edm = 0.105426 NCalls = 1032
VariableMetric: Iteration # 20 - FCN = -523.1088128246 Edm = 0.184908 NCalls = 1080
VariableMetric: Iteration # 21 - FCN = -523.2842016659 Edm = 27.8444 NCalls = 1129
VariableMetric: Iteration # 22 - FCN = -523.957649437 Edm = 9.72063 NCalls = 1182
VariableMetric: Iteration # 23 - FCN = -524.01394942 Edm = 0.64482 NCalls = 1230
VariableMetric: Iteration # 24 - FCN = -524.0281727752 Edm = 2.16844 NCalls = 1278
VariableMetric: Iteration # 25 - FCN = -524.5464606214 Edm = 4.83489 NCalls = 1328
VariableMetric: Iteration # 26 - FCN = -524.5764799808 Edm = 0.595418 NCalls = 1376
VariableMetric: Iteration # 27 - FCN = -524.5958914246 Edm = 2.76933 NCalls = 1424
VariableMetric: Iteration # 28 - FCN = -524.8589171519 Edm = 15.6508 NCalls = 1473
VariableMetric: Iteration # 29 - FCN = -524.9479972405 Edm = 0.278672 NCalls = 1521
VariableMetric: Iteration # 30 - FCN = -525.1204347027 Edm = 0.151263 NCalls = 1570
VariableMetric: Iteration # 31 - FCN = -525.350910357 Edm = 0.0297723 NCalls = 1620
VariableMetric: Iteration # 32 - FCN = -525.3824981768 Edm = 0.00127668 NCalls = 1668
VariableMetric: Iteration # 33 - FCN = -525.3834009816 Edm = 1.62587e-05 NCalls = 1716
MnFunctionCross: parameter 0 set to 0.43762
MnSeedGenerator: for initial parameters FCN = -525.4155815417
MnSeedGenerator: Initial state: - FCN = -525.4155815417 Edm = 0.000406428 NCalls = 49
VariableMetric: start iterating until Edm is < 0.0005
VariableMetric: Initial state - FCN = -525.4155815417 Edm = 0.000406428 NCalls = 49
VariableMetric: Iteration # 0 - FCN = -525.4155815417 Edm = 0.000406428 NCalls = 49
VariableMetric: Iteration # 1 - FCN = -525.4160169755 Edm = 4.27228e-05 NCalls = 97
MnFunctionCross: parameter 0 set to 0.330849
MnSeedGenerator: for initial parameters FCN = -525.7624892986
MnSeedGenerator: Initial state: - FCN = -525.7624892986 Edm = 0.541618 NCalls = 49
MnSeedGenerator: Initial state: - FCN = -525.4155815417 Edm = 0.000406428 NCalls = 49
VariableMetric: start iterating until Edm is < 0.0005
VariableMetric: Initial state - FCN = -525.4155815417 Edm = 0.000406428 NCalls = 49
VariableMetric: Iteration # 0 - FCN = -525.4155815417 Edm = 0.000406428 NCalls = 49
VariableMetric: Iteration # 1 - FCN = -525.4160169755 Edm = 4.27228e-05 NCalls = 97
MnFunctionCross: parameter 0 set to 0.330849
MnSeedGenerator: for initial parameters FCN = -525.7624892986
MnSeedGenerator: Initial state: - FCN = -525.7624892986 Edm = 0.541618 NCalls = 49
MnSeedGenerator: Negative G2 found - new state: - FCN = -525.8080631154 Edm = 0.351401 NCalls = 104
VariableMetric: start iterating until Edm is < 0.0005
VariableMetric: Initial state - FCN = -525.8080631154 Edm = 0.351401 NCalls = 104
VariableMetric: Iteration # 0 - FCN = -525.8080631154 Edm = 0.351401 NCalls = 104
VariableMetric: Iteration # 1 - FCN = -526.1242855397 Edm = 0.237102 NCalls = 152
VariableMetric: Iteration # 2 - FCN = -526.2887854693 Edm = 0.0260461 NCalls = 200
VariableMetric: Iteration # 3 - FCN = -526.3120018483 Edm = 0.00260996 NCalls = 248
VariableMetric: Iteration # 4 - FCN = -526.3152057263 Edm = 4.57748e-05 NCalls = 296
MnFunctionCross: parameter 0 set to 0.306733
MnSeedGenerator: for initial parameters FCN = -526.4403212432
MnSeedGenerator: Initial state: - FCN = -526.4403212432 Edm = 0.0241512 NCalls = 49
VariableMetric: start iterating until Edm is < 0.0005
VariableMetric: Initial state - FCN = -526.4403212432 Edm = 0.0241512 NCalls = 49
VariableMetric: Iteration # 0 - FCN = -526.4403212432 Edm = 0.0241512 NCalls = 49
VariableMetric: Iteration # 1 - FCN = -526.4651395987 Edm = 0.0001002 NCalls = 96
MnFunctionCross: parameter 0 set to 0.298181
MnSeedGenerator: for initial parameters FCN = -526.5100685931
MnSeedGenerator: Initial state: - FCN = -526.5100685931 Edm = 0.00391207 NCalls = 49
VariableMetric: start iterating until Edm is < 0.0005
VariableMetric: Initial state - FCN = -526.5100685931 Edm = 0.00391207 NCalls = 49
VariableMetric: Iteration # 0 - FCN = -526.5100685931 Edm = 0.00391207 NCalls = 49
VariableMetric: Iteration # 1 - FCN = -526.5139052471 Edm = 9.11503e-06 NCalls = 96
Minos: Invalid lower error for parameter f_WZLT
Minos: Lower error for parameter f_WZLT : -0.75863
Minos: Upper error for parameter f_WZLT : 0.235945
and this
Minuit2Minimizer::GetMinosError for parameter 4 f_WZTL using max-calls 12000, tolerance 1
MnFunctionCross: parameter 0 set to -0.702676
MnSeedGenerator: for initial parameters FCN = -446.510846723
MnSeedGenerator: Initial state: - FCN = -446.510846723 Edm = 2716.4 NCalls = 51
VariableMetric: start iterating until Edm is < 0.0005
VariableMetric: Initial state - FCN = -446.510846723 Edm = 2716.4 NCalls = 51
VariableMetric: Iteration # 0 - FCN = -446.510846723 Edm = 2716.4 NCalls = 51
VariableMetric: Iteration # 1 - FCN = -514.6782408225 Edm = 126.826 NCalls = 105
VariableMetric: Iteration # 2 - FCN = -517.5910437663 Edm = 1.12998 NCalls = 153
VariableMetric: Iteration # 3 - FCN = -524.4738630028 Edm = 1.47257 NCalls = 203
VariableMetric: Iteration # 4 - FCN = -526.9779524397 Edm = 0.0299066 NCalls = 251
VariableMetric: Iteration # 5 - FCN = -527.0103656139 Edm = 0.00037157 NCalls = 299
VariableMetric: Iteration # 6 - FCN = -527.0113510945 Edm = 0.000348233 NCalls = 347
VariableMetric: Iteration # 7 - FCN = -527.0123202832 Edm = 1.80309e-05 NCalls = 395
Info in <Minuit2>: MnMinos Parameter is at Lower limit. : par_name = f_WZTL
MnFunctionCross: parameter 0 set to 0.802602
MnSeedGenerator: for initial parameters FCN = 790.6008390092
MnSeedGenerator: Initial state: - FCN = 790.6008390092 Edm = 0 NCalls = 93
MnSeedGenerator: Negative G2 found - new state: - FCN = 790.6008390092 Edm = 0 NCalls = 93
VariableMetric: start iterating until Edm is < 0.0005
VariableMetric: Initial state - FCN = 790.6008390092 Edm = 0 NCalls = 93
VariableMetric: Iteration # 0 - FCN = 790.6008390092 Edm = 0 NCalls = 93
MnFunctionCross: parameter 0 set to 0.426283
MnSeedGenerator: for initial parameters FCN = -365.7478834353
MnSeedGenerator: Initial state: - FCN = -365.7478834353 Edm = 2.34468e+07 NCalls = 89
VariableMetric: start iterating until Edm is < 0.0005
VariableMetric: Initial state - FCN = -365.7478834353 Edm = 2.34468e+07 NCalls = 89
VariableMetric: Iteration # 0 - FCN = -365.7478834353 Edm = 2.34468e+07 NCalls = 89
Info in <Minuit2>: VariableMetricBuilder: no improvement in line search
VariableMetric: Iteration # 1 - FCN = -365.7478834353 Edm = 2.34468e+07 NCalls = 100
Info in <Minuit2>: VariableMetricBuilder: iterations finish without convergence.
Info in <Minuit2>: VariableMetricBuilder : edm = 2.34468e+07
Info in <Minuit2>: requested : edmval = 0.0005
Info in <Minuit2>: VariableMetricBuilder: INVALID function minimum - edm is above tolerance, : edm = 2.34468e+07
Info in <Minuit2>: VariableMetricBuilder: Required tolerance is 10 x edmval : edmval = 0.0005
Info in <Minuit2>: MnMinos could not find Upper Value for Parameter : par_name = f_WZTL
Minos: Parameter : f_WZTL is at Lower limit.
Minos: Lower error for parameter f_WZTL : -0.0499633
Minos: Invalid upper error for parameter f_WZTL
Minos: Upper error for parameter f_WZTL : 0.752639
for these parameters:
N_tot = 250.053 +/- 17.6416 (limited)
f_WZLL = 0.249221 +/- 0.0978734 (limited)
f_WZLT = 0.0614636 +/- 0.936316 (limited)
f_WZTL = 0.0499633 +/- 0.956574 (limited)
Is there anything i can do to help the fit get the proper uncertainties here, where for these parameters they are dominated by the (physical) boundary conditions?