DALS002-統(tǒng)計推斷(Inference)01-概率分布


title: DALS002-統(tǒng)計推斷(Inference)01-概率分布
date: 2019-07-22 12:0:00
type: "tags"
tags:

  • 統(tǒng)計推斷
    categories:
  • 生物統(tǒng)計

前言

這篇筆記是《Data Analysis for the Life Sciences》的第2章页滚,統(tǒng)計推斷(Inference)蛹含。這一部分的主要內(nèi)容涉及p值佳遂,置信區(qū)間(confidence intervals)台妆。

先來看一篇文獻,文獻信息如下所示:

Winzell, M. S. and B. Ahren (2004). "The high-fat diet-fed mouse: a model for studying mechanisms and treatment of impaired glucose tolerance and type 2 diabetes." Diabetes 53 Suppl 3: S215-219.
這篇文獻的摘要部分有這么一句話:

Body weight was higher in mice fed the high-fat diet already after the first week, due
to higher dietary intake in combination with lower metabolic efficiency.

上面摘要的這句話的意思是词身,飼喂高脂飲料的小鼠冶匹,在前一周內(nèi),體重上升叙谨,這是由能量攝入較高,外加代謝消耗低導致的保屯。

為了支持這種結(jié)論手负,作者在結(jié)果部分提到了這些話:

Already during the first week after introduction of high-fat diet, body weight increased
significantly more in the high-fat diet-fed mice (+1.6± 0.1g) than in the normal diet-
fed mice (+ 0.2±0.1 g; P < 0.001)

當小鼠在第1周內(nèi)飼喂高脂飲料后,飲喂高脂飼料的小鼠體重的增加 (+1.6± 0.1g) 明顯高于普通飼料飼喂的小鼠體重增加(+0.2±0.1g; P < 0.001)姑尺。

這里面有幾個地方需要注意虫溜,第一就是P<0.001。第二就是±股缸。

要了解這兩個內(nèi)容衡楞,第一步就需要理解隨機變量(random variables),這里使用作者在Github上提供的原始數(shù)據(jù)來計算敦姻,在第1篇筆記中已經(jīng)提到瘾境,導入數(shù)據(jù)如下所示:

filename <- file.path(dir,"extdata/femaleMiceWeights.csv")
dat <- read.csv(filename)

我們先要來研究一個問題:給小鼠特定的飼料,幾周后小鼠的體重是否會增加镰惦?現(xiàn)在我們從Jackson實驗室(Jackson實驗室是全球最大的實驗小鼠供應商)購買了24只小鼠迷守,隨機分布它們吃正常的飼料(chow)和高脂飼料(hf, high fat),幾周后旺入,研究人員稱量小鼠的體重兑凿,獲取數(shù)據(jù)如下所示:

> head(dat)
  Diet Bodyweight
1 chow      21.51
2 chow      28.14
3 chow      24.04
4 chow      23.45
5 chow      23.68
6 chow      19.79

現(xiàn)在問題來了,飼喂高脂飼料(hf)的小鼠體重是否更重茵瘾?從數(shù)據(jù)中我們可以知道礼华,在hf組,編號24的小鼠體重是20.73g拗秘,它是最輕的小鼠圣絮,但是編號21的小鼠是34.02g,它是最重的小鼠雕旨,但是它們吃的都是高脂飼料扮匠,無法比較。此時凡涩,我們把這些小鼠體重的變化稱為變異(variability)棒搜。

再回到那篇文獻,那篇文獻下結(jié)論的時候活箕,指的變量就是小鼠體重的平均變化力麸,現(xiàn)在我們計算每組小鼠的平均變化,如下所示:

library(dplyr)
control <- filter(dat, Diet == "chow") %>% select(Bodyweight) %>% unlist
treatment <- filter(dat, Diet == "hf") %>% select(Bodyweight) %>% unlist
print(mean(treatment))
print(mean(control))
obsdiff <- mean(treatment) - mean(control)
obsdiff

