使用 TypeScript 陣列求相關系數(correlation)

在資料分析中,相關系數(correlation)是一個重要的概念,它可以用來測量兩個變數之間的線性關係。在 TypeScript 中,可以使用陣列來計算相關系數,並且可以得到一個數值,以描述兩個變數之間的線性關係。

在 TypeScript 中,可以使用 Array.prototype.reduce() 方法來計算相關系數。該方法會對陣列中的每個元素執行指定的函數,並將結果累加起來,最後返回一個單一的值。

// 計算兩個陣列的相關系數
function correlation(x: number[], y: number[]) {
  const xMean = x.reduce((a, b) => a + b) / x.length;
  const yMean = y.reduce((a, b) => a + b) / y.length;

  const xDiff = x.map(x => x - xMean);
  const yDiff = y.map(y => y - yMean);

  const xDiff2 = xDiff.map(x => x * x);
  const yDiff2 = yDiff.map(y => y * y);

  const xyDiff = xDiff.map((x, i) => x * yDiff[i]);

  const numerator = xyDiff.reduce((a, b) => a + b);
  const denominator = Math.sqrt(
    xDiff2.reduce((a, b) => a + b) * yDiff2.reduce((a, b) => a + b)
  );

  return numerator / denominator;
}

上面的函數會接受兩個陣列作為參數,並計算它們之間的相關系數。首先,它會計算兩個陣列的平均值,然後計算每個元素與平均值之間的差值,並將它們平方。接著,它會將兩個陣列的差值相乘,然後將結果累加起來,最後除以兩個陣列的差值平方和的平方根,以得到最終的相關系數。

現在,我們可以使用上面的函數來計算兩個陣列之間的相關系數:

const x = [1, 2, 3, 4, 5];
const y = [2, 4, 6, 8, 10];

const correlation = correlation(x, y);
console.log(correlation); // 1

上面的程式碼會計算兩個陣列之間的相關系數,並將結果輸出到控制台。由於兩個陣列之間存在完全線性關係,因此最終的相關系數為 1。

在 TypeScript 中,可以使用陣列來計算相關系數,並得到一個數值,以描述兩個變數之間的線性關係。使用 Array.prototype.reduce() 方法可以對陣列中的每個元素執行指定的函數,並將結果累加起來,最後返回一個單一的值。

本文介紹了如何使用 TypeScript 陣列來計算相關系數,並給出了一個簡單的示例程式碼,可以用來計算兩個陣列之間的相關系數。

Categorized in:

Tagged in: