多重比較中LSD HSD的計算方法

2021-10-24 16:23:55 字數 1874 閱讀 9654

agricolae包中的相關函式可以實現大多數多重比較的分組標記。

lsd方法採用了t檢驗的方式。

#

model<-aov(sepal.length~species, data=iris)

summary(model) # 方差分析模型

#lsd.test結果

out <- lsd.test(model,"species", p.adj="none",console=t)

> out$statistics$lsd

0.2034688

#self calculation

#mse=sum of residuals /df

#lsd=t(1-alpha/2,df)*sqrt(mse*2/n)

> lsd=qt(1-0.05/2,model$df.residual)*

sqrt(sum(model$residual^2)/

model$df.residual*2/(

length(model$residuals)/length(model$coefficients)))

> lsd

0.2034688

嚴格校正的如bonferroni,即控制alpha』=alpha/k, k為比較次數。

out <- lsd.test(model,"species", p.adj="bonferroni",console=f)

#alpha=alpha/k $k is comparison times

> out$statistics

mserror df mean cv t.value msd

0.2650082 147 5.843333 8.809859 2.421686 0.2493317

# 手動計算

msd=qt(1-0.05/2/choose(model$rank,2),model$df.residual)*

sqrt(sum(model$residual^2)/

model$df.residual*2/(

length(model$residuals)/length(model$coefficients)))

> msd

[1] 0.2493317

turkey又稱hsd,其服從q分布,即students range。

hsd=q(1-alpha,k,n-k)*sqrt(mse/n)

k為組數,n為樣本總數,n為每組樣本數

out <- hsd.test(model,"species",console=f)

> out$statistics

mserror df mean cv msd

0.2650082 147 5.843333 8.809859 0.2437727

# in hsd, the difference is q distribution

# hsd=q(1-alpha,k,df)$sqrt(mse/n)

msd=qtukey(1-0.05,model$rank,model$df.residual)*

sqrt(sum(model$residual^2)/model$df.residual/

(length(model$residuals)/length(model$coefficients)))

> msd

[1] 0.2437727

從上面結果的lsd(0.20)
多重比較的問題

在統計學中,當同時考慮一系列的統計推斷或者基於觀察值選擇的引數的子集時會發生多重比較的問題 multiple comparisons problem 原因 當乙個人把子集作為整體的估計時,錯誤的推斷很可能發生,包括置信區間沒有包含相應的總體引數或者是假設檢驗錯誤地拒絕了零假設。對此,我舉出兩個例子作...

多重繼承 C 中的多重繼承

多重繼承是c 的一項功能,其中乙個類可以從多個類繼承。繼承類的建構函式以它們繼承的相同順序被呼叫。例如,在以下程式中,在a的建構函式之前呼叫b的建構函式。include using namespace std class a class b class c public b,public a not...

OpenGL中的多重取樣

抗鋸齒處理的最大優點之一就是它能夠使多邊形的邊緣更為平滑,使渲染效果顯得更為逼真和自然。點和直線的抗鋸齒處理是得到廣泛支援的,但遺憾的是,對多邊形的平滑處理並沒有在所有平台上都得到實現。並且,即使在可以使用gl polygon smooth的時候,對整個場景進行抗鋸齒處理也沒有想象中的那麼方便。這是...