<p>对于简单的线性回归,可以使用以下方法计算学生化残差</p>
<p>将X和Y的平均值定义为:</p>
<pre><code>mean_X = sum(X) / len(X)
mean_Y = sum(Y) / len(Y)
</code></pre>
<p>现在你要估计系数β0和β1</p>
^{2}$
<p>现在,您需要通过使用</p>
<pre><code>y_hat = [beta0 + beta1*X[i] for i in range(len(X))]
</code></pre>
<p>现在计算残差,也就是Y-Y\u</p>
<pre><code>residuals = [Y[i] - y_hat[i] for i in range(len(Y))]
</code></pre>
<p>我们需要找到<code>H</code>矩阵,它是<a href="https://i.stack.imgur.com/24mZA.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/24mZA.png" alt="enter image description here"/></a>
其中<code>X</code>是自变量的矩阵。在</p>
<p>为了找到<strong>杠杆作用</strong>,我们必须采用<code>H</code>矩阵的对角线元素,如下所示:</p>
<pre><code>leverage = numpy.diagonal(H)
</code></pre>
<p>如果回归为</p>
<pre><code>Var_e = sum([(Y[i] - y_hat[i])**2 for i in range(len(Y)) ]) / (len(Y) -2)
SE_regression = math.sqrt(Var_e*[(1-leverage[i]) for i in range len(leverage)])
</code></pre>
<p>现在你可以计算学生化的残差</p>
<pre><code>studentized_residuals = [residuals[i]/SE_regression for i in range(len(residuals))]
</code></pre>
<p>注意,我们有两种类型的学生化残差。一个是<strong>内部学生化残差</strong>第二个是<strong>外部学生化残差</strong></p>
<p>我的解决方案是找到内部学习的残差。在</p>
<p>我修正了我的计算。对于外部研究的残差,请参考@kkawabat的答案</p>