結(jié)果如下所示:

> print(mean(treatment))
[1] 26.83417
> print(mean(control))
[1] 23.81333
> obsdiff <- mean(treatment) - mean(control)
> obsdiff
[1] 3.020833

從結(jié)果中我們可以發(fā)現(xiàn),hf組小鼠的平均體重大概高于chow組小鼠平均體重的10%末盔。為什么在這個地方我們不能下確定的結(jié)論,還需要一個p值(p-value)與置信區(qū)間(confidence intervals)座慰?

這是因為這些均數(shù)數(shù)是隨機變量陨舱,如果我們再重復一次實驗,也就是說版仔,我們再從Jackson實驗室購買24只小鼠游盲,隨機將它們分為2組,一組hf蛮粮,一組chow益缎,我們還會得到一個不同的平均值。每重復一次然想,都會得到一個平均值莺奔,我們稱這樣的數(shù)據(jù)為隨機變量(random variable)。

隨機變量(random variable)

現(xiàn)在我們進一步研究隨機變量变泄。試想令哟,我們能夠獲取所有對照組小鼠的體重,把它們都放在R中計算妨蛹,從統(tǒng)計學角度來說屏富,這個所有的對照組小鼠的體重就是總體(population),我們可以從這個總體中隨機抽取24只小鼠蛙卤,事實上來說狠半,我們不可能拿到總體,因為太大了颤难,不過我們可以模擬這個思路神年,現(xiàn)在下載這個數(shù)據(jù),如下所示:

dir <- system.file(package = "dagdata")
filename <- file.path(dir,"extdata/femaleControlsPopulation.csv")
population <- read.csv(filename)
population <- unlist(population) # turn it into a numeric

現(xiàn)在我們隨機從總體(population)中抽取12個樣本行嗤,如下所示:

control <- sample(population, 12)
mean(control)
control <- sample(population, 12)
mean(control)
control <- sample(population, 12)
mean(control)

運行結(jié)果如下所示:

> control <- sample(population, 12)
> mean(control)
[1] 23.33917
> control <- sample(population, 12)
> mean(control)
[1] 23.53917
> control <- sample(population, 12)
> mean(control)
[1] 24.18167

現(xiàn)在我們可以發(fā)現(xiàn)瘤袖,每次抽取的時候,平均都發(fā)生了變化昂验,我們可以一直這么重復的抽樣下去捂敌,然后就能了解隨機變量的分布。

零假設(shè)(Null Hypothesis)

現(xiàn)在我們再回到前面的那個hf組與chow組小鼠平均體重差值的變量obsdiff上來既琴。眾所周知占婉,科學家都有懷疑精神,我們做了一次實驗甫恩,我們?nèi)绾沃?code>obsdiff這個是由飲食造成的呢逆济?如果我們給這2組小鼠都喂同樣的飼料,結(jié)果會是什么呢?萬一obsdiff這個值更大咋辦奖慌?統(tǒng)計學家們就把這種情況稱為零假設(shè)(Null Hypothesis)抛虫。這個零(null)指的就是懷疑的方向:我認為這2組小鼠的體重沒有差異的可能性(possibility)有多大(credence)。(注:原話是:we give credence to the possibility that there is no difference)简僧。

因為我們假設(shè)了我們能夠獲得總體建椰,我們實際上可能盡可能多地觀察到,當飼料沒對體重沒有影響時的差值〉郝恚現(xiàn)在我們假設(shè)隨機取了24只對照小鼠棉姐,把它們分為2組,也就是每組12只啦逆,現(xiàn)在我們觀察一下它們平均體重值的差值伞矩,如下所示:

control <- sample(population, 12) # control mice
treatment <- sample(population, 12)
# We assume high diet have no effect on weight
print(mean(treatment) - mean(control))

結(jié)果如下所示:

