{
  "test_id": "kruskal_wallis",
  "test_label": "Kruskal-Wallis test",
  "n": 116,
  "statistic": 29.266576306116939,
  "parameter": 4,
  "p_value": 6.9007141185467839e-06,
  "estimate": "NA",
  "conf_int": null,
  "effect_size": {
    "name": "epsilon_squared",
    "value": 0.25449196787927775,
    "ci": [0.14159594466096073, 0.43427477566614325],
    "ci_level": 0.94999999999999996,
    "note": "two-sided percentile-bootstrap CI at the run's confidence level"
  },
  "seed_used": 20261110,
  "assumptions": [
    {
      "id": "normality_by_group",
      "check": "normality by group (Shapiro-Wilk)",
      "per_group": [
        {
          "id": "normality",
          "check": "normality (Shapiro-Wilk)",
          "statistic": 0.93279122097707168,
          "p_value": 0.090324753971266047,
          "passed": true,
          "note": "no evidence against normality",
          "group": "August"
        },
        {
          "id": "normality",
          "check": "normality (Shapiro-Wilk)",
          "statistic": 0.97967182419158849,
          "p_value": 0.86688612592423242,
          "passed": true,
          "note": "no evidence against normality",
          "group": "July"
        },
        {
          "id": "normality",
          "check": "normality (Shapiro-Wilk)",
          "statistic": 0.84327512360378265,
          "p_value": 0.062800141977344362,
          "passed": true,
          "note": "no evidence against normality",
          "group": "June"
        },
        {
          "id": "normality",
          "check": "normality (Shapiro-Wilk)",
          "statistic": 0.7140083998124569,
          "p_value": 8.2938321040933961e-06,
          "passed": false,
          "note": "evidence of non-normality",
          "group": "May"
        },
        {
          "id": "normality",
          "check": "normality (Shapiro-Wilk)",
          "statistic": 0.78373148289457806,
          "p_value": 4.3254364644578797e-05,
          "passed": false,
          "note": "evidence of non-normality",
          "group": "September"
        }
      ],
      "passed": false,
      "informational": true,
      "note": "evidence of non-normality - normality is not assumed by this rank-based test"
    },
    {
      "id": "sample_size",
      "check": "sample size",
      "statistic": 116,
      "p_value": "NA",
      "passed": true,
      "note": "adequate n"
    }
  ],
  "warnings": [
    "Ties are present. z-quantiles were corrected for ties."
  ],
  "flags": [
    {
      "severity": "warning",
      "message": "24% of rows had missing values in the analysis variables and were dropped (listwise); consider imputation.",
      "message_i18n": {
        "key": "flag.missing_listwise",
        "args": {
          "percent": "24"
        }
      }
    },
    {
      "severity": "note",
      "message": "Values beyond Tukey's 1.5xIQR fence in: 'Ozone' (2). Descriptive only - nothing has been removed or changed; check whether these reflect genuine extreme cases or data-entry errors.",
      "message_i18n": {
        "key": "sanity.outlier_values",
        "args": {
          "columns": "'Ozone' (2)"
        }
      },
      "code": "outlier_values",
      "citations": ["Tukey's 1.5xIQR fence is a descriptive convention for flagging unusually extreme values, not a definition of error or a license to remove data - some 'outliers' are genuine biological extremes (Tukey, J.W., 1977, Exploratory Data Analysis, Addison-Wesley)."]
    },
    {
      "severity": "note",
      "message": "Missingness in 'Ozone' appears to relate to observed values of: Month (an indicative comparison, not a formal MCAR test - see the citation). If missingness in 'Ozone' is not completely at random, complete-case/mean/median handling of it can bias the result; multiple imputation is usually the safer default.",
      "message_i18n": {
        "key": "sanity.missingness_pattern",
        "args": {
          "column": "Ozone",
          "related": "Month"
        }
      },
      "code": "missingness_pattern",
      "citations": ["This is an INDICATIVE comparison, not a formal test of Missing Completely At Random (MCAR): when a column's missingness pattern relates to another observed variable's values, complete-case, mean, or median handling of it can be biased, and multiple imputation that conditions on the related variable is usually the safer default (van Buuren, S., 2018, Flexible Imputation of Missing Data, 2nd ed., Chapman & Hall/CRC, Ch. 2)."]
    }
  ],
  "test_label_i18n": {
    "key": "test.kruskal_wallis.label"
  },
  "alpha": 0.050000000000000003,
  "sidedness": "non-directional",
  "imputation": {
    "strategy": "complete_case",
    "n_rows": 153,
    "n_dropped": 37,
    "n_cells_imputed": 0,
    "imputed_cols": []
  },
  "conf_level": 0.94999999999999996,
  "posthoc": {
    "method_id": "dunn",
    "method": "Dunn's test",
    "p_adjust": "holm",
    "comparisons": [
      {
        "group1": "August",
        "group2": "July",
        "p_adjusted": 1,
        "effect": -0.029585798816568032,
        "effect_low": -0.33321744706772949,
        "effect_high": 0.27960576610745119
      },
      {
        "group1": "August",
        "group2": "June",
        "p_adjusted": 0.20743210362524894,
        "effect": 0.50854700854700852,
        "effect_low": 0.11639359569643379,
        "effect_high": 0.76352445363189114
      },
      {
        "group1": "July",
        "group2": "June",
        "p_adjusted": 0.1489141168225328,
        "effect": 0.55982905982905984,
        "effect_low": 0.18653008236040927,
        "effect_high": 0.79187094849015216
      },
      {
        "group1": "August",
        "group2": "May",
        "p_adjusted": 0.00032251465289827709,
        "effect": 0.6227810650887573,
        "effect_low": 0.39075151765154786,
        "effect_high": 0.78039665009890369
      },
      {
        "group1": "July",
        "group2": "May",
        "p_adjusted": 9.8942961500004644e-05,
        "effect": 0.67603550295857984,
        "effect_low": 0.46598352540463361,
        "effect_high": 0.81395058984028135
      },
      {
        "group1": "June",
        "group2": "May",
        "p_adjusted": 1,
        "effect": 0.29914529914529919,
        "effect_low": -0.13444485543005832,
        "effect_high": 0.63659349183757252
      },
      {
        "group1": "August",
        "group2": "September",
        "p_adjusted": 0.024280782128045686,
        "effect": 0.46419098143236076,
        "effect_low": 0.19184633950258101,
        "effect_high": 0.67015640869695148
      },
      {
        "group1": "July",
        "group2": "September",
        "p_adjusted": 0.010355897731606905,
        "effect": 0.53183023872679036,
        "effect_low": 0.27688657158372076,
        "effect_high": 0.71682362587511761
      },
      {
        "group1": "June",
        "group2": "September",
        "p_adjusted": 1,
        "effect": 0.015325670498084254,
        "effect_low": -0.3986930577565439,
        "effect_high": 0.42415504146744654
      },
      {
        "group1": "May",
        "group2": "September",
        "p_adjusted": 0.74573570185118121,
        "effect": -0.24668435013262596,
        "effect_low": -0.50817480077178268,
        "effect_high": 0.056447520361237152
      }
    ],
    "effect_name": "rank_biserial",
    "group_letters": {
      "August": "a",
      "July": "a",
      "June": "ab",
      "May": "b",
      "September": "b"
    }
  },
  "power": {
    "method": null,
    "n": "NA",
    "mdes": "NA",
    "mdes_metric": null,
    "mdes_metric_i18n": null,
    "required_n": "NA",
    "required_n_label": null,
    "required_n_label_i18n": null,
    "severely_underpowered": null,
    "note": "Power is not calculated for this test. The matching parametric test gives a rough guide.",
    "call_code": null
  },
  "explanations": ["At least one group's distribution of Ozone differs from the others (ranks, not means, are compared).", "The grouping accounts for ~25.45% of the variation in the ranks of Ozone (epsilon-squared) - a large effect (95% CI 14.16 to 43.43).", "Pairwise: August differed from May (adjusted p < 0.001).", "Pairwise: July differed from May (adjusted p < 0.001).", "Pairwise: August differed from September (adjusted p = 0.0243).", "Pairwise: July differed from September (adjusted p = 0.0104).", "Compact-letter groups: August=a, July=a, June=ab, May=b, September=b (groups sharing a letter are not significantly different at the adjusted threshold).", "This result is statistically significant at the 0.05 level (p < 0.001, n = 116)."],
  "explanations_i18n": [
    {
      "key": "exp.kruskal.omnibus",
      "args": {
        "outcome": "Ozone"
      }
    },
    {
      "key": "exp.kruskal.effect_size",
      "args": {
        "percent": "25.45",
        "outcome": "Ozone",
        "magnitude": {
          "key": "exp.magnitude_effect.large"
        },
        "ci": {
          "key": "exp.ci_paren",
          "args": {
            "ci": {
              "key": "exp.ci",
              "args": {
                "level": "95",
                "lower": "14.16",
                "upper": "43.43"
              }
            }
          }
        }
      }
    },
    {
      "key": "exp.posthoc.pair",
      "args": {
        "group1": "August",
        "group2": "May",
        "p": "p < 0.001"
      }
    },
    {
      "key": "exp.posthoc.pair",
      "args": {
        "group1": "July",
        "group2": "May",
        "p": "p < 0.001"
      }
    },
    {
      "key": "exp.posthoc.pair",
      "args": {
        "group1": "August",
        "group2": "September",
        "p": "p = 0.0243"
      }
    },
    {
      "key": "exp.posthoc.pair",
      "args": {
        "group1": "July",
        "group2": "September",
        "p": "p = 0.0104"
      }
    },
    {
      "key": "exp.posthoc.letters",
      "args": {
        "groups": "August=a, July=a, June=ab, May=b, September=b"
      }
    },
    {
      "key": "exp.closer.significant",
      "args": {
        "alpha": "0.05",
        "p": "p < 0.001",
        "n": "116"
      }
    }
  ]
}
