@@ -111,48 +111,48 @@ function hadi1992(multivariateData::AbstractMatrix{Float64}; alpha = 0.05)
111111 ordering_indices_mah1 = sortperm (mah1)
112112
113113 r = p + 1
114- basic_subset_indices = []
115- basic_subset = []
116- sorted_mah1 = []
114+ basic_subset_indices = Int []
115+ basic_subset = Int []
116+ sorted_mah1 = Float64 []
117117
118- Cb = zeros ( Float64, p)
119- Sb = zeros ( Float64, p, p)
120- newSb = zeros ( Float64, p, p)
118+ Cb = Array { Float64} (undef , p)
119+ Sb = Matrix { Float64} (undef , p, p)
120+ newSb = Matrix { Float64} (undef , p, p)
121121
122- msm3 = zeros ( Float64, n, n)
123- msm4 = zeros ( Float64, n, n)
122+ msm3 = Matrix { Float64} (undef , n, n)
123+ msm4 = Matrix { Float64} (undef , n, n)
124124
125125 while r < n
126126 cnpr = 1 + (r / (n - p))^ 2.0
127127 basic_subset_indices = ordering_indices_mah1[1 : r]
128128 basic_subset = multivariateData[basic_subset_indices, :]
129- Cb . = applyColumns (mean, basic_subset)
130- Sb . = cov (basic_subset)
129+ Cb = applyColumns (mean, basic_subset)
130+ Sb = cov (basic_subset)
131131
132132 r += 1
133133 cfactor = cnpr * sqrt (sort (mah1)[h]) / chi_50_quantile
134134 if det (cfactor * Sb) == 0
135- @info " singular Sb case"
136- newSb . = hadi1992_handle_singularity (cfactor * Sb)
135+ # singular Sb case
136+ newSb = hadi1992_handle_singularity (cfactor * Sb)
137137
138- msm3 . = mahalanobisSquaredMatrix (multivariateData, meanvector = Cb, covmatrix = newSb,)
138+ msm3 = mahalanobisSquaredMatrix (multivariateData, meanvector = Cb, covmatrix = newSb,)
139139
140140 if isnothing (msm3)
141141 throw (ErrorException (" Mahalanobis distances are not calculated" ))
142142 end
143143
144- mah1 . = diag (msm3)
144+ mah1 = diag (msm3)
145145
146146 ordering_indices_mah1 = sortperm (mah1)
147147 basic_subset_indices = ordering_indices_mah1[1 : r]
148148 else
149- msm4 . = mahalanobisSquaredMatrix (multivariateData, meanvector = Cb, covmatrix = (cfactor * Sb))
149+ msm4 = mahalanobisSquaredMatrix (multivariateData, meanvector = Cb, covmatrix = (cfactor * Sb))
150150
151151 if isnothing (msm4)
152152 throw (ErrorException (" Mahalanobis distances are not calculated" ))
153153 end
154154
155- mah1 . = diag (msm4)
155+ mah1 = diag (msm4)
156156 ordering_indices_mah1 = sortperm (mah1)
157157 basic_subset_indices = ordering_indices_mah1[1 : r]
158158 end
0 commit comments