> print(mean(treatment) - mean(control))
[1] 0.2275

現(xiàn)在我們重復這個過程1萬次(最好不要使用for循環(huán),這里可以使用replicate()函數(shù))夏志,如下所示:

n <- 10000
null <- vector("numeric", n)
for (i in 1:n){
  control <- sample(population, 12)
  treatment <- sample(population, 12)
  null[i] <- mean(treatment) - mean(control)
}

其中變量null就是我們稱的零分布(null distribution)乃坤,它里面有10000個差值,現(xiàn)在我們來計算一下沟蔑,這里面的10000個差值與前面obsdiff的比較(原來過計算的obsdiff為3.020833)侥袜,看一下大于原來的3.020833這個數(shù)字的比例有多大,如下所示:

mean(null >= 3.020833)

如下所示:

> mean(null >= 3.020833)
[1] 0.013

這個比例是0.013溉贿,也就是1.3%枫吧,也就是說,假設(shè)飼料對小鼠的體重沒有影響宇色,我們重復1萬次實驗九杂,只有1.3%的比例,也就是說只有130次實驗能說明“飼料對小鼠的體重沒影響”這個結(jié)論宣蠕,另外9870次我們都得不出這個結(jié)論例隆,因此,即使作為懷疑性極強的科學們家抢蚀,也只能說镀层,當飼料對體重沒有影響時,我們只能看到1.3%的的可能性皿曲。這就是p值唱逢。

下面是通過replicate()函數(shù)來實現(xiàn)上述過程,如下所示:

null_f <- function(x){
  control <- sample(x, 12)
  treatment <- sample(x, 12)
  null <- mean(treatment) - mean(control)
  return(null)
}

null_result <- replicate(n, null_f(population))
mean(null_result>=3.020833)

結(jié)果如下所示:

> mean(null_result>=3.020833)
[1] 0.0123

1.23%屋休。

分布(distributions)

分布簡單來說就是坞古,對大量數(shù)據(jù)的精簡描述,例如你測量了一個總體中的所有男性的身高劫樟,現(xiàn)在你需要把這些數(shù)據(jù)向一個外星人描述痪枫,而這個外星人從來沒到過地球织堂,數(shù)據(jù)如下所示:

library(UsingR)
x <- father.son$fheight

注:這個包UsingR是《Using R for Introductory Statistics》 Second Edition的數(shù)據(jù)。其中father.son這個數(shù)據(jù)集含有的是父親的身高與兒子的身高(單位是英寸)奶陈,用于研究Pearson相關(guān)系數(shù)易阳。

現(xiàn)在向外星人描述比較簡單的方法就是把它們都列出來,現(xiàn)在我們隨機選擇10個數(shù)據(jù)吃粒,如下所示:

round(sample(x,10),10)

如下所示:

> round(sample(x,10),10)
 [1] 65.25267 62.41134 68.83427 66.69404 65.98544 69.60692 71.96564 68.11283 67.93353
[10] 67.41537

累積分布函數(shù)(Cumulative Distribution Function, CDF)

通過查看這些數(shù)字潦俺,我們了解一個大概,但是非常低效声搁。但是我們可以通過一個分布曲線(distribution)來畫一下這些數(shù)據(jù),現(xiàn)在我們定義一下分布捕发,先取一個值a疏旨,小于a值的數(shù)字的比例,就是分布扎酷,如下所示:
F(a) \equiv \operatorname{Pr}(x \leq a)

這個函數(shù)叫累積分布函數(shù)(CDF)檐涝,當CDF來源于一個數(shù)據(jù)集中,而不是理論值時法挨,我們就稱它為經(jīng)驗累積分布函數(shù)(empirical CDF, ECDF)谁榜,我們可以畫出這個分布曲線,如下所示:

smallest <- floor(min(x))
largest <- ceiling(max(x))
values <- seq(smallest, largest, len=300)
heightecdf <- ecdf(x)
plot(values, heightecdf(values), type="l",
     xlab="a(Height in inches)", ylab="Pr(x <= a)")
