卡方檢定 Beyond The Cross :三維列聯表分析( Three-way Table )與辛普森悖論( Simpson’s Paradox )

一連寫了兩篇《卡方分配與卡方檢定》《卡方檢定 On the Cross:Pearson, Yates and Fisher》,分別描述了從 2 x 2 到 R x C 的大樣本表格檢定,也陸續討論了小樣本情境的修正公式、費雪精確檢定( Fisher’s Exact Test )等等觀念。

不過除了以上的二維表之外,在表格分析的統計技巧當中尚有更為複雜的 R x C x K 三維列聯表( Three-Way Table )形式,那就是本文接下來的主題了。準備好了嗎?

three-way-table-example

三維列聯表檢定分析的注意事項

在表格資料分析中有一些假定,其中有兩個共通的注意事項:

第一,是前面兩篇文章強調過的樣本大小情境的差異。

第二,表格資料的呈現是採合計想法的「邊際( Marginal )」次數,或者特定水準下的「條件( Conditional )」次數,這對檢定結論的影響力也不可忽視。

在統計學中,有一種特定的情形,當不同水準時分開來看是一種結論,全部合併後卻得到另一種結論,釐清這種自相矛盾的情境,對於資料分析而言是極為重要的,它是統計學著名的辛普森詭論(Simpson’s Paradox),在本文後段我們會再看到它如何影響表格檢定的結論。

統計二維列聯表與三維列聯表的差異

在二維表裡,研究人員探討的是兩因子之間的互動關係,譬如獨立性、同質性。

我們可以把它看成是探討「自變數 X 」與「應變數 Y 」的關係,特別是如果我們計算了勝算比( Odds Ratio )有關的指標,更容易看出此層關係。

當然了,一旦區分了成功與否的界線,應變數 Y 很自然會成二元變數,取値非 1 即 0 。

二元變數的特性直接連結了其他的統計議題,例如二項與超幾何的間斷型分配假設、名目變數與順序變數的統計量差異等等。

三維表進一步在二維表的 X 與 Y 的簡單相關之外,還加入了一個新的干擾變數,姑且用 Z 代稱之吧。

我們的新同學 Z 有兩個直觀意義:

首先,它是實驗中「人為操縱」的變數,觀察型的研究不是常常區分成「實驗組」與「對照組」嗎?是否加入了 Z 因子的影響,就是兩者的差異所在。

另一層意義則是從相關性出發,若稱 X 與Y 「有關係」,其實有幾個意思: X 對 Y 的因果關係、 Y 對 X 的因果關係、存在一個 Z 同時對 X 與 Y 的因果關係。

若 X Y 獨立,顯然作為干擾變數(Confounding Factor)的 Z 就不應有任何作用。

在「相關性」的統計指標或檢定中,譬如 Pearson 相關係數 r ,或者二維表中卡方獨立性檢定所顯示的相關性,是無法告訴我們真實的相關情況是屬於上述哪一種的,三維表加入 Z 變數,便能夠提供比二維表更進一步的相關性資訊協助研究人員做分析。

所以說若是挑毛病一點,針對剛才的二元變數只能說「『有時候』可以把它看成是探討『自變數 X 』與『應變數 Y 』的關係」,因為另一些時候我們是不知道,甚至也無頭緒 X Y 合理的因果關係為何。

不考慮因果關係下,即把 X Y Z 視為三個變數,探討三者之間全部的互動,可以是任意二個獨立、全部三個獨立、某兩個不獨立加上一個交互作用等等。

就以 2 x 2 x K 較簡化的三維表為例,卸妝版大略長成這個樣子:

statistics-tests-three-way-table-exampple

它的想法是,在 Z 的 K 個不同水準下,觀察 X Y 關係的變化。

統計三維列聯表中變數之間的相關性分析

最簡單明瞭的相關性例子是 X Y Z 三者互相獨立( Mutual Independence )的情況。

假設 X Y Z 不全獨立,那就需要考慮 X Y 、 X Z 、 Y Z 各排列組合之間的關係了,若簡化一些,若已知(或猜測) X Y 有關,則可觀察 X Y 的關係在不同的 Z 水準的變化,假如結果顯示不管 Z 如何變化下 X Y 的值都變動不大,即表示 Z 必非 X Y 的共同因子,或說 X Y 獨立於 Z 。

