應用統計學與R語言實現學習筆記(七)——擬合優度檢驗

胖胖雕發表於2017-05-10

Chapter 7 Goodness of Fit

本篇是第七章,內容是擬合優度檢驗。

1.多項分佈

擬合優度檢驗的第一個應用是關於多項總體。那麼多項總體(或者多項分佈)是什麼呢?

  • 多項分佈是二項分佈的推廣。
  • 總體被分為幾個互不相交的類別。
  • 多項分佈假設:每次試驗有且僅有一個結果發生;每次試驗獨立;每次試驗概率不變。

擬合優度檢驗-多項總體步驟

  • 將所觀測到的資料與理論上的期望值進行比較。
  • 步驟:
    1.計算每一類實際觀測到的頻次fi
    f_i

    2.計算每一類理論上的期望頻次ei
    e_i

    3.計算 Chi-square 統計量——χ2=(fiei)2/ei
    \chi^2=\sum(f_i-e_i)^2/e_i

    其中自由度 (df) = k-1, k 是多項總體的類別數。

擬合優度檢驗用於多項總體檢驗沒有直接的函式,這裡用R語言的自編函式實現,體會下具體的演算法(當然感覺自己寫的略複雜)。程式碼依舊是後面放出,函式具體使用說明也會附上。

2.獨立性

依舊是從問題出發——性別與購物頻率是否有關係
獨立性檢驗——該統計方法常用於檢驗兩個分類變數是否有關係。那麼首先要提到兩個概念——獨立事件和非獨立事件(independent and dependent events)。

  • 獨立事件——一個事物發生不會對其他事物發生概率造成影響。
  • 非獨立事件——一個事物發生會影響其他事物發生概率。

接著統計學構建出了一個表來進行獨立性檢驗。這就是聯立表(Contingency Tables)。

  • 解決多總體比例問題。
  • 之前通常用兩個或兩個以上特徵來對樣本觀測值分類。
  • 也被稱為交叉表。

這裡寫圖片描述

一般在R中,使用Table函式即可生成兩個特徵(分類變數)的聯立表,xtabs則是根據公式創立聯立表,prop.table則可以直接計算出比例。
聯立表如何做獨立性檢驗呢?首先提出假設(這裡不詳述,相信大家應該懂怎麼建立了),接著計算期望的聯立表每個單元格的期望頻次。

eij=(ithRowtotal)(jthColumtotal)TotalSampleSize
e_{ij}=\frac{(i^{th} Rowtotal)(j^{th} Columtotal)}{Total SampleSize}。

接著就可以對比實際頻次和期望頻次,然後我們用卡方(chi-square)統計量進行檢驗。
χ2=i=1nj=1m(fijeij)2eijwith,df=(n1)(m1)
\chi^2=\sum_{i=1}^n\sum_{j=1}^m\frac{(f_{ij}-e_{ij})^2}{e_{ij}} with, df=(n-1)(m-1)。

n為行數,m為列數,fij
f_{ij}
,eij
e_{ij}
分別為第i行和第j列的ij
單元格_{ij}
實際頻次和期望頻次。
當然這個方法也可以用來檢驗順序變數和分類變數。方法類似,這裡不贅述。

3.概率分佈

擬合優度檢驗的最重要的應用其實是探測一個資料具體的概率分佈。
當然探測資料分佈的第一方式——是可見即可得的視覺化。主要包括前面提到過的直方圖和QQ圖。
QQ圖——Quantile-Quantile Plots(分位數圖):

  • 適用於小資料集。
  • 猜測分佈的基礎方法。
  • 用來繪製QQ圖的資料必須落在該分佈內。
  • 如果散點圖接近直線,說明資料分佈接近正態分佈。

這裡給出繪製QQ圖的原理:

  • 對樣本容量為N的樣本資料按照升序排序。
  • 計算從1到N排序的百分比。
  • 從百分位數得分的關係找到中心分數。
  • 找到對應於中心分數的z值(標準正態分佈)。
  • 繪製對應z值的觀測點資料。

接著用R語言實現

#QQ plot
#generation of random number that fall in normal distribution
a<-rnorm(200,0,1)

#plot
jpeg("plot1.jpg",width = 5000,height = 4000,units = "px",res = 1000)
qqnorm(a)
qqline(a,col="red")
dev.off()

這裡寫圖片描述

除了QQ圖之外,另外一類方法就是通過統計方法——擬合優度檢驗來探測資料是否正態分佈。
以正態分佈為例。
過程:

  • 獲取樣本資料。
  • 將樣本結果分組(單元格)。
  • 比較實際與預期值。

統計量如下:

χ2=i=1k(fiei)2ei
\chi^2=\sum_{i=1}^k\frac{(f_i-ei-)^2}{e_i}。

R語言中可以用chisp.test函式進行正態分佈測驗。

此外對於有某種特定分佈的非正態資料可以通過數學變換轉變為正態分佈資料。
常用的一般包括:

  • 對數變換。
  • 開方變換。
  • 指數或平方變換。

這裡的數學變換需要根據大家實際研究需求決定。

相關文章