本系列第 9 篇|這篇回答:資料很多時,哪些判斷仍然要靠統計,哪些問題資料再多也救不了? 讀完這篇,你應該能:
- 解釋為什麼資料量已經很大,仍要檢查抽樣方式與系統性偏誤
- 依資料型態選擇相關係數,並讀懂迴歸係數、R² 與勝算比
- 用貝氏定理計算陽性者真正患病的機率,並用效果量判斷顯著差異的實務意義
一、資料多不等於資料對
樣本變大只會壓低隨機誤差,不會修正系統性偏誤。
詳細說明
樣本變大,會把隨機誤差壓低。同一種抽法重複做,統計量上下晃動的幅度變小,估計會更穩。它不會修正系統性偏誤。偏誤來自分法本身一直朝同一個方向歪;筆數增加,只是把那個歪更精密地重現出來。
常見的一種是選樣偏誤(selection bias)。某電商若只留下有打開 App 的紀錄,這些人已經比沒裝 App、或不常上網的顧客更活躍。樣本從很小增到很大,算出來的仍是 App 使用者的滿意度或消費,不是全體顧客。全體裡從沒進入資料的那一塊,不會隨筆數增加而補上。
樣本大了以後,另一個判斷也會變。只要差距不是恰好為零,檢定很容易達到統計顯著。顯著表示這個差距不太像純雜訊,並沒有回答差距在營運上值不值得動作。幅度要另看效果量(effect size)。Cohen's d 的定義是平均差除以合併標準差:Cohen's d = 平均差 / 合併標準差。分子是兩組差多少,分母是資料本身散得多開。d 小,表示差距相對資料的波動很輕,p 值再小也要分開看。
兩個變數一起升降,也推不出誰造成誰。它們可以同時受第三個干擾變數(confounder)推動。某工廠的加班時數與不良品數一起上升,背後可能是趕單那一週的產量與混線,加班只是和趕單綁在一起。沒把趕單納入,相關會把這段共用的變動算到加班上。
方向還可能因合併而反轉,這是辛普森悖論(Simpson's paradox)。每一組分開看,趨勢朝一邊;合併以後,趨勢朝另一邊。原因是各組佔整體的比例不同,比重大的那一組會把合併結果拉向自己的水準。可以想某工廠的兩條產線:每一條產線裡,新製程的不良率都低於舊製程,但新製程大部分用在原本不良率就比較高的那一條產線。合併之後,新製程的不良率反而較高。分組方向與合併方向要一起讀。
二、抽樣、相關、迴歸與貝氏判斷
抽樣
少數群體要有足夠筆數,就要分層後在各層抽。
詳細說明
簡單隨機抽樣(simple random sampling)讓母體裡每一筆有相同機會入樣。少數群體很小時,抽到的人數會跟著那個小比例走,不能保證這一群有足夠筆數做單獨估計。
分層抽樣(stratified sampling)先依重要分群切開,再在各層裡抽。某電商的 VIP 只佔客群一小塊,若滿意度必須對 VIP 有把握,就把 VIP 與非 VIP 分成兩層,各自抽到夠用的人數。
系統抽樣(systematic sampling)是排序後每隔 k 筆取一筆。它仍大致沿用名單原本的比例,不會為了少數群體加碼。
叢集抽樣(cluster sampling)隨機抽整群,再調查被抽中的群。群可以是分店、產線或班級。抽中的單位是群,不是按某個稀有身份配額。
資料若是一路流進來的串流,事先不知道總筆數,就無法先依總筆數計算每一筆的抽中機率。水庫抽樣(reservoir sampling)維持一個固定大小的樣本,並讓目前看過的每一筆留在樣本裡的機會相同,得到固定大小的均勻樣本。
已經有一份樣本、又不假設統計量服從哪一種理論分佈時,用 Bootstrap。做法是從這份樣本裡放回抽樣,重複很多次,每次重算同一個統計量。這些重算值的分佈用來估計該統計量的分佈與信賴區間。必須放回:若不放回,從 n 筆裡抽 n 筆,每次都會得到同一組點。
相關
Pearson 對離群值敏感,Spearman 改看排名且較穩健。
詳細說明
Pearson 相關係數衡量線性關係,範圍從 −1 到 1。它適合連續、且近似常態的變數。計算用的是原始數值的距離,所以對離群值敏感,少數極端點就能把係數拉開。
Spearman 先把數值換成排名,再看排名之間的關係,衡量的是單調關係:一方增加時,另一方大致往同一方向走,不必是直線。它對離群值較穩健,適合順序資料。滿意度星等這類只有順序、相鄰等級不一定等距的變數,通常用它。
Kendall 依成對資料的順序是否一致來計算。樣本小,或同分(ties)很多、排名經常打平時,適合用它。
相關係數 r 的平方 r²,在簡單線性迴歸中,是另一個變數能解釋的變異比例。r = 0.8 與 r = −0.8 的 r² 都是 0.64:線性上能解釋的比例相同,方向相反。r² 不要讀回成相關係數本身。
迴歸
R² 是解釋的變異比例,比較模型要看調整後 R²。
詳細說明
線性迴歸寫成 y = β0 + β1x1 + … + ε。β0 是各自變數都取 0 時的平均水準。β1 要帶著「其他變數固定」來讀:x1 增加 1 單位,y 平均改變 β1。
R² 是模型解釋的變異比例,範圍 0 到 1。R² = 0.64 表示 y 的變異約有 64% 落在模型的擬合裡,其餘留在殘差 ε。它不是預測準確率,也不是「64% 的列被猜中」。
加入新的自變數,R² 不會下降,多一個變數最多讓擬合一樣好。變數個數不同的模型不能只比 R²。調整後 R²(adjusted R²)對變數個數做了懲罰;多加一個幾乎沒有幫助的變數時,它可能下降。比較要不要多留幾個特徵時,看調整後 R²。
自變數彼此高度相關,就是多重共線性(multicollinearity)。y 的變動可以用不同方式分給這幾個自變數,係數會不穩定,標準誤變大。檢查用 VIF(variance inflation factor)。常用經驗門檻是 VIF > 10,表示嚴重。
結果只有兩種,例如退款與否、故障與否,用邏輯斯迴歸(logistic regression)估計發生的機率。係數不直接是機率的增減。係數取指數後得到勝算比(odds ratio)。β = 0.693 時,exp(0.693) ≈ 2:該特徵增加 1 單位,勝算約變成原來的 2 倍。勝算是「發生對不發生」的比,機率 = 勝算 / (1 + 勝算)。勝算翻倍時,機率不會跟著翻倍,也不等於加上 0.693。
自變數很多、或彼此相關時,可用正則化(regularization)限制係數。Lasso(L1)會把一部分係數壓成 0,因此可做特徵選擇。Ridge(L2)把係數縮小,但不壓成 0,用來緩和共線性。
貝氏定理
16.7% 是陽性者中真患病的比例,不是敏感度 99%。
詳細說明
貝氏定理(Bayes' theorem)是 P(A|B) = P(B|A) × P(A) / P(B)。檢測時,A 可當作患病,B 當作陽性。P(A) 是盛行率,P(B|A) 是敏感度。分母是所有陽性的來源:真患病且陽性,加上未患病卻陽性。
盛行率 1%、敏感度 99%、特異度 95% 時,未患病的人佔 99%,其中呈陽性的比例是 1 − 0.95 = 0.05。
真陽性:0.01 × 0.99 = 0.0099。 偽陽性:0.99 × 0.05 = 0.0495。 分母:0.0099 + 0.0495 = 0.0594。 陽性者中真的患病的機率:0.0099 / 0.0594 ≈ 0.1667,約 16.7%。
99% 回答的是「若真的患病,有多常呈陽性」。16.7% 回答的是「已經呈陽性的人,有多少真的患病」。基礎率只有 1% 時,健康者遠多於患者,特異度 95% 仍留下 5% 的偽陽性;這 5% 乘上 99% 的健康者,人數上多於真陽性。檢測準,仍可能讓多數陽性是偽陽性。
A/B 測試
樣本數與停止規則要在看結果之前定好。
詳細說明
A/B 測試用隨機分派把使用者分到不同版本,並事先決定樣本數與要看的指標。隨機分派讓兩組在實驗前的差異只剩機遇,版本之間的差距才有機會被單獨比較。
邊看邊停會把這個安排打亂:還沒到預定樣本數,就反覆偷看 p 值,一顯著就停。每一次偷看都有機會被隨機波動超過門檻,偷看次數增加,型一錯誤(Type I error)就提高,也就是實際上沒有差異、卻判定有差異的機會變大。樣本數與停止規則要在看結果之前定好。
程式對照
p 值是否顯著,要和係數大小、R² 分開讀。
詳細說明
兩欄的 Spearman 相關可以這樣算:
df[['a', 'b']].corr(method='spearman')
method='spearman' 指定用排名計算。
線性迴歸的係數、p 值與 R² 可以這樣列出:
import statsmodels.api as sm
result = sm.OLS(y, sm.add_constant(X)).fit()
result.summary()
sm.add_constant(X) 補上常數欄,模型才估得到截距 β0。summary() 會列出各係數、對應的 p 值,以及 R²。p 值進入「是否顯著」那一層;係數的大小與 R² 仍要分開讀。
三、容易混淆的地方
實務上常把「算出來的數」和「真正需要回答的量」混在一起。下表整理六組判斷。
| 容易混淆 | 差別在哪 | 實際遇到時的線索 |
|---|---|---|
| Pearson、Spearman、Kendall | Pearson 看線性,範圍 −1 到 1,適合連續且近似常態,對離群值敏感。Spearman 用排名看單調關係,對離群值較穩健,適合順序資料。Kendall 看成對順序是否一致,適合樣本小或同分多。 | 分析星等、名次且資料有離群值時考慮 Spearman;樣本小且大量同分時考慮 Kendall;連續、線性且近似常態時考慮 Pearson。 |
| R²、調整後 R² | R² 是模型解釋的變異比例,介於 0 到 1;加變數不會下降。調整後 R² 用來比較變數個數不同的模型,無幫助的變數可能使它下降。 | 報告要呈現模型解釋多少變異時看 R²;比較變數數目不同的模型時看調整後 R²。 |
| Lasso、Ridge | Lasso(L1)可把部分係數壓成 0,用來做特徵選擇。Ridge(L2)把係數縮小但不為 0,用來緩和共線性。 | 需求是移除不需要的特徵時用 Lasso;自變數高度相關且希望係數縮小時用 Ridge。係數不穩、標準誤變大時,用 VIF 檢查,VIF > 10 視為嚴重。 |
| 統計顯著、效果量 | 顯著表示差距不像純隨機波動;樣本很大時,極小差距也會顯著。效果量看幅度,例如 Cohen's d = 平均差 / 合併標準差。 | 報告或儀表板顯示樣本很大、p 很小、平均只差一點時,雖已顯著,仍要評估實務意義。 |
| 相關、因果 | 相關表示一起變動。因果還要處理干擾變數。辛普森悖論是各組比例不同,使分組趨勢與合併趨勢方向相反。 | 分析發現第三個共同因素,或分組趨勢與合併趨勢方向相反時,相關本身仍不能當作因果。 |
| 分層抽樣、叢集抽樣 | 分層是依重要分群各自抽,用來保證少數群體有足夠樣本。叢集是隨機抽整群,被抽中的單位是群。 | 抽樣計畫要求稀有客群抽到足夠樣本時用分層;以整間店或整條產線為抽樣單位時用叢集。 |
四、基礎練習
第 1 題
某電商的客群裡,VIP 只佔 2%。分析師要做滿意度調查,並要求樣本裡的 VIP 人數足夠單獨估計。哪一種抽法對得上這個要求?
- (A) 簡單隨機抽樣:每位顧客機會相同,抽出的比例會接近母體
- (B) 分層抽樣:把 VIP 與非 VIP 分開,各自抽取足夠樣本
- (C) 叢集抽樣:隨機抽幾間分店,調查店內全部顧客
- (D) 系統抽樣:將顧客排序後每隔 k 筆取一筆
看答案與解析
答案:B
VIP 只佔 2%,又要求這一群有足夠樣本。分層抽樣依重要分群各自抽,這裡的層就是 VIP 與否,少數層可以抽到夠用的人數。
- (A) 簡單隨機抽樣下,VIP 入樣的比例仍約 2%,不能保證這一層有足夠人數。
- (C) 叢集抽樣抽的是整間分店,沒有按 VIP 這個分群保證樣本數。
- (D) 系統抽樣每隔 k 筆取一筆,抽出的組成仍跟著原名單的比例,VIP 仍約只佔 2%。
第 2 題
某電商想看「滿意度星等(1–5,且有離群值)」與退款率是否一起變動。星等只保證順序,不保證等距。最合適的做法是哪一個?
- (A) 用 Pearson,因為它最常用,範圍又是 −1 到 1
- (B) 用卡方,把星等與是否退款整理成次數表
- (C) 直接看 R²,數值愈大就表示關係愈強
- (D) 用 Spearman:先排名,再衡量單調關係
看答案與解析
答案:D
星等是順序資料,題目又說明有離群值。Spearman 用排名衡量單調關係,對離群值較穩健,對得上這個資料型態。
- (A) Pearson 衡量線性關係,適合連續且近似常態的變數,並對離群值敏感。「最常用」不是選擇依據。
- (B) 卡方看的是類別次數的關係,不是用排名描述星等與退款率的單調程度。
- (C) R² 是迴歸裡可解釋的變異比例,不能代替「順序資料加離群值」時的相關係數選擇。
第 3 題
某工廠用簡單線性迴歸,以烘烤溫度預測不良率,得到 R² = 0.64。這個數字應怎麼讀?
- (A) 模型解釋了不良率約 64% 的變異
- (B) 這個模型的預測準確率是 64%
- (C) 溫度與不良率的相關係數是 0.64
- (D) 64% 的樣本被預測正確
看答案與解析
答案:A
R² 是模型解釋的變異比例,範圍 0 到 1。R² = 0.64 表示 y(這裡是不良率)的變異約有 64% 被模型解釋。
- (B) 預測準確率是分類時猜對的比例,R² 不是這個量。
- (C) 在簡單線性迴歸中,相關係數的絕對值是 √R²。√0.64 = 0.8,因為 0.8 × 0.8 = 0.64,所以相關係數的絕對值是 0.8,不是 0.64。
- (D) 「64% 的樣本預測正確」同樣把 R² 當成猜中率,與變異比例無關。
第 4 題
某電商用邏輯斯迴歸預測會不會退款。其中一個特徵的係數是 0.693。該特徵增加 1 單位時,應怎麼解釋?
- (A) 退款機率增加 0.693
- (B) 退款機率變成原來的 2 倍
- (C) 退款勝算約變成原來的 2 倍
- (D) 退款勝算增加 69.3%
看答案與解析
答案:C
邏輯斯迴歸的係數取指數後是勝算比。exp(0.693) ≈ 2,所以該特徵增加 1 單位,勝算約為原來的 2 倍。
- (A) 0.693 不是機率的增加量。係數不在機率的尺度上,機率也不能直接加上 0.693。
- (B) 約 2 倍的對象是勝算,不是機率。機率 = 勝算 / (1 + 勝算),勝算翻倍時機率不會變成 2 倍。
- (D) 0.693 不是 69.3% 的增幅。模型是把勝算乘上 exp(0.693) ≈ 2,不是在原勝算上加 69.3%。
第 5 題
某工廠一種零件缺陷的盛行率是 1%,檢測的敏感度 99%、特異度 95%。一塊零件被判為陽性。它真的有缺陷的機率約是多少?
- (A) 99%
- (B) 約 16.7%
- (C) 95%
- (D) 1%
看答案與解析
答案:B
要算的是「陽性之下真的有缺陷」的機率。
真陽性:0.01 × 0.99 = 0.0099。 偽陽性:未缺陷佔 0.99,1 − 0.95 = 0.05,所以 0.99 × 0.05 = 0.0495。 分母:0.0099 + 0.0495 = 0.0594。 0.0099 / 0.0594 ≈ 0.1667,約 16.7%。
0.0495 大於 0.0099,陽性者裡多數仍是偽陽性。基礎率 1% 時,高敏感度不會把陽性結果變成「幾乎一定有缺陷」。
- (A) 99% 是敏感度,也就是「真有缺陷時判成陽性」的機率,問的方向與題目相反。
- (C) 95% 是特異度,也就是「沒有缺陷時判成陰性」的機率。
- (D) 1% 是還沒看檢測結果之前的盛行率。
第 6 題
某電商做 A/B 測試,每組 200 萬名使用者。新版與舊版的平均停留時間差 0.1 秒,檢定得到 p < 0.001。較恰當的判讀是哪一個?
- (A) p 值極小,表示效果很大,差異在實務上很重要
- (B) 已經統計顯著,應立即全面上線
- (C) 每組樣本太大,所以這個結果無效
- (D) 差異達到統計顯著,但效果量很小,還要評估 0.1 秒有沒有實務意義
看答案與解析
答案:D
每組 200 萬人時,隨機誤差很小,0.1 秒這種很小的平均差也會得到 p < 0.001。統計顯著成立,效果量仍然小。是否改版,要另看這 0.1 秒有沒有實務意義。效果量可以用 Cohen's d = 平均差 / 合併標準差來量;題目沒有給標準差,不能從 p < 0.001 推成很大的 d。
- (A) p 值同時受差距與樣本數影響。各組 200 萬時,極小的差距也可以使 p < 0.001,p 值極小不等於效果大。
- (B) 顯著沒有回答 0.1 秒值不值得全面更換版本。
- (C) 樣本大降低的是隨機誤差,檢定仍然有效。需要分開看的是實務幅度,不是把大樣本當成結果無效。
五、重點回顧
- 資料量變大主要降低隨機誤差;收集方式若只覆蓋一部分人(選樣偏誤),樣本再多仍代表不了全體。
- 大樣本會讓極小差異也達到統計顯著。實務幅度要看效果量,例如 Cohen's d = 平均差 / 合併標準差。
- 相關沒有說明因果,兩變數可同受干擾變數影響。分組趨勢與合併趨勢方向相反時,原因是各組比例不同(辛普森悖論)。
- 連續、近似常態、看線性,用 Pearson。順序或有離群值、看單調,用 Spearman。樣本小或同分多,用 Kendall。r² 才是另一變數能解釋的變異比例。
- 線性迴歸的 β1 是其他變數固定時,x1 增加 1 單位,y 平均改變 β1。加變數不會使 R² 下降,變數個數不同要看調整後 R²。VIF > 10 表示共線性嚴重。Lasso 可把係數壓成 0,Ridge 只縮小係數。
- 邏輯斯迴歸中 exp(0.693) ≈ 2,表示該特徵增加 1 單位時勝算約變 2 倍,不是機率變 2 倍。盛行率 1%、敏感度 99%、特異度 95% 時,陽性者真患病的機率約 16.7%。A/B 測試若反覆偷看 p 值、一顯著就停,會提高型一錯誤。