根據這種關聯性,統計學自然能估計出一個涵蓋全體的量數,三維表分析中常使用的統計量是「共同勝算比」,根據共同勝算比,延伸而來的問題則是: Z 水準下 X Y 的共同勝算比是否為 1 ?

若是 X Y 的關係在 Z 水準下顯示出差異,不論是部分維持相同部分顯示不同,或全部都明顯不同,皆表示 Z 非獨立於 X Y ,可能是 X Y 的干擾因子( Confounding Factor )

X Y Z 之間的關聯性可能,可以再細分成:

全部彼此獨立( Mutual Independence )

聯合獨立( Joint Independence )

邊際獨立( Marginal Independence )

條件獨立( Conditional Independence )

筆力有限,在此不就所有名詞一一說明, X Y Z 關聯性的詳細說明,可參考此處美國賓州州立大學( Pennsylvania State University )的統計課程教材

特別一提的是,聯合獨立( Joint Independence )的計算實際上可改寫為二維表卡方檢定,因此本文不會出現它的計算方法。

三維列聯表的統計推論與檢定

三維表根據這些關聯性,發展出對應的「獨立性檢定」與「同質性檢定」以及相關的統計推論,閱讀後面介紹的方法時,看到名稱類似的檢定,可以留意一下「虛無假設」的差異與文中所列出參考網站的補充資料,交互對照之下比較不會看得一頭霧水。

總之,若你能持續看到這裡,那就已經是很了不起的開始了,歡迎來到高等統計學的世界!

到目前為止所提到的 X Y 的相對位置在對資料毫無了解的時候,完全是可以互換的,因為光憑相關性分析並不能看出真實的因果關係,不論是正相關或負相關、強相關或微相關皆然。

沒有因果問題,行列順序自然就不會影響推論結果了。

讓我們回到三維表的路子上,依照順序,從 X Y Z 三者互相獨立( Mutual Independence )開始吧。

三維列聯表的卡方檢定:卡方「全變數獨立性」檢定

在表格分析當中,卡方檢定是個免不了被重複提及的重要基礎,再一次地,三維表的獨立性檢定仍要仰賴偉大的卡方檢定以及卡方分配。

三維表獨立性檢定核心的觀念仍與二維表一樣,根據獨立性的機率定義:

statistics-tests-three-way-table-independence-definition

因此假設檢定:

statistics-tests-three-way-table-independence-definition-2

接下來就麻煩一點,首先需要對 R x C x K 表格定義邊際機率( Marginal Probability):

statistics-tests-three-way-table-Marginal-Probability

讀者可以對這個公式略加留意,我們稍後就將藉由這個邊際機率形式,來連結獨立性的機率定義以及卡方統計量。

statistics-tests-three-way-table-Marginal-Probability-2

上式的推導結果,就是在二維表檢定中常用到的「期望次數 E( X )」。

現在當觀察次數已知,又得到了期望次數,接下來應該不難想像了,運用典型的卡方檢定統計量:

chi-square-test-in-three-way-table

關於卡方檢定的拒絕法則,此處應該不必再贅述了吧(或者回頭參考這篇卡方檢定專文)?

卡方統計量拒絕域永遠在右尾,或者直接看統計報表的 P-Value 也很方便。

做 Mutual Independence 的卡方檢定隱含了一個觀念,在計算過程中的 P ( X )、 P ( Y )、P ( Z )其實就是所謂的邊際機率( Marginal Probability ),也因此,當證實 X Y Z 全部獨立的同時,也能知道 X Y Z 三者邊際獨立( Marginal Independence ),但是邊際獨立並不代表條件獨立( Conditional Independence ),反之亦然。

這段敘述,非常值得讀者仔細思索。

三維列聯表的勝算比( Odds Ratio )

勝算比在另外兩篇與二維表、卡方檢定相關的文章裡面只有簡單帶過,主要的原因是,勝算比應用在表格檢定上是與 G ^ 2 統計量相關的,而 G ^ 2 與 X ^ 2 享有許多共同的特性,大部分時候, X ^ 2 還是比 G ^ 2 好用一些(因為收斂到卡方分配的速度較快),再加上這三篇系列文章都是以卡方檢定為中心展開,因此沒有針對伽瑪( Gamma )統計量及勝算比著墨太多。

