javascriptで歪度と尖度を求めるコード
サイトを参考に不偏分散から歪度と尖度を下記のコードで求めることが出来たのですが、
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset=utf-8 >
<title>unbiased_Variance</title>
</head>
<body>
<script>
const arr = [70,71,70,74,75,73,72]
// 平均値を計算
let sum = 0;
arr.forEach((x, i) => sum += x)
const ave = sum / arr.length;
// 分散を計算
let dist = 0;
arr.forEach((x, i) => dist += (x - ave) ** 2)
const unbiasedVariance = dist / (arr.length-1); //不偏分散
const SD = Math.sqrt(dist / (arr.length-1));
// 歪度と尖度を計算
let sum3 = 0;
let sum4 = 0;
for (var i in arr){
sum3 += Math.pow((arr[i] - ave)/SD, 3);
sum4 += Math.pow((arr[i] - ave)/SD, 4);
}
const skew = sum3*arr.length/(arr.length-1)/(arr.length-2);
const exKurt = arr.length*(arr.length+1)/(arr.length-1)/(arr.length-2)/(arr.length-3)*sum4 - 3*(arr.length-1)*(arr.length-1)/(arr.length-2)/(arr.length-3);
console.log(unbiasedVariance);
console.log(skew);
console.log(exKurt);
</script>
</body>
</html>
javascriptはコピペで使用が主なので複雑な計算方法の書き方は分かりません、そこでこんな形のコピペのコードが出来上がりました。
配列から歪度と尖度を求めるコードをもっとすっきりした形になればと思い質問しました。もし宜しければご教授お願います。