你看到的不同版本n-k和n-k-1的区别,应该是取决于这个k里面有没有包含截距项。有的书是默认截距包含在自变量矩阵 X_{n*k} 里面的,那样的话rss自由度是n-k;不包含截距就是n-k-1。两种是等价的,应该只是模型写法问题。据我所知大部分书里k是不包含截距的,rss自由度用的是n-k-1,以下以此为例 y_i=\beta_0+X_i\beta + \epsilon,X_i \in R^k :
rss的自由度是n-k-1而ess的自由度是k,因为rss和ess是互补的。给定一个数据集,它的总体variation(固定值)等于rss+ess。ess是模型解释了这么多variation,rss是还剩这么多variation没能解释。而你说的k是ess的自由度也就是模型里的参数个数,k越大模型越自由能解释的variation越多;rss是模型拟合之后剩下来的,值和自由度自然就越小。
至于为啥加起来是n-1: 总共有n个样本,默认截距占了一个自由度(也就是说null model是 y_i = \bar y 而不是 y_i = 0 ,本来就有一个限制),所以这俩自由度加起来是n-1。可以这么理解:一个n个样本的数据集 \{y_{n*1}, X_{n*k}\} 如果可以用ols「完美」回归(预测值=真实值)的话,需要k=n-1个自变量加上一个截距 (如果有一个 n*n 的满秩矩阵 [X_{n*(n-1)}, 1] ,那就不需要用最小二乘法了,直接 \beta = X^{-1}y 就完事了)。这个模型拟合出来已经没有random error了,rss就完全没有「自由」了。此时ess模型的自由度为n-1,rss自由度为0。继续增加自变量的个数的话,ols的解就不唯一了,这个模型就失去了意义。这也是为什么传统ols要求特征个数小于样本个数。
(当然这个所谓「完美」回归不一定存在,比如两个样本有完全相同的 X_i 但是不同的 y_i 时,就永远不可能让rss等于0。这里只是方便理解)