但在三維表,勝算比的重要性比在二維表時多了一些應用,以一個 2 x 2 x k 表格為例的公式:

Odds-ration-at-k-levels

此處 K 個水準下的勝算比公式型態帶給勝算比一個分析上的優勢,它同時能回答我們絕對差異( Difference )以及相對比例( Proportion )的問題…,而你可能好奇,是什麼樣的表格問題會需要觀察 Difference 與 Proportion 的統計顯著形式呢?

答對了,就是卡方檢定!更精確地講,是卡方獨立性檢定( Test of Independence )以及卡方同質性檢定( Test of Homogeneity )。

探索三維列聯表中的 CMH 「條件獨立性」檢定

三維表其實與二維表的許多想法是一樣的,但除了將卡方統計量用於檢查「全變數的彼此獨立性」之外,另有一種近似卡方統計量用於檢查「條件獨立性」檢定,它是由 Cochran、Mantel、Haenszel 三位學者共同提出來的,故稱為 CMH 統計量

CMH 統計量在 2 x 2 x K 及 R x C x K 的公式有異…,根據統計學的推導慣例,後者當然複雜得多, CMH 統計量擴充的版本又稱為 Generalized CMH Statistics …,事實上三維表所有的公式(包括期望值與變異數等量數)都是高度計算密集的公式怪獸,多維表格計算實務上需仰賴統計軟體,可惜光讀輸出結果,難以理解中間的原理運作,本文的其中一個目標就是記下這些觀念以防自己忘記

對 CMH 而言,假設檢定為:

CMH-statistics-hypothesis

虛無假設的意思是,假如 X Y 兩變數在不同 K 水準下的勝算比都為 1 ,則顯示出 X Y 在「給定 Z 水準下」兩者獨立,所以稱為條件獨立檢定。

在 2 x 2 x K 的 CMH 公式較擴充版簡單,示意如下:

CMH-statistics-at-k-levels

根據結果,勝算比極大或極小(遠離 1 ),都會使 CMH 值增加,進而拒絕虛無假設;當勝算比趨近於 1 時,CMH的値很接近 0 。

2 x 2 下的 CMH 與費雪精確檢定( Fisher’s Exact Test )有點類似,只要決定了 n 11 的次數,便能決定同一個 Z 水準下的其他格子次數,對 n 11­ 而言具有超幾何分配。

下面是以前撰文介紹精確檢定時用過的表格。

CMH-statistics-and-Exact Test

以這個表格為例( Z 僅有一個水準, k = 1 ),勝算比與上述次數表示的公式關係是:

CMH-statistics-and-Exact Test-2

本式其實就是「條件勝算比( Given Zk = 1 )」,採這個形式對表格計算與視野都更加直觀。

接著繼續看到「邊際勝算比」,它的次數公式寫法,則為「條件勝算比」的加總:

Marginal-odds-ratio-and-conditional-odds-ratio

CMH 統計量具有大樣本的卡方分佈, 2 x 2 x 1 的例子中,CMH 與傳統卡方檢定統計量因此具備以下的關係:

CMH-statistics-and-chi-square-test

細心的讀者可能有發現本例的 CMH 自由度為 1 …,說得再詳細一點,這是 CMH 將 XY 皆視為名目變數時的自由度, DF = ( R – 1 )*( C – 1 )=( 2 – 1 )*( 2 – 1 )= 1 ,稍後會再談到 CMH 的自由度。

請注意 CMH 與先前卡方三元獨立性檢定的意義是不同的,兩者差異可從虛無假設當中看出。

CMH 檢定統計量在順序型變數上的進階應用

考慮一下這個情況: X 為學生考試平均分數級距, X 取値 1 ~ 3 , Y 為學生考上大學與否, Y 取値 0 ~ 1 。

在原本的檢定中,將 XY 皆視為名目變數( Nominal Variables ),沒有順序可言的,但實際上是如此嗎?

考試分數在第一級距的學生真實分數永遠比第二第三級距的學生要高,分數高的學生較傾向順利考上是沒有疑問的,這顯示級距之間並非獨立,而有著順序相關。

忽略這種相關性仍然可以做檢定,但是精確性就會受到影響。

就結果論,假如其中有一方是順序變數( Ordinal Variables )的話,先前名目變數版本的統計量就會過於誇大,造成錯誤檢定的現象,當兩方都是順序變數,情況還會更加嚴重。

