仓库源文站点原文


title: "Java 初体验: 线性回归系数的检验" categories: Language updated: comments: true

mathjax: true

翻阅了 官方 tutorial.

与 Python 比较

<!-- more -->

线性回归系数检验

Apache Commons Math 库的线性回归类没有直接实现各种假设检验. 考虑线性回归 (满足一般假设)

$$ y = X\beta + \varepsilon, \quad \varepsilon \sim N(0, \sigma^2 I). $$

其中 $X$ 是 $n\times p$ 设计矩阵 (第一列全为 1), $\beta$ 是 $p\times 1$ 参数向量. 检验估计参数 $\hat \beta$ 的每一项,

$$ H_0\colon \beta1 = \cdots = \beta{p-1} = 0, $$

其中 $\beta_0$ 为截距. 由于

$$ \hat \beta \sim N_p(\beta, \sigma^2 (X'X)^{-1}), $$

如果 $\beta_i = 0$ 成立, 则 t-统计量

$$ \tau_i = \frac{\hat \betai}{\sqrt{c{i, i}} \sqrt{u'u / (n-p)}} \sim t_{n-p}, $$

其中 $c{i, i}$ 表示 $(X'X)^{-1}$ 的第 $i$ 行第 $i$ 列, 残差 $u = y- X\hat\beta$ (右下角这一坨是 $\hat \sigma$), 符号 $t{n-p}$ 表示自由度为 $n-p$ 的 t 分布. 最后 $2\mathbb P(Z > \vert\taui\vert)$ 则为第 $i$ 项对应的 p-value, 其中随机变量 $Z \sim t{n-p}$.

实现见 这里, 其中

其他

Python 可以用 JPype 调 jar 包, 但是一个 已知缺陷

Because of lack of JVM support, you cannot shutdown the JVM and then restart it. Nor can you start more than one copy of the JVM.