11using LinRegOutliers
2+ using BenchmarkTools
23
3- import LinRegOutliers. OrdinaryLeastSquares: ols, wls, coef, residuals
4- import Distributions: median
5-
6- # sett = createRegressionSetting(@formula(calls ~ year), phones)
7- # sett = createRegressionSetting(@formula(y ~ x1 + x2 + x3), hbk)
8-
9- function generatedata (
10- n:: Int ,
11- p:: Int ,
12- contamination:: Float64 ,
13- direction:: Symbol ,
14- ):: Tuple{Array{Float64,2},Array{Float64,1}}
15- if ! (direction in [:y , :x ])
16- error (" - Direction must be :x or :y" )
17- end
18- on = ones (Float64, n)
19- pxvars = p - 1
20- xvars = randn (n, pxvars)
21- b = [5.0 for i = 1 : pxvars]
22- y = 5.0 .+ xvars * b + randn (n)
23- totalcontamination = round (Int, contamination * n)
24- if direction == :y
25- y[1 : totalcontamination] .= maximum (y) .+ abs .(rand (totalcontamination) * 5.0 )
26- elseif direction == :x
27- xvars[1 : totalcontamination, :] .=
28- maximum (xvars) .+ abs .(rand (totalcontamination) * 5.0 )
29- end
30- return (hcat (on, xvars), y)
31- end
324
335
346
357sett = createRegressionSetting (@formula (calls ~ year), phones)
36- x = designMatrix (sett)
37- y = responseVector (sett)
38- x, y = generatedata (1000 , 25 , 0.30 , :x )
39- result = gwcga (x, y)
8+
9+ @btime lta ($ sett)
0 commit comments