修正的 CMH 統計量由此而生,它依照名目、順序變數的組合,每種情境都重新修正公式,而且可以推展到 R x C x K 的表格,也泛稱為一般化的 CMH 統計量( Generalized CMH Statistics )。

一般化的統計量點到這裡為止…,心智瘋狂的好學寶寶請參考Best & Rayner 在 2006 年出版的這篇 《Nonparametric Analysis of Blocked Ordered Categories Data: Some Examples Revisited》專門討論。

値得注意的是,順序變數的加入不止會影響採用的統計量,改變的還有自由度。

假定 X 變數( Row ), Y 變數( Column ), Z 變數( K 個水準),自由度的變化:

1. XY 皆為名目變數, CMH 的自由度 = ( R – 1 )*( C – 1 )

2. X 為名目變數, Y 為順序變數, CMH 的自由度 = ( R – 1 )

3. Y 為名目變數, X 為順序變數, CMH 的自由度 = ( C – 1 )

4. XY 皆為順序變數, CMH 的自由度 = 1

如果從第一點往下看覺得很奇怪,那就換個角度,從第四點往回看試試。

記得自由度的直觀意義是「可自由變動的參數個數」,若某變數已知為順序變數,意味其值排列順序是固定的(例如第二名永遠在第一名之後),只有一種排法,沒有其他變動可能,該行(列)自由度= 1 。

三維列聯表 CMH 檢定必知的注意事項

CMH 值在「觀測與期望次數之差(就是那坨分子)」一致為正或為負時變得較大,這種情況很容易拒絕虛無假設,但是如果有正有負,那麼 CMH 檢定就沒有那麼敏感了。

因此對三維表列出各水準的勝算比是有其必要的(還記得前面提過的「各水準勝算比」與「共同勝算比」嗎?)。

CMH 檢定既然近似於卡方檢定,可想見的是,在自由度不為 1 時,總合併樣本數上升,也會使得 CMH 檢定傾向拒絕虛無假設。

不過卡方檢定所要求的每一格子次數的限制,對 CMH 檢定就沒什麼影響了,即使不符合 80 % 以上格子有 5 個觀察次數,但 XY 邊際總和夠大的話, CMH 檢定仍然容易拒絕虛無假設。

所以 CMH 只能算是「半個」大樣本檢定。其實也無傷大雅,因為一般實務上在水準數 K 很大的情況下,單一格子的次數預期也很難多到哪去。

最後,假如所有水準的勝算比差異不大,或者說各水準勝算比疑似都在估計同一個真實勝算比,只有因隨機抽樣造成的微小誤差,那麼 CMH 檢定會表現更好,但是請注意,這是非必要條件,別和 ANOVA 的「變異數相等」假設搞混了(不如趁機思考一下 ANOVA 與此處表格檢定的異同)。

CMH 獨立性檢定雖然借用了共同勝算比的想法,本身卻不對此深入計算,要繼續探討這個議題,那就得交棒給接下來的同質性檢定了。

三維列聯表的卡方「同質性」檢定

在二維表中,同質性問題會利用卡方檢定,並且我們知道二維表的卡方同質性與卡方獨立性檢定計算內容是完全一樣的,到了三維表,基本上兩者都還是卡方檢定的形式,但是因為虛無假設命題不同,這裡的同質檢定與先前的獨立檢定會有點小差別。

這個新的同質檢定統計量喚作 Breslow-Day 統計量,處理 2 x 2 x k 的虛無假設:
Breslow-Day-statistics-hypothesis

假如在 K 個水準下, XY 的相對比例都一樣,那麼各個水準下的勝算比也會相同:

Breslow-Day-statistics-odds-ratio

乍看之下跟 CMH 檢定是不是很相似呢?毫不意外地, BD 統計量仍為大樣本近似卡方的統計量,自由度等於水準數 K – 1 。

其中, odds ratio 正是先前出現過的「 k 個水準下的共同勝算比」。

這條公式裡的 n 11 服從超幾何分配,類似的情形在精確檢定及 CMH 檢定都提過,但是「服從超幾何分配」其實有一個隱藏的前提,即 odds ratio = 1 。

一般沒有特別說明的原因,在於虛無假設已經設定好 odds ratio = 1 ,於是就省略了(比較一下 CMH 與 BD 的虛無假設)。

