📅  最后修改于: 2022-03-11 14:45:28.695000             🧑  作者: Mango
def internally_studentized_residual(X,Y):
X = np.array(X, dtype=float)
Y = np.array(Y, dtype=float)
mean_X = np.mean(X)
mean_Y = np.mean(Y)
n = len(X)
diff_mean_sqr = np.dot((X - mean_X), (X - mean_X))
beta1 = np.dot((X - mean_X), (Y - mean_Y)) / diff_mean_sqr
beta0 = mean_Y - beta1 * mean_X
y_hat = beta0 + beta1 * X
residuals = Y - y_hat
h_ii = (X - mean_X) ** 2 / diff_mean_sqr + (1 / n)
Var_e = math.sqrt(sum((Y - y_hat) ** 2)/(n-2))
SE_regression = Var_e*((1-h_ii) ** 0.5)
studentized_residuals = residuals/SE_regression
return studentized_residuals
def deleted_studentized_residual(X,Y):
#formula from https://newonlinecourses.science.psu.edu/stat501/node/401/
r = internally_studentized_residual(X,Y)
n = len(r)
return [r_i*math.sqrt((n-2-1)/(n-2-r_i**2)) for r_i in r]