image

直方圖(Histograms)

ecdf這個函數(shù)在R中并不常用凡纳,現(xiàn)在我們使用區(qū)間的形式來給出間內(nèi)的比例窃植,如下所示:

\begin{equation} \operatorname{Pr}(a \leq x \leq b)=F(b)-F(a) \end{equation}

使用直方圖更加直觀,因為我們多數(shù)感興趣的是某個區(qū)間的高度荐糜,例如70到71這個區(qū)間的比例巷怜,而很少會去看低于70這個比例,直方圖如下所示:

hist(x)
image

可以對這個直方圖做進一步的修飾暴氏,如下所示:

bins <- seq(smallest, largest)
hist(x, breaks=bins, xlab="Height(in inches)", main="Adlt men heights")
image

這種圖比純列數(shù)字更加直觀延塑,從圖上我們大致就能判斷出高于72英寸的人大概有70個人。

概率分布(Probability Distribution)

分布的一個更加重要的功能是用于描述一個隨機變量的可能結(jié)果答渔。與一組固定的數(shù)據(jù)不同关带,我們實際上無法觀測到隨機變量的所有可能結(jié)果,因此沼撕,我們在這種情況下宋雏,不描述比例(proportions),而是用于描述概率(probabilities)务豺。例如好芭,當我們從上面的那組身高數(shù)據(jù)中取機挑一個數(shù)字,它落在a與b區(qū)間內(nèi)的概率就可以用下面的公式表示:
\operatorname{Pr}(a \leq X \leq b)=F(b)-F(a)
上面公式中的X表示隨機變量冲呢,這個公式定義了隨機變量的概率分布舍败。例如,在這種情況下,如果我們知道了零假設(shè)下的小鼠體重均值的差值分布是真的邻薯,那么裙戏,我們就能在這個分布上找到與我們實驗中計算出的值對應值的概率,也就是p值厕诡。

在前面的案例中累榜,我們計算了10000個零假設(shè)下的隨機變量概率分布(這種重復抽樣的方法叫蒙特卡羅法,Monte Carlo),現(xiàn)在我們再重復一次灵嫌,不過這次有所不同壹罚,在每重復做一次實驗,我們就把這個點添加到圖片上寿羞,如下所示:

library(rafalib)
n <- 100
nullplot(-5, 5, 1, 30, xlab="Observed differences(grams)", ylab="Frequencey")
totals <- vector("numeric",11)
for (i in 1:n){
  control <- sample(population, 12)
  treatment <- sample(population, 12)
  nulldiff <- mean(treatment) - mean(control)
  j <- pmax(pmin(round(nulldiff)+6, 11),1)
  totals[j] <- totals[j]+1
  text(j-6, totals[j], pch=15, round(nulldiff,1),cex=1)
  if(i <15) Sys.sleep(1) # See values appear slowly
}
image

上面的圖其實就是一個直方圖猖凛,obsdiff最初的值是3.020833,從上面的圖我們可以知道绪穆,與這個值接近的數(shù)字很少辨泳。

從前面我們計算的null可以看出來,如下所示:

hist(null, freq=TRUE)
abline(v=obsdiff, col="red", lwd=2)
image

上面是我們手動計算Pr(a)的過程玖院,但多數(shù)情況下菠红,一些分布的Pr(a)公式都是已知的,例如正態(tài)分布难菌。

正態(tài)分布(Normal Distribution)

正態(tài)分布是最常見的分布之一试溯,normal就是正常,常見的意思郊酒,它的公式如下所示:
\operatorname{Pr}(a<x<b)=\int_{a}^耍共 \frac{1}{\sqrt{2 \pi \sigma^{2}}} \exp \left(\frac{-(x-\mu)^{2}}{2 \sigma^{2}}\right) d x

