Skip to content

Commit 4d0372b

Browse files
committed
WIP: initial commit
0 parents  commit 4d0372b

File tree

5 files changed

+1048
-0
lines changed

5 files changed

+1048
-0
lines changed

.gitignore

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
lib-cov
2+
*.seed
3+
*.log
4+
*.csv
5+
*.dat
6+
*.out
7+
*.pid
8+
*.gz
9+
*.swp
10+
11+
pids
12+
logs
13+
results
14+
tmp
15+
16+
17+
# Coverage reports
18+
coverage
19+
20+
# API keys and secrets
21+
.env
22+
23+
# Dependency directory
24+
node_modules
25+
bower_components
26+
27+
# Editors
28+
.idea
29+
*.iml
30+
31+
# OS metadata
32+
.DS_Store
33+
Thumbs.db
34+
35+
# Ignore built ts files
36+
dist/**/*

index.ts

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
// create MAD & M estimator algorithms
2+
function getStandardDeviation (arr: number[]) {
3+
const n = arr.length
4+
const mean = arr.reduce((a, b) => a + b) / n
5+
return Math.sqrt(arr.map(x => Math.pow(x - mean, 2)).reduce((a, b) => a + b) / n)
6+
}
7+
const median = (arr: number[]): number => {
8+
const s = [...arr].sort((a, b) => a - b);
9+
const mid = Math.floor(s.length / 2);
10+
return s.length % 2 === 0 ? ((s[mid - 1] + s[mid]) / 2) : s[mid];
11+
};
12+
function mad(arr: number[]) {
13+
const med = median(arr);
14+
const abs = arr.map((x) => Math.abs(x - med));
15+
return median(abs);
16+
}
17+
var arr = [1, 4, 3, 4, 5, 6, 7, 8, 9, 10]; // median is 5.5
18+
console.log(mad(arr)); // median absolute deviation is 2.5
19+
console.log( getStandardDeviation(arr) * 1.4826 );
20+
21+

0 commit comments

Comments
 (0)