若 odds ratio 不為 1 ,譬如本例, n 11 將會服從「非中心超幾何分配(Non-central Hypergeometric Distribution)」,依此分配計算 BD 統計量公式裡頭 n 11 的期望值與變異數。

我們新認識的這位 BD 統計量先生在計算方面比 CMH 檢定複雜多了,傳說萬中選一的數學符號小神童可參見Kou & Ying(1996),《 Asymptotics for a 2×2 Table with Fixed Margins 》

若是看不懂慚愧慚愧或沒興趣倒也無妨,畢竟現代的統計軟體能代勞所有的瑣碎工作。

附帶說明,有時在統計報表上會在 BD 統計量旁看見一個 Tarone 值,那是針對 BD 統計量的修正,將 BD 統計量「減去」這個看似來路不明的 Tarone 值,能保證樣本變大的時候必定收斂到卡方分配,很神奇吧?

但是呢,其實這個動作並不是特別重要,因為 Tarone 值一般非常非常小,甚至當 BD 值接近 0 的時候,有些統計軟體還設計好自動取消這個修正( SPSS )。

Breslow-Day-statistics-Tarone

BD 統計量雖然與 CMH 統計量很相似,不過 BD 並不像 CMH 有著一般化的推廣,它無法用在 R x C x K 的情境,只適用 2 x 2 x K 的資料,替代的作法,像是利用 Logit 迴歸…,詳情可參考Lai、Mink & Pasta《 Beyond Breslow-Day: Homogeneity Across R x C Tables 》,或者考慮另一種檢定同質性的方法: Mantel-Haenszel 法。

三維列聯表分析的泛用卡方同質性檢定 Mantel-Haenszel Test 與共同勝算比估計

一口氣看過這麼多推導,想必都頭昏眼花了吧?這是本文的最後一個統計量,MH 檢定,它是另一個可供三維表分析使用於測試同質性檢定的卡方統計量,適用於 2 x 2 x K 表:

Mantel-Haenszel-Test-chi-square-test

上式中,權重 w 就是對數勝算比之變異數, Var( lnORk )的倒數(統計學「加權」的方法好像都愛用這招)。

虛無假設部分則與 BD 檢定相同:

Mantel-Haenszel-Test-hypothesis

MH 檢定與 BD 檢定基本上提供的資訊差不多,但 MH 卡方比 BD 卡方擴充性稍好一些,尚可推展到 2 x C x K 的情況,不過這個方法普及性就不得而知了,進階學術討論請見 Yanagawa《 Generalized Mantel-Haenszel Procedures for 2xJ Tables 》

做個小結論吧,不論是 BD 或者 MH 檢定,假如檢定結論是「不拒絕」虛無假設,那麼在設定的信心水準下,可將「各水準勝算比」視為相同,也就是說整組資料共享一個「共同勝算比」。

聽來很熟悉?

前面曾有條公式用來表示 K 個水準下的共同勝算比:

Odds-ratio-at-k-levels-formula

其實它就是 MH 檢定的共同勝算比估計量( MH Estimator )!

如果把三維表的勝算比擬成常態獨立資料的變異數,那麼得到共同勝算比之後,推論的方向應該呼之欲出了,那就是「共同勝算比的信賴區間」。

還記得基礎統計學中必定會教到的、計算信賴區間的三個必要元素:

1. 估計值

2. 估計值的變異

3. 某分配於特定信心水準下的臨界值

問題來了,什麼是勝算比的假設分配?

想不到吧,它就是萬惡的常態分配!

關於勝算比與常態分配的關係在此先略過不談,暫且記住這個關鍵即可:勝算比必須冠上「自然對數」!

事實上,這個對數勝算比的形式,就是邏輯迴歸( Logistic Regression )中的 Logit 值。

既然萬事皆備,只欠變異數這股東風了(這風可真強啊)

logit-odds-ratio-variance-interval

為求原本的勝算比區間,可採自然指數還原( SE 是標準誤):

logit-odds-ratio-variance-interval-2

複習一下,前面的 BD 與 MH 檢定,都在處理相同的虛無假設:

BH-MH-statistics-hypothesis

但是在 MH 檢定計算出共同勝算比的信賴區間後,下面這個額外的虛無假設成為可行:

MH-additional-statistics-hypothesis

