{
  "test_id": "linear_regression",
  "test_label": "Linear regression",
  "n": 116,
  "statistic": 7.3617932119535592,
  "parameter": 113,
  "p_value": 3.1491094603723041e-11,
  "estimate": 1.8401787839357071,
  "conf_int": [1.3449562261185022, 2.3354013417529123],
  "effect_size": {
    "name": "R2",
    "value": 0.56870965464129919
  },
  "seed_used": 20261110,
  "assumptions": [
    {
      "id": "normality",
      "check": "normality (Shapiro-Wilk)",
      "statistic": 0.93099547211612965,
      "p_value": 1.5252681368315637e-05,
      "passed": false,
      "note": "evidence of non-normality"
    }
  ],
  "warnings": [],
  "flags": [
    {
      "severity": "warning",
      "message": "The model's residuals appear non-normal. There is no drop-in non-parametric alternative for this model - interpret p-values cautiously (with n = 116 the central limit theorem softens this concern) and consider transforming the outcome if the skew is strong.",
      "message_i18n": {
        "key": "flag.non_normal_residuals_no_alternative",
        "args": {
          "n": "116"
        }
      },
      "trigger": "normality (Shapiro-Wilk)"
    },
    {
      "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"
        }
      },
      "suggested_strategy": "mice"
    },
    {
      "severity": "note",
      "message": "7 of 116 observations used in this analysis have a Cook's distance above the conventional 4/n screening threshold (largest observed: 0.315); a small number of rows may be disproportionately driving the fit. Consider inspecting those rows for data-entry errors or genuine extreme cases before trusting the estimate.",
      "message_i18n": {
        "key": "sanity.high_influence",
        "args": {
          "flagged": "7",
          "n": "116",
          "threshold": "4/n",
          "largest": "0.315"
        }
      },
      "code": "high_influence_points",
      "citations": ["A small number of observations with disproportionately large Cook's distance can dominate a fit's estimated coefficients; the conventional 4/n screening threshold is a convenience rule, not a law (Cook, R.D., 1977, Detection of Influential Observation in Linear Regression, Technometrics, 19(1), 15-18; Bollen, K.A. & Jackman, R.W., 1990, Regression Diagnostics: An Expository Treatment of Outliers and Influential Cases, in Modern Methods of Data Analysis, Sage)."]
    },
    {
      "severity": "note",
      "message": "Values beyond Tukey's 1.5xIQR fence in: 'Ozone' (2), 'Wind' (3). 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), 'Wind' (3)"
        }
      },
      "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)."]
    }
  ],
  "test_label_i18n": {
    "key": "test.linear_regression.label"
  },
  "coefficients": [
    {
      "term": "(Intercept)",
      "estimate": -71.033217707787713,
      "std.error": 23.577992197897924,
      "statistic": -3.0126915435200043,
      "p.value": 0.0031962400628489712,
      "conf.low": -117.74547276469519,
      "conf.high": -24.320962650880233
    },
    {
      "term": "Temp",
      "estimate": 1.8401787839357071,
      "std.error": 0.24996338948338767,
      "statistic": 7.3617932119535592,
      "p.value": 3.1491094603723041e-11,
      "conf.low": 1.3449562261185022,
      "conf.high": 2.3354013417529123
    },
    {
      "term": "Wind",
      "estimate": -3.0554909975418427,
      "std.error": 0.66325033491801622,
      "statistic": -4.6068442587662304,
      "p.value": 1.0800461096301618e-05,
      "conf.low": -4.3695095344566131,
      "conf.high": -1.7414724606270728
    }
  ],
  "alpha": 0.050000000000000003,
  "sidedness": "two-sided",
  "estimate_label": "Temp",
  "imputation": {
    "strategy": "complete_case",
    "n_rows": 153,
    "n_dropped": 37,
    "n_cells_imputed": 0,
    "imputed_cols": []
  },
  "power": {
    "method": "linear regression (pwr)",
    "n": 116,
    "alpha": 0.050000000000000003,
    "target_power": 0.80000000000000004,
    "mdes": 0.085301228292865225,
    "mdes_metric": "Cohen's f2",
    "mdes_metric_i18n": {
      "key": "power.metric.cohens_f2"
    },
    "required_n": 68,
    "required_n_label": "68 total to detect f2=0.15",
    "required_n_label_i18n": {
      "key": "power.required_n.linear_regression",
      "args": {
        "n": "68",
        "effect": "0.15"
      }
    },
    "severely_underpowered": false,
    "note": null,
    "call_code": "pwr::pwr.f2.test(u = 2, v = 113, sig.level = 0.05, power = 0.8)"
  },
  "explanations": ["Each 1-unit increase in Temp is associated with a 1.84-unit increase in Ozone (p < 0.001).", "Each 1-unit increase in Wind is associated with a 3.055-unit decrease in Ozone (p < 0.001).", "Together the predictors explain ~56.87% of the variation in Ozone (R-squared 0.5687).", "This result is statistically significant at the 0.05 level (p < 0.001, n = 116)."],
  "explanations_i18n": [
    {
      "key": "exp.lm.numeric_increase",
      "args": {
        "term": "Temp",
        "difference": "1.84",
        "outcome": "Ozone",
        "p": "p < 0.001"
      }
    },
    {
      "key": "exp.lm.numeric_decrease",
      "args": {
        "term": "Wind",
        "difference": "3.055",
        "outcome": "Ozone",
        "p": "p < 0.001"
      }
    },
    {
      "key": "exp.lm.r_squared",
      "args": {
        "percent": "56.87",
        "outcome": "Ozone",
        "r_squared": "0.5687"
      }
    },
    {
      "key": "exp.closer.significant",
      "args": {
        "alpha": "0.05",
        "p": "p < 0.001",
        "n": "116"
      }
    }
  ]
}
