对于我的问题相当抽象的性质,我提前道歉,但这间接是一个关于编程算法的问题,我认为我不会是唯一对此感到疑惑的程序员。
这是关于在 Octave 中实现多变量普通最小二乘 (OLS) 回归算法(我假设在 MatLab 中也是如此)。据我所知,如果一个人只用一次测量将两个变量输入到线性回归中,那么结果(即系数)应该在数学上是不确定的:除非你接受黑魔法作为一个有效的前提,否则你怎么可能知道每个变量以何种方式影响最终结果?在更一般的情况下,测量的数量必须(我认为)至少等于结果系数的变量数量才能有意义(更不用说统计误差和所有这些了)。
然而,Octave 非常乐意计算结果,没有任何警告:
octave:1> ols([1], [1, 1])
ans =
0.50000
0.50000
换句话说——如果我做对了——给定等式 1 = x + y,Octave 高兴地得出 x = y = 0.5 的结论。
因此,假设(像我一样) Octave 与撒旦没有直接联系,以下是我的问题:
- 我误解了数学基础吗?换句话说,这可能是一个合法的结果吗?
- 如果我是对的,为什么 Octave 没有吐出错误——或者,至少,对于我要求它分析的完全愚蠢的数据,这是一个非常严厉的警告?