T-Test

將單個樣本與平均值進行比較的置換檢驗

  • July 28, 2013

當人們實施置換檢驗以將單個樣本與均值進行比較時(例如,您可能使用置換 t 檢驗),均值是如何處理的?我已經看到了採用平均值和样本進行置換測試的實現,但不清楚它們實際上在做什麼。是否有一種有意義的方法可以對一個樣本與假設的平均值進行置換檢驗(例如 t 檢驗)?或者,或者,他們只是默認使用引擎蓋下的非排列測試?(例如,儘管調用了置換函數或設置了置換測試標誌,但默認為標準 t 檢驗或類似函數)

在標準的兩樣本置換測試中,一個人會有兩組並隨機分配標籤。但是,當一個“組”是假定的平均值時,如何處理?顯然,假設平均值本身沒有樣本量。那麼,將均值轉化為排列格式的典型方法是什麼?“平均”樣本是否假定為單點?與樣本組大小相等的樣本?一個無限大的樣本?

假設一個假設的平均值是假設的——我會說它在技術上具有無限的支持,或者你想為它假設的任何支持。但是,這些對於實際計算都不是很有用。一個大小相等的樣本,其值都等於平均值,這似乎是某些測試有時會做的事情(例如,您只需用假定的位置填充另一半對)。這有點道理,因為如果假設的均值正確且沒有方差,您會看到它是等長樣本。

所以我的問題是:在實踐中,當第二組是平均值(或類似的抽象假設值)時,人們是否真的在模擬排列測試樣式標籤隨機化?如果是這樣,人們在這樣做時如何處理標籤隨機化?

將 Glen_b的評論擴展為答案

通過為樣本中的數據分配隨機符號來實現針對零均值的零假設的樣本均值的近似單樣本置換檢驗。可以通過從數據中減去所需的零均值來測試非零零假設。

onetPermutation這在包中的 R 函數的源代碼中很容易看到DAAG。這是相關代碼的摘錄,我添加了註釋:

function (x, nsim) {

 ## Initialize and pre-allocate

 n <- length(x)
 dbar <- mean(x)
 absx <- abs(x)  # there's actually a bug in the code; below you'll see that the function ends up re-computing abs(x) instead of using this
 z <- array(, nsim)


 ## Run the simulation 

 for (i in 1:nsim) {                             # Do nsim times:
     mn <- sample(c(-1, 1), n, replace = TRUE)   # 1. take n random draws from {-1, 1}, where n is the length of the data to be tested
     xbardash <- mean(mn * abs(x))               # 2. assign the signs to the data and put them in a temporary variable
     z[i] <- xbardash                            # 3. save the new data in an array
 }


 ## Return the p value
 # p = the fraction of fake data that is:
 # larger than |sample mean of x|, or
 # smaller than -|sample mean of x|

 (sum(z >= abs(dbar)) + sum(z <= -abs(dbar)))/nsim
}

引用自:https://stats.stackexchange.com/questions/65831

comments powered by Disqus