@@ -6,7 +6,7 @@ export hs93
66
77import .. Basis:
88 RegressionSetting, @extractRegressionSetting , designMatrix, responseVector, applyColumns
9- import .. OrdinaryLeastSquares : ols, predict, residuals, coef
9+
1010import .. Diagnostics: dffits
1111
1212import Distributions: TDist, quantile
@@ -116,8 +116,7 @@ function hs93basicsubset(
116116 s = length (initialindices)
117117 indices = initialindices
118118 for i in range (s + 1 , stop = h)
119- olsreg = ols (X[indices, :], y[indices])
120- betas = coef (olsreg)
119+ betas = X[indices, :] \ y[indices]
121120 d = zeros (Float64, n)
122121 XM = X[indices, :]
123122 for j = 1 : n
@@ -204,9 +203,8 @@ function hs93(
204203 betas = []
205204
206205 while s < n
207- olsreg = ols (X[indices, :], y[indices])
208- betas = coef (olsreg)
209- resids = residuals (olsreg)
206+ betas = X[indices, :] \ y[indices]
207+ resids = y[indices] - X[indices,:] * betas
210208 sigma = sqrt (sum (resids .^ 2.0 ) / (length (resids) - p))
211209 d = zeros (Float64, n)
212210 XM = X[indices, :]
@@ -237,9 +235,7 @@ function hs93(
237235
238236 outlierset = filter (x -> abs (d[x]) > abs (tcalc), 1 : n)
239237 inlierset = setdiff (1 : n, outlierset)
240- cleanols = ols (X[inlierset, :], y[inlierset])
241- cleanbetas = coef (cleanols)
242-
238+ cleanbetas = X[inlierset, :] \ y[inlierset]
243239 if abs (d[orderingd][s+ 1 ]) > abs (tcalc)
244240 result = Dict (
245241 " d" => d,
0 commit comments