Class Comparison: 比較不同Class的類別, 屬性
Class Discovery: 從一群Data中去歸類, 相似性
Class Prediction: 有新的data, 能不能用來歸類於現有的Class
Class Comparison
找出顯著差異的.
不考慮基因與基因的Interactions.
用FoldChange(FC) = Expression of Experriment al Sample / Expresssion of Reference Sample
可用Scatter plots 及 MA-plots Visualized, 但Fold-Change沒辦法找出顯著差異, 不具有統計意義,但還是很多人喜歡使用, why? 因為統計上需要大量的SAMPLE, 而一般實驗沒有那麼多的sample, 只能用Fold Change 來表示.
P-value: 機率的概念. 在正常情況下, 我看到這樣的CASE的機率到底有多少? 例如: 在大家都買樂透的情況下. p-value越小越好, 表示越顯著. alpha-value是臨界值, 若p-value小於alpha-value, 則有顯著. 所以一般上習慣把alpha-value設得比較小.
分析一般的 Microarray data方法:
Parametric Hypothesis Testing (有常態分布)
- Paired Data :z-test, t-test
- Unpaired Data :two-sample, t-test
- Complex Data (more than 2 groups) :One-way Analysis of Variance(ANOVA)
Non-Parametric Hypothesis Testing (不合常態分布)
- Paired data: Sign test, Wilcoxon signed-rank test
- Unpaired Data :Wilcoxon rank-sum test, (Mann-Whitney U test).
- Complex Data :Kruskal-Wallis test
如何知道有無常態分布? 用 QQplot, Shapiro….
Parametric Statistics
Paired Data: 如化療前, 化療後的比較, 吃藥前, 吃藥後.
t.test(x,y,paired =TRUE, alternative = c(“two.sided”, “less”, “greater”))
一定要先對好兩組數據, 然後參數paired = TRUE要寫.
Unpaired Data: sample來自不同的地方
先用var.test 測試p-value是否有顯著, 若越大就越不顯著.
if(sigmaa = sigmab),
var.test(x,y, var.equal = TRUE)
if(sigmaa != sigmab),
var.test(x,y, var.equal=FALSE)
Complex Data: (Using ANOVA)
Example: All dataset
y = drop(exprs(eset[1,]))
out = lm(y~factor(c1)) //lm 變方分析
anova(out)
Non-Parametric Statistics
基本上microarray 是很雜亂的, 不適合用以上的parametric 方式, 故使用這種統計方式.
Paired
wilcox.test(x, y, paired= TRUE, alternative = c(“two.sided”, “less”, “greater”))
Unpaired
wilcox.test(x, y, alternative = c(“two.sided”, “less”, “greater”))
Anova
參考投影片
Permutation Tests
What’s this? 排列. 隨機排列.
比如說, 有10個基因, 每個作2次 就有20次. 把10個結果作隨機排列, 分前五個, 後五個, 計算每個出現的機率.
會形成一個常態分布. Steps可參考教學投影片.
資料數太少的時候不適合用Permutation test, 應該使用”Bootstrap”.
用R作permutation test:
“multtest” package
mt.sample.teststat: to compute permuted statistcs
mt.sample.rawp: to compute the p-values
Note: “test” includes:
t, t.equalvar, pairt, wilcoxon, f
Bootstrap
boot.out = boot(englife, function(x, id) {median(x[id])}, 1000}
how many bootstraps ? rule of thumb: 100 times. 可以再試試看1000次, 10000次.
發佈留言