官术网_书友最值得收藏!

Comparing scaled data using the Pearson correlation coefficient

Another way to measure how closely two items relate to each other is by examining their individual trends. For example, two items that both show an upward trend are more closely related. Likewise, two items that both show a downward trend are also closely related. To simplify the algorithm, we will only consider linear trends. This calculation of correlation is called the Pearson correlation coefficient. The closer the coefficient is to zero, the less correlated the two data sets will be.

The Pearson correlation coefficient for a sample is calculated using the following formula:

How to do it...

Create a new file, which we will call Main.hs, and perform the following steps:

  1. Implement main to compute the correlation coefficient between two lists of numbers:
    main :: IO ()
    main = do
      let d1 = [3,3,3,4,4,4,5,5,5]
      let d2 = [1,1,2,2,3,4,4,5,5]
      let r = pearson d1 d2
      print r
  2. Define the function to compute the Pearson coefficient:
     pearson xs ys = (n * sumXY - sumX * sumY) / 
                     sqrt ( (n * sumX2 - sumX*sumX) * 
                            (n * sumY2 - sumY*sumY) )
    
      where n = fromIntegral (length xs)
            sumX = sum xs
            sumY = sum ys
            sumX2 = sum $ zipWith (*) xs xs
    
            sumY2 = sum $ zipWith (*) ys ys
            sumXY = sum $ zipWith (*) xs ys
  3. Run the code to print the coefficient.
    $ runhaskell Main.hs
    
    0.9128709291752768
    

How it works...

The Pearson correlation coefficient measures the degree of linear relationship between two variables. The magnitude of this coefficient describes how strongly the variables are related. If positive, the two variables change together. If negative, as one variable increases, the other decreases.

主站蜘蛛池模板: 屯昌县| 久治县| 呼玛县| 内江市| 香港 | 文安县| 贡觉县| 澄城县| 青冈县| 大冶市| 义乌市| 佛山市| 拉孜县| 抚宁县| 大石桥市| 涿鹿县| 沅陵县| 克拉玛依市| 南宫市| 含山县| 安乡县| 济宁市| 饶河县| 曲周县| 石楼县| 奈曼旗| 云和县| 工布江达县| 宜川县| 晋州市| 东乌珠穆沁旗| 南平市| 丰城市| 赣州市| 定远县| 虹口区| 油尖旺区| 西充县| 宿州市| 沿河| 泽普县|