統計概率的坑(一) 大規模隨機抽樣也不准!

2021-09-02 08:22:26 字數 1559 閱讀 1553

假設一所只有 100 個學生的學校一共只開了 10 門課,每個學生只上一門課。請問平均每個班上有多少學生?

10 個學生?

think again ! 好好想想。

你去問上面例題中的學校的校長,他一定會告訴你每個班平均只有 10 個學生。但是如果你去問學生,你將會得到完全不一樣的答案。

假設這 10 門課中,有 1 門課有 30 名學生;有 2 門課每門有 20 名學生;2 門課每門 10 名學生;5 門課每門有 2 名學生。

學生數課程數301

202102

25你從 100 名學生中隨機調查 50 名,根據簡單的概率,預計會有 15 人來自 30名學生的那門課;20 人來自班級人數 20 人的那 2 門課;10 人來自班級人數 10 人的那 2 門課;5 人來自班級人數 2 人的那 5 門課

於是你讓這 50 人報出自己班級人數,然後計算一下平均數:

15 ∗30

+20∗20

+10∗10

+5∗2

50=

19.2

人\frac=19.2 人

5015∗3

0+20

∗20+

10∗1

0+5∗

2​=1

9.2人

比實際的平均數 10 人高出了 92% !!!

why?

很多國外大學非常強調師生比,比值越大,說明老師要照顧的學生數量少,每個學生也就能多分配一些精力。

但是 1:10 的師生比並不意味著每個老師大概只需要教 10 名學生。因為:

簡單來說,你上了乙個 30 名學生的課,別人上著 2 名學生的課,你被平均了呀!

更重要的是,在做班級人數抽樣調查的時候,你和你的同學這種來自大班的人有更大概率被抽中,因為你們班人數多!

這就是為什麼抽樣調查 50 人得到的平均班級人數有 19.2 人,比實際資料高出了 92%——你們這些大班的人太容易被抽中去做調查了。

如果只有抽樣得到的資料,要想算出實際情況,簡單來說就是要堅持 總人數

/班級數

總人數 / 班級數

總人數/班級

數 這個演算法。

在抽樣的 50 人中,總人數 = 50,班級數也很好算。50 人中有 15 人來自班級人數=30的班級,相當於這 15 人佔了 1/30

∗15

=0.5

1/30*15=0.5

1/30∗1

5=0.

5 個班。同理計算其他情況。

簡單來說正確演算法是:

50 130

∗15+1

20∗20+

110∗10

+12∗

5=

10\frac*15+\frac*20+\frac*10+\frac*5}=10

301​∗1

5+20

1​∗2

0+10

1​∗1

0+21

​∗55

0​=1

0這個演算法實際上就是「調和平均數(harmonic mean)」。在本案例中,樣本的調和平均數才是總體的(算術)平均數,即 10人/班。

乙個大規模爬蟲的抓取例項

乙個大規模爬蟲的抓取例項 相關引數 page 2.5億 cost 580 dollar time 40 hours machine 20 amazon ec2 storage 總共抓取了1.69 tb 目的 找到乙個有用的網路子集,實踐爬蟲和分布式計算 技術實現 分布式爬蟲 節點 amazon ec...

tomcat6關於el表示式的一大坑!

jsp 如下 向老子報到 我的groupinfo.groupnum裡的值明明是0,但是判斷到groupinfo.groupnum 這裡愣是按true來對待,我就艹他媽了!後來發現部署在tomcat7沒問題,部署在tomcat6就會有這個毛病,研究發現是判斷語句中單引號 的問題,換成groupinfo...

崩潰的一大早

一大早有乙個 說他們室的電腦有乙個啟動後全是英文,乙個無法啟動。我接到電腦就奔過去了。看了第一台電腦,藍屏了。於是我又重啟了一下,進入win系統後發生了藍屏,我確認是系統問題。於是問過以後也不管三七二十一,就ghost了。在ghost的過程中,我看了另一台電腦,這台電腦不太妙,無法啟動,電腦的cpu...