皮爾森相關性
-
樣本相關與它代表的總體相關會存在一些誤差。即使總體之間不存在相關,任然可能會獲得一個非零相關,對于小樣本來說尤其如此
- 當樣本只有兩個數(shù)據(jù)時,兩點之間會形成一條完全的直線,樣本的相關一定是r=+1.00或r=-1.00。所以只有當數(shù)據(jù)包含兩個以上的點的時候,樣本的相關才能自由地變化
- 當相關系數(shù)越接近1或-1說明,線性相關越強;當相關系數(shù)接近0,說明沒有相關關系;其他情況則說明有相關關系,但不是線性相關
斯皮爾曼
- 把數(shù)據(jù)轉換成等級,取均值來計算相關系數(shù)
- 斯皮爾曼相關系數(shù)對于數(shù)據(jù)錯誤和極端值的反應不敏感
- 如果兩個變量間存在的一致單方向關系被稱為單調(diào)相關關系,則用斯皮爾曼計算出來的結果的相關關系更強
卡方檢驗

卡方分布的臨界值表
卡方檢驗就是統(tǒng)計樣本的實際觀測值與理論推斷值之間的偏離程度,實際觀測值與理論推斷值之間的偏離程度就決定卡方值的大小,卡方值越大,越不符合;卡方值越小,偏差越小,越趨于符合,若兩個值完全相等時,卡方值就為0,表明理論值完全符合
val data = Seq(
(0.0, Vectors.dense(0.5, 10.0)),
(0.0, Vectors.dense(1.5, 20.0)),
(1.0, Vectors.dense(1.5, 30.0)),
(0.0, Vectors.dense(3.5, 30.0)),
(0.0, Vectors.dense(3.5, 40.0)),
(1.0, Vectors.dense(3.5, 40.0))
)
val df = data.toDF("label", "features")
val chi = ChiSquareTest.test(df, "features", "label").head
println(s"pValues = ${chi.getAs[Vector](0)}")
println(s"degreesOfFreedom ${chi.getSeq[Int](1).mkString("[", ",", "]")}")
println(s"statistics ${chi.getAs[Vector](2)}")
- 第一行表示顯著性水平α,第一列表示自由度
- 自由度等于V = (行數(shù) - 1) * (列數(shù) - 1),對四格表,自由度V = 1
- 一般取顯著性水平α為0.05
- 當樣本太少還要注意卡方檢驗的修正
總結器
- mean:平均數(shù)
- variance: 樣本方差
- weight: 權重
