Method and assumptions
1. Orient and rescale
Map the worst observed value to 0 and the best to 1. Benefit criteria use (x − min)/(max − min); cost criteria use (max − x)/(max − min). Negative observations are valid because the criterion range, rather than a ratio to zero, sets the scale.
2. Quantify contrast
Calculate each oriented column’s mean and population standard deviation with divisor m. Sample standard deviation would multiply every nonconstant column by the same factor √(m/(m−1)); with complete data it gives the same normalized weights.
3. Quantify disagreement
Compute signed Pearson correlations on the oriented columns. For each criterion sum 1 − r over active criteria. Positive redundancy reduces this term; negative correlation increases it. Do not replace r with |r|: that is a different model.
4. Combine and normalize
Multiply standard deviation by the conflict sum. Normalize the resulting information values to unit sum. Constants are explicitly excluded before correlations; undefined correlation is never treated as zero. With only one active criterion or wholly positively redundant columns, total information is zero and weights are undefined.
zᵢⱼ = (xᵢⱼ − worstⱼ)/(bestⱼ − worstⱼ)
σⱼ = √[Σᵢ(zᵢⱼ − z̄ⱼ)² / m]
rⱼₖ = Σᵢ[(zᵢⱼ − z̄ⱼ)(zᵢₖ − z̄ₖ)] / √[Σᵢ(zᵢⱼ − z̄ⱼ)² Σᵢ(zᵢₖ − z̄ₖ)²]
Cⱼ = σⱼ Σₖ∈active(1 − rⱼₖ); wⱼ = Cⱼ / Σⱼ Cⱼ
| Symbol | Definition |
|---|---|
| i, m | Alternative index and count; 2 ≤ m ≤ 8 |
| j, n | Criterion index and count; 2 ≤ n ≤ 6 |
| xᵢⱼ | Performance of option i on criterion j, in its declared column unit |
| wⱼ | Dimensionless nonnegative criterion weight; sum is 1 when defined |
| zᵢⱼ, z̄ⱼ | Dimensionless preference score and its column mean |
| σⱼ | Population standard deviation of normalized scores |
| rⱼₖ | Signed Pearson correlation, between −1 and 1; undefined for constants |
| Cⱼ | Nonnegative contrast × conflict information measure |
Worked maritime example
These four service-vessel options and all quantities are original, synthetic teaching data. They are not measured vessel performance, a procurement recommendation or safety approval.
Objective: Compare synthetic port service vessel options.
Data-driven weights describe contrast within the chosen dataset. They are not universally objective priorities, operational importance, probabilities or evidence of correctness. Criteria, units, origins and alternatives remain modeling choices.
| Criterion | Unit | Preference direction |
|---|---|---|
| Daily energy | kWh/day | Cost: minimize |
| Duty capacity | jobs/day | Benefit: maximize |
| Maintenance time | h/month | Cost: minimize |
| Alternative | Daily energy | Duty capacity | Maintenance time |
|---|---|---|---|
| Vessel A | 100 | 6 | 12 |
| Vessel B | 120 | 9 | 10 |
| Vessel C | 80 | 5 | 18 |
| Vessel D | 110 | 8 | 8 |
| Alternative | Daily energy | Duty capacity | Maintenance time |
|---|---|---|---|
| Vessel A | 0.5 | 0.25 | 0.6 |
| Vessel B | 0 | 1 | 0.8 |
| Vessel C | 1 | 0 | 0 |
| Vessel D | 0.25 | 0.75 | 1 |
| Alternative | Daily energy | Duty capacity | Maintenance time |
|---|---|---|---|
| Vessel A | 0.0625 | -0.25 | 0 |
| Vessel B | -0.4375 | 0.5 | 0.2 |
| Vessel C | 0.5625 | -0.5 | -0.6 |
| Vessel D | -0.1875 | 0.25 | 0.4 |
| Criterion | Daily energy | Duty capacity | Maintenance time |
|---|---|---|---|
| Daily energy | 1 | -0.96214047 | -0.9035079 |
| Duty capacity | -0.96214047 | 1 | 0.84515425 |
| Maintenance time | -0.9035079 | 0.84515425 | 1 |
| Criterion | Minimum | Maximum | Range | Mean | Population SD σ | Conflict Σ(1−r) | Information C | Weight w |
|---|---|---|---|---|---|---|---|---|
| Daily energy | 80 | 120 | 40 | 0.4375 | 0.36975499 | 3.8656484 | 1.4293428 | 0.47074832 |
| Duty capacity | 5 | 9 | 4 | 0.5 | 0.39528471 | 2.1169862 | 0.83681228 | 0.27560078 |
| Maintenance time | 8 | 18 | 10 | 0.6 | 0.37416574 | 2.0583536 | 0.77016541 | 0.2536509 |
Weights defined: Yes. Total information = 3.0363205.
Substitute the values
z₁₁ = (120 − 100) / (120 − 80) = 0.5
σ₁ = √[((0.0625)² + (-0.4375)² + (0.5625)² + (-0.1875)²) / 4] = 0.36975499
C₁ = 0.36975499 × 3.8656484 = 1.4293428
w₁ = 1.4293428 / 3.0363205 = 0.47074832
Sensitivity checks
Remove each alternative in turn, rebuild preprocessing and recompute weights. A change shows dependence on the option set. These are descriptive checks, not uncertainty intervals. With only two alternatives the leave-one-out check is omitted because the method requires at least two.
| Alternative left out | Weights defined | w: Daily energy | w: Duty capacity | w: Maintenance time |
|---|---|---|---|---|
| Vessel A | Yes | 0.48643928 | 0.2604272 | 0.25313353 |
| Vessel B | Yes | 0.49565232 | 0.24932565 | 0.25502203 |
| Vessel C | Yes | 0.45236033 | 0.30790212 | 0.23973755 |
| Vessel D | Yes | 0.47114274 | 0.26442863 | 0.26442863 |
Tables display 8 significant digits. Calculations use unrounded binary64 values; CSV preserves round-trip numeric precision. “Undefined” is never replaced by an invented score.
Interpretation and limits
- Min–max preprocessing is invariant to positive affine unit changes when the preference direction is preserved. It is sensitive to the observed extremes and to the set of alternatives. A nonlinear transformation generally changes the model.
- CRITIC measures linear correlation, not causation or every form of dependence. A duplicated column can still change the weights of the rest; correlation handling does not guarantee immunity to criterion duplication.
- Constant columns are displayed as zero normalized scores and excluded from every correlation sum. Correlations within 64 machine epsilons of ±1 are snapped to that endpoint. This is a declared numerical policy; exactly or numerically wholly redundant information gives no weight vector.
- With only two alternatives, every pair of nonconstant columns has correlation +1 or −1. These weights can be extremely sensitive to a single additional observation. A leave-one-out check is descriptive and may itself become undefined.
Check your understanding: an additional criterion has the same value for all vessels. Should it be assigned zero correlation with every existing criterion?
No. Its correlation is undefined. Treating it as zero would add false conflict to every other criterion; this tool excludes it from the sums.
Primary methodology sources
The declared zero, tie and numerical edge-case policies are implementation choices of this tool. critic v1.0.0.