@@ -4,7 +4,7 @@ export lts
44export iterateCSteps
55
66import .. Basis: RegressionSetting, @extractRegressionSetting , designMatrix, responseVector
7- import .. OrdinaryLeastSquares : ols, coef, residuals, predict
7+
88import Distributions: sample, mean
99
1010"""
@@ -49,8 +49,7 @@ function iterateCSteps(
4949 objective:: Float64 = Inf64
5050 iter:: Int = 0
5151 while iter < maxiter
52- olsreg = ols (X[subsetindices, :], y[subsetindices])
53- betas = coef (olsreg)
52+ betas = X[subsetindices, :] \ y[subsetindices]
5453 res = y - X * betas
5554 sortedresindices = sortperm (abs .(res))
5655 subsetindices = sortedresindices[1 : h]
@@ -82,8 +81,7 @@ function iterateCSteps(
8281 initialBetas:: AbstractVector{Float64} ,
8382 h:: Int ; eps:: Float64 = 0.01 , maxiter:: Int = 10000
8483)
85- n, p = size (X)
86- # res = [y[i] - sum(X[i, :] .* initialBetas) for i = 1:n]
84+ _, p = size (X)
8785 res = y - X * initialBetas
8886 sortedresindices = sortperm (abs .(res))
8987 subsetindices = sortedresindices[1 : p]
@@ -174,10 +172,7 @@ function lts(X::AbstractMatrix{Float64}, y::AbstractVector{Float64}; iters=nothi
174172 end
175173 end
176174
177-
178- ltsreg = ols (X[besthsubset, :], y[besthsubset])
179- ltsbetas = coef (ltsreg)
180- # ltsres = [y[i] - sum(X[i, :] .* ltsbetas) for i = 1:n]
175+ ltsbetas = X[besthsubset, :] \ y[besthsubset]
181176 ltsres = y - X * ltsbetas
182177 ltsS = sqrt (sum ((ltsres .^ 2.0 )[1 : h]) / (h - p))
183178 ltsresmean = mean (ltsres[besthsubset])
0 commit comments