在R的pnorm()函數(shù)中,a通常是負無窮猎塞,b則是你要計算的參數(shù)试读,另外,要計算區(qū)間的概率荠耽,還需要兩個參數(shù)钩骇,分別是均值與標準差,即pnomr(x, mu, sigma)铝量,這個公式計算的就是小于x的這值的概率倘屹,現(xiàn)在回到前面的obsdiff(3.020833)這個變量上來,我們計算一下:

1 - pnorm(obsdiff, mean(null),sd(null))

如下所示:

> 1 - pnorm(obsdiff, mean(null),sd(null))
[1] 0.01377017

小結(jié)

計算hf組與chow組小鼠的體重差異的p值是非常簡單的慢叨。為了做這個計算纽匙,我們可以買來所有的小鼠,來重復的計算拍谐,找到零假設(shè)烛缔,但是不現(xiàn)實馏段,因此我們要使用統(tǒng)計推斷(Statistical Inference)的思想,這種思想可以允許我們使用少量的樣本践瓷,例如24只小鼠就能得到一個相對靠譜的結(jié)論院喜。

練習

原書P37

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市晕翠,隨后出現(xiàn)的幾起案子喷舀,更是在濱河造成了極大的恐慌,老刑警劉巖淋肾,帶你破解...
    沈念sama閱讀 206,013評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件硫麻,死亡現(xiàn)場離奇詭異,居然都是意外死亡樊卓,警方通過查閱死者的電腦和手機拿愧,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,205評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來简识,“玉大人赶掖,你說我怎么就攤上這事感猛∑呷牛” “怎么了?”我有些...
    開封第一講書人閱讀 152,370評論 0 342
  • 文/不壞的土叔 我叫張陵陪白,是天一觀的道長颈走。 經(jīng)常有香客問我,道長咱士,這世上最難降的妖魔是什么立由? 我笑而不...
    開封第一講書人閱讀 55,168評論 1 278
  • 正文 為了忘掉前任照激,我火速辦了婚禮砾跃,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘腮鞍。我一直安慰自己弛房,他們只是感情好道盏,可當我...
    茶點故事閱讀 64,153評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著文捶,像睡著了一般荷逞。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上粹排,一...
    開封第一講書人閱讀 48,954評論 1 283
  • 那天种远,我揣著相機與錄音,去河邊找鬼顽耳。 笑死坠敷,一個胖子當著我的面吹牛妙同,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播常拓,決...
    沈念sama閱讀 38,271評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼渐溶,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了弄抬?” 一聲冷哼從身側(cè)響起茎辐,我...
    開封第一講書人閱讀 36,916評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎掂恕,沒想到半個月后拖陆,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,382評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡懊亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,877評論 2 323
  • 正文 我和宋清朗相戀三年依啰,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片店枣。...
    茶點故事閱讀 37,989評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡速警,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出鸯两,到底是詐尸還是另有隱情闷旧,我是刑警寧澤,帶...
    沈念sama閱讀 33,624評論 4 322
  • 正文 年R本政府宣布钧唐,位于F島的核電站忙灼,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏钝侠。R本人自食惡果不足惜该园,卻給世界環(huán)境...
    茶點故事閱讀 39,209評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望帅韧。 院中可真熱鬧里初,春花似錦、人聲如沸忽舟。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,199評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽萧诫。三九已至斥难,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間帘饶,已是汗流浹背哑诊。 一陣腳步聲響...
    開封第一講書人閱讀 31,418評論 1 260
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留及刻,地道東北人镀裤。 一個月前我還...
    沈念sama閱讀 45,401評論 2 352
  • 正文 我出身青樓竞阐,卻偏偏與公主長得像,于是被迫代替她去往敵國和親暑劝。 傳聞我的和親對象是個殘疾皇子骆莹,可洞房花燭夜當晚...
    茶點故事閱讀 42,700評論 2 345

推薦閱讀更多精彩內(nèi)容