只要觀察共同勝算比的還原區間是否包含 1 ,就能快速得到結論… ,你有沒有注意到,繞了一大圈,同質性檢定又和獨立性檢定傻傻分不清楚了(如同我們在二維表中遇到的現象)?

這個虛無假設,其實也是 CMH 條件獨立檢定的虛無假設。

假如今天觀察的資料是 X 藥( 2 種), Y 療效(有,無), Z (代表 K 個病齡水準),計算得知 X-Y 的共同勝算比在各水準同質,意味著在各病齡水準下, X 的兩種藥對療效的影響力相同。

若是繼續執行條件獨立檢定,結果不拒絕虛無假設(通常同質卡方與獨立卡方的結果是一起計算輸出的,而且卡方値相去不多),或者觀察共同勝算比的信賴區間包含了 1 ,那就表示那 X 的兩種藥一點用都沒有!

有時候甚至不需要這些重重步驟,要是一開始先做了卡方全變數的獨立性檢定,而且發現不拒絕彼此獨立之假設,那麼後面的功夫當然就通通省下來了,「因為變數之間毫無關聯」。

小心!你可能已經掉入了辛普森詭論( Simpson’s Paradox )的陷阱

在這三篇圍繞卡方與表格分析的文章最後,就以介紹辛普森詭論這個知名的統計現象做個收尾。

辛普森詭論,它的核心想法是:不同水準時分開來看是一種結論,全部合併後卻得到另一種結論。每個水準下的結論,為「條件」結論;全部合併的結論,則是「邊際」結論。

看看這個來亂的例子:

Simpson-Paradox-example

從表格來看,不論是第一次抽樣( 0.67 vs 0.65 )或者第二次抽樣( 0.74 vs 0.72 ),都顯示「台南的好人比例」比起「其他地區的好人比例」高一些。

但是別太快就做出結論,看看「合併後」的比率,其他地區的好人比例竟然反過來高過了台南的好人比例( 0.69 vs 0.68 ),不可思議吧?

這個現象正是為何執行卡方全變數獨立檢定時,就算結果顯示 XYZ 三者邊際獨立( Marginal Independence ),也並不代表條件獨立( Conditional Independence )。

看數字說話本來是個好習慣,有憑有據,但是很多時候人們常常陷入「 Simpson’s Paradox 」當中,自我感覺良好地「以偏概全」,像是進行表格分析時,有時候為了簡化會「合併表格」,殊不知這個動作潛藏著誤導的風險。

不過辛普森詭論也並非完全無法預防的,仔細看看「次數」的部份,假如發現在特定水準下,甲方與乙方的觀察次數差距過大,那麼在合併時就很可能會產生誤導的問題,像上面好人的例子正是如此。

若是累積了 K 個水準的次數差異,就比較麻煩一些,這時可以觀察雙方次數的趨勢,假如有時甲方多一點,有時乙方多一點,倒還不必太過緊張,若是某一方的觀察次數一直多過另一方,則比率就可能因次數合併而有較大改變,應該多注意分析時可能掉入的誤判陷阱。

最理想的情形,則是保持各組的樣本大小差不多,就能避免這個問題,但是實務上某些狀況無法收集到適量的樣本,譬如特殊疾病的回溯性研究( Retrospective Research ),這時研究人員往往採用「配對」的方式,讓兩組研究目標的次數不要差距那麼大。

而這麼做的交換條件則是,必須犧牲研究樣本的「隨機性」。

閱讀一分鐘,台下十年功!精選文章推薦:

* DATA TRANSFORMATION的一些探討

* 維度縮減DIMENSION REDUCTION,通往線性代數的聖母峰 : 特徵值分解(EIGENVALUE DECOMPOSITION)、奇異值分解(SINGULAR VALUE DECOMPOSITION) 與主成份分析(PRINCIPAL COMPONENT ANALYSIS)

* 隨機性、大數法則與中央極限定理

* 統計R語言實作筆記系列 – 資料尺度與變數類型

* 統計R語言實作筆記系列 – 2D視覺化進階 GGPLOT()的基本架構(一)

* 數大有時不美的統計性質

(Visited 9,712 times, 57 visits today)

Wendell.Huang

科技公司嫌棄太活潑,消費品牌挑剔太沉悶…, 經常必須解釋自己在學什麼, 不小心就摔破對方眼鏡的業餘書呆子。

3 Comments

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *