Skip to content

Commit 7597c3a

Browse files
Merge pull request #13 from StefanKarpinski/master
median absolute deviation performance improvement
2 parents 59008c8 + d40dc2b commit 7597c3a

File tree

1 file changed

+10
-4
lines changed

1 file changed

+10
-4
lines changed

src/Stats.jl

+10-4
Original file line numberDiff line numberDiff line change
@@ -41,11 +41,17 @@ module Stats
4141
return sv / sw
4242
end
4343

44-
# median absolute deviation with known center with consistency adjustment
45-
mad(v::AbstractArray, center::Number) = 1.4826 * median(abs(v - center))
44+
# median absolute deviation with consistency adjustment
45+
mad(v::AbstractArray, center::Number) = 1.4826 * median!(abs(v-center))
4646

47-
# median absolute deviation
48-
mad(v::AbstractArray) = mad(v, median(v))
47+
function mad(v::AbstractArray)
48+
v = copy(v)
49+
center = median!(v)
50+
for i in 1:length(v)
51+
v[i] = abs(v[i]-center)
52+
end
53+
1.4826 * median!(v, checknan=false)
54+
end
4955

5056
# maximum likelihood estimate of skewness with known mean m
5157
function skewness(v::AbstractVector, m::Number)

0 commit comments

Comments
 (0)