2014年3月22日星期六

服貿網摘

本想上網找些談服貿的文章看看,結果發現所看的幾乎都不是台灣人寫的 …… 看來是我腦筋出毛病了。台、港報章的新聞就略過不提了,以下另外幾篇較有意思的:
  • 服貿自救寶典(I) : 服貿協議將對誰有影響。鄭秀玲教授的懶人包,好歹也要看看吧。
  • 懶人包:那些服貿反對者(故意)忘記告訴你的事…。贊成服貿一方反駁鄭秀玲教授。
  • 用懶人包堆疊而成的公民意識。放在香港的話,不知會否被譏為離地、和理非非的犬儒,或者被 "plasticized",但我覺得讓頭腦冷靜一下是好的。
  • 蔡宗珍教授,《人權與正義》(從《玉門春風》網誌知道有此文章) 。文章談的並非贊成或反對服貿,而是從憲法觀點看服貿條文存查是否合乎程序公義,值得一讀。
  • 「如果你心裡也反對政府,做做樣子,放我過去吧。」我這個外人並無資格說三道四,但坦白說,聽到這句話,我覺得很不自在,也很迷惑。學生佔領立法院,可視作公民抗命,這個我沒有意見,但無論通過服貿會否影響台灣主權存亡,台灣都不是面臨美國人所謂「明顯而迫切的危險」(clear and present danger),而就算警察清場,也看不出會有流血鎮壓的可能。在此情況下,示威者與警方都只是各安其職,一邊公民抗命,一邊維持治安而已。慫恿警察「做做樣子」,不執行任務,其實等於慫恿警察放棄政治中立。我不清楚台灣的公務員傳統,但香港受英國公務員傳統熏陶,這方面是比較敏感的,而一想到佔領中環時,會不會有人這樣呼籲警察,或應不應如此呼籲,我就覺得很迷惑。(當然,這是無謂的擔心,因為我城的朝廷鷹犬,是絕不會聽從市民呼籲的,反而會拿「紀律部隊」、「社會安寧」、「維護法紀」等等來作擋箭牌。)
  • Taiwanese Occupy Legislature Over China Pact; The Diplomat. 這是一眾英語媒體報道中,寫得較深入的一篇,勝於路透社經濟學人衛報BBC外交政策雜誌CNN的報道,但相對網上大量的中文文章,仍有不足。讀這些報章的讀者留言時,倒偶有驚喜。例如有台灣讀者指中國對台灣有敵意,有個扮西人的五毛讀者就走出來辯護,大意是說現在已不是九十年代那個用導彈恐嚇台灣的年代了,現在中國只想和台灣經濟交流之類。誰知接著就有另一位台灣讀者引用台灣官方資料,說2012年中國瞄準台灣的導彈數目,比先前的1400支增加了200支,令我看得哈哈笑。那位五毛之後就支開話題,轉談其他了。
  • 环球时报:台“立法院”被攻占,不妨围观。中國的立場,當然也是必看。文章中有這麼一句:「《服贸协议》是两岸ECFA后续协议之一,它的总精神是两岸互利,但大陆方面开放的服务业项目要远多于台湾方面,大陆的让利不容否认 」當年和香港簽 CEPA,明明也是互惠互利,中共媒體卻形容為「中央送給香港的大禮」,而現在的 ECFA 卻說成「兩岸互利」,何解?無他,香港已成囊中物,但台灣仍需統戰也。然而,文章剛說完「兩岸互利」,就已經不甘心,忍不住要說「大陸的讓利不容否認」了。天下沒有白吃的午餐,當有一日這齣《浮士德》演到尾聲,恐怕台灣人就會聽到大陸恩主的名言 ── 「要不是有大陸照顧,你們台灣早就完蛋了。」
  • 丘亦生 - 「慘痛」的CEPA。溫故知新。
  • 給台灣的朋友:跟大陸談服貿有如跟騙子談合約。回心一想,上面那個反駁鄭秀玲的懶人包是有其道理的,但大前提是對手並非那個強大、缺乏法治精神兼無時無刻不想吃掉你的國家。

2014年3月21日星期五

網文偶讀之百年一遇

  1. R.J. Oosterbann, Frequency and regression analysis of hydrologic data (pdf) 
  2. Floods: Recurrence intervals and 100-year floods; USGS 
  3. 看香港如何防“水浸” 排水干渠系统200年一遇;北京晚報,2012年07月22日 
  4. 香港渠務署網頁
兩年前七月廿一日的北京暴雨,據說令全中國非常感動,各人為了賑災,有錢出錢,有妹捐妹。內地大部份的報章都稱此暴雨為「百年一遇」,局部地方的單日降雨量甚至是「五百年一遇」云云,惹來網民嘲弄,謂「在我短短的一生裡,百年一遇的洪水見過10次,千年一遇的地震見過2次,唯獨四年一遇的全民大選還沒遇見過」。這句譏諷話獲內地網民瘋傳之餘,報章亦有人指摘「官方」以「百年一遇」之說來推卸責任,例如《金羊網》就有篇專欄文章說:
筆者認為,說白了,無論是推出“40年一遇”、“60年一遇”、“61年一遇” 之說,還是拋出“百年一遇”、“接近五百年一遇”之論,無非就是想告訴大家︰這是老天爺的錯,要怪就怪老天爺去吧。

「百年一遇」的定義
「百年一遇」指的其實是自然現象的重現期 (return period)。「重現期」是大學專科(譬如水利工程學)術語,但它牽涉的統計概念只屬高中程度。簡單來說,若某自然現象 A,於某單位時間(譬如一日)內發生的機會率為 p,那麼其重現期(譬如以日數計),就是 1/p 個時間單位。

詳細一點來說,當我們談及重現期的時候,背後假設了 A 於每個單位時間內發生與否,皆為獨立事件,亦即是假設 A 是 i.i.d. Bernoulli(p),而所謂 A 的重現期,就是距離下一次觀察到 A 所需的平均時間。譬如我們以日為單位,現在是第一日的開首,而下一次要第 $T$ 日才觀察到 A,那麼 A 的重現期,以日數計就是 $E(T)$。很明顯:
  • 第一日就觀察到 A(亦即 T=1)的機會率為 $p$;
  • 第二日才觀察到 A(亦即 T=2)的機會率為 $qp$($q=1-p$);
  • 第三日才觀察到 A(亦即 T=3)的機會率為 $q^2p$;
  • 第 n 日才觀察到 A(亦即 T=n)的機會率為 $q^{n-1}p$;
  • 故此 $E(T) =  p + 2qp + 3q^2p + ... + nq^{n-1}p + ...$(練習)。若讀者念過大一統計學的話,當然知道 T 依隨的實乃參數為 p 的 geometric distribution。
「重現期」既是科學術語,有關現象的定義自然要準確。假若我說「雨是 7.5 日一遇」,是沒意思的。換作「天文台沙田氣象站的雨,是 7.5 日一遇」好一點,因為指明了事件發生的地方。換成「天文台沙田氣象站錄得 40 毫米以上的單日降雨量,乃 7.5 日一遇的事件」就更好,因為說明了談話者所關心的是多大的雨。

網民嘲諷中共「官方」稱這次事件乃百年一遇,然而我找過一些內地大報,如《人民日報》、《光明日報》與《中國日報》,若不計轉載內容,它們均無提過該暴雨為百年一遇,例如《中國日報》一篇報道就只是說這次是 the most devastating downpour in the Chinese capital for 61 years。中國氣象局、北京市氣象局及其轄下機構好像也沒有以「百年一遇」來形容該次暴雨。所以,公道一點地說,當時的「百年一遇」之說,並未得到中共中央或氣象部門認可。

一些北京報紙,如《北京青年報》、《新京報》或《北京晨報》,倒報道過「百年一遇」一說,而且它們的消息來源皆為「北京市人民政府防汛抗旱指揮部副指揮潘安君」。據《北京晨報》報道:
市气候中心昨天公布的数据显示,比起21日历史罕见的大暴雨,自1951年有完整气象记录以来的京城历史上,单日降雨量排名“亚军”和“季军”的降雨日分别为1952年7月21日和1954年8月9日,但老天爷降下的雨水比起“冠军”却远远不及。
   昨天,市防汛抗旱指挥部副指挥、市水务局副局长潘安君通报了此次特大暴雨的四个“历史罕见”:降雨总量之多“历史罕见”,全市平均降雨量170毫米,城区平均降雨量215毫米,为新中国成立以来最大一次降雨过程,房山、城近郊区、平谷和顺义平均雨量均在200毫米以上,降雨量在100毫米以上的面积占本市总面积的86%以上;强降雨历时之长“历史罕见”,一直持续近16小时;局部雨强之大“历史罕见”,全市最大点房山区河北镇为460毫米,接近五百年一遇,城区最大点石景山模式口328毫米,达到百年一遇,……
從上述報道,可見:
  1. 潘安君只說過而北京當日的全市單日平均降雨量屬「新中國」成立以來之冠,並沒說此降雨量是「百年一遇」。
  2. 然而他確有聲稱「石景山模式口」當日雨量是「百年一遇」,更說「房山區河北鎮」的降雨量為「五百年一遇」。

如何估計重現期
前面提到一個現象的重現期,是距離它下次發生的平均時間。要估計這個期望值,從文獻所見,常用方法似有三種。

第一種是以簡單的相對頻數來計算事件發生的概率 p,從而推算重現期 $E(T)$。舉例說,若根據過往記錄,某 B 區於過去十年(n = 3652 日)當中,有 m = 13 日的單日降雨量超過 100 毫米,那麼,對於「B 區的單日降雨量達100 毫米以上」這個事件,我們所估計的 p 就是 $\frac{m}{n} = \frac{13}{3652} = 0.0036$,而此事件的重現期為 $E(T) = \frac1p = 281$ 日,或者 0.77 年。因此,若今天 B 區剛巧錄得 100 毫米以上的單日降雨量,我們可以稱這場雨為「0.77 年一遇」。

第二種方法是用有序統計 (order statistics)。假設我們將前例中 3652 個單日降雨量由大至小排列,發現當中排第 r = 13 的單日降雨量為 102 毫米,那麼,對於「B 區的單日降雨量達 102 毫米以上」這個事件,我們估計 $p = \frac{r}{n+1} = \frac{13}{3653}$(留意此處與第一種方法不同,分母為 n+1),而重現期為 $E(T) = \frac1p$,同樣大概是「0.77 年一遇」。

第三種方法是 distribution fitting,亦即是將過去的觀測記錄模配到理論上的統計分佈之中。若模配的是長期平均值的分佈的話(例如每年平均單日降雨量),由於大數定律,用 normal distribution 就可以了;若模配的是最大值的分佈的話(例如每年最高單日降雨量), 較常用的則有 Gumbel distribution 與 exponential distribution 兩種。如何將觀察資料模配到理論分佈之中,或者如何檢定模配的合適度,是大學統計學的內容,此處不贅。

假設我們手頭上只有某地過往 N 年的單日降雨量記錄,可以證明(練習),無論今日我們觀察到該地的單日降雨量為何,若用上述頭兩種方法,而且 Y>N+1,我們是絕無可能得出今日這場雨是「Y 年一遇」這個結論的。《北京晨報》說北京自 1951 年起有完整氣象記錄。其實中共建政後,北京於 1951 年建立第一所氣象站,當時是否已有「完整氣象記錄」,不得而知,但就算有,從 1951 年至 2012 年才不過 61 年,因此,若說北京雨災當日,「石景山模式口」的降雨量是「百年一遇」,甚至「房山區河北鎮」的降雨量為「五百年一遇」,是絕無根據的。

若用的是第三種方法,由於所用的分佈是伸延至無限大的連續曲線,無論如何大的降雨量,我們也的確可以估計出它的重現期。問題是,若降雨量像前述的北京暴雨那樣,完全高於過往最高記錄,則如此推算出來的重現期,實際上等於是用外插法 (extrapolation) 取得。用 normal values 來估計 extreme value distribution,或者借用近年新興的說法,以白天鵝來估計黑天鵝 (black swan),是任何受過良好基本統計訓練的大學生,都不會視為可靠的做法。

這不是說水利工程師不會用只得幾十或一百年的資料來估計「二百年一遇」事件的規模。事實上,以我們香港的渠務署為例,它對於市區排水幹渠系統(urban drainage trunk system,「幹渠」即是排駁大型集水區、防洪標準最高的渠道)與鄉郊的防洪堤堰 (flood protection bund) 的設計標準,是必須能應付「二百年一遇」的水浸。只是,工程師除了要對特定的重現期估計洪水或降雨規模之外,還要估計有關的信賴區間 (confidence interval)。更重要的,是渠務署會不時監察排水系統的表現,而不是紙上談兵。「重現期」是用來幫助工程師估計排水系統所需的設計參數,並非供官員於洪水雨災發生後用作遁辭。

2014年3月19日星期三

StackEdit: still no juice

曾有某作者謂,現今 computing 一詞,早已脫離當初 numerical computing 的含義。若你寫的程式主要是為了科學計算,已經算是少數民族;若你的目標平台並非超級電腦、GPU 或者 SETI@home 式的 distributed computing 架構,而只是家中一部爛鬼PC裏面只得一粒的CPU其中的一個core,感覺就更加寒酸,有口難言。

但係唔聲唔聲,問題唔會自動消失。好在平日寫程式,遇到的最大問題,只是寫 documentation。科學計算用的程式與其他程式不同,靠寫在程式檔案裏頭的 comments 去解釋算則,除非算則本身是幾句可以講完,否則基本上無可能看得明白,必須另外寫一篇 LaTeX 格式的文件才清楚。然而,儘管用 LaTeX 作基本排版是很容易的事情,但若要版面悅目好讀,就麻煩得多。要是有較大的圖表的話,排版就更考功夫,甚至難以控制。萬一要打中文,則更叫人頭痛。何況 markups 始終都不及 markdowns 簡潔,所以即使我已用了 LaTeX 這麼多年,仍是無時無刻不想跳船。

幾年前有了 MathOverflowMathematics Stack Exchange,終於嚐到 MathJax 的甜頭:毋須「特定軟件」,只需用 browser,即可混合 markdowns 和 LaTeX,輕輕鬆鬆打數式,兼且 what you see is what you get。(其實近廿年前也有類似產物,就是 IBM TechExplorer,可是這是 browser plugin,每一位文件讀者均要在電腦上安裝,因此於學界不算普及。TechExplorer 的顯示效果不錯;當然,現今的 MathJax 更理想。)然而 MO 與 MSE 是討論區,不是寫 documentation 用的網站。直至去年 StackEdit 面世,打開 Google Chrome browser 就可以用 MathJax 和 markdown 寫文件,出來的效果超漂亮,又可以和 Google Drive 或 Dropbox 同步,令我非常憧憬。

可惜,日前試將自己其中一份 documentation 改用 StackEdit 重寫,發現一個很大的問題,就是 StackEdit 的 table support 非常 buggy。原則上,markdowns 只支援極簡單的表格格式,但 StackEdit 自稱支援 HTML 表格,因此本應沒有問題。然而試用之後,我卻發現 StackEdit 連簡單的 <td colspan="2" align="center"> 都無法正確處理,複雜一點的列表就更不用說。

另外有兩個比較個人的問題。其一是我不喜歡 StackEdit 乃 online editor,萬一電腦斷線就不能用;其二是若 documentation 包含影像的話,就只能連結放在雲端硬碟上的影像。用家當然可以另行將影像檔案拷貝到自家電腦上,但由於連結的只能是雲端版本,自己留底就顯得有點甩頭甩骨。

以上兩點都令我感到很不自在,故此暫時仍得依賴 LaTeX 這艘難以駕馭的船。有時感覺很唏噓。十幾廿年來,科技不斷進步,但在自己的 niche,科技進步彷彿特別慢,連基礎問題都未能解決。

勿因蟲廢言(三)

基於莫名其妙的原因,昨日忽然有較多讀者閱讀本網誌上週的文章《勿因蟲廢言(二)》。即使此處並非人氣網站,文章刊登與瀏覽量高峰之間的時差,也從未達四日那麼長。無論原因為何,重讀舊文一遍之後,為免讀者誤會,且容我澄清一下。

是次 HKUPOP 「特首民望調查」,梁振英的平均得分低於 50。梁粉認為這個結果有誤導之嫌,並提出幾項論據,其中較注目的一項,指受訪者所打的 998 個分數中,有 91 個屬零分這個「極端分數」,拉低了平均分數。

我不認為這個論據成立,原因如下:

  1. 有時計算平均數,我們的確希望排除「極端」數值(離群值,outliers)的影響。然而所謂「極端」,指的不單是樣本數字的大小,還有該樣本數字出現的概率。換句話說,我們要排除的,是極端罕見而且又有極端數值的樣本的影響。舉例說,設想某個介乎 0 至 100 的數字 X,若出現 X=0 的概率為 0.49505,出現 X=100 的概率也是 0.49505,而出現 X=1, X=2, ... 以至 X=99 的概率,各為 0.0001。那麼,儘管 0 與 100 是 X 的可能數值中極小與極大的兩個,但它們才是正常的數字,絕不應排除。
  2. 我們並無先驗 (a priori) 理由認為「特首民望調查」中的 0 與 100 分份屬罕見。故此它們應視為正常樣本數字,而非離群值。
  3. 若論語意的話,由於問卷只解釋了 0, 50 與 100 三個分數的意義,所以受訪者揀這三個分數,比揀其他分數更正常。因此,0 和 100 更不應視為離群值。
  4. 何況是次 998 個分數中,接近 9%(91 個)是零分。有如此多零分,我們更有理由相信它們並非離群值,而且受訪者所打分數其實屬多峰分布 (multimodal distribution),而非類似鐘形曲線 (bell curve) 的單峰分布 (unimodal distribution)。
  5. 退一步說,就假設分數呈單峰分布,而 0 與 100 是離群值好了。由於有效分數只可介乎 0 與 100 之間,故此屬有界分布 (bounded domain distribution)。一般而言,相比無界分布,在有界分布中,離群值對平均數不會有嚴重影響。
  6. 實際上,今次樣本,在不加權的情況下,就算我們略去高低各一成樣本數字,而計算截尾平均 (trimmed mean),結果仍與簡單的樣本平均數無大分別,兼且仍低於 50 分。

由此可見,梁粉圍繞「極端數值」的論據並不成立。

梁粉的批評,有另一個毛病,就是無視了平均分應該加權計算這個事實。

由於社會因素(例如從日間到黃昏,留在家中的成年人,應以家庭主婦和長者佔多),用固網電話做民意調查,必然有某類人會較少受訪 (under-represented),而另一類人則訪問過多 (over-represented)。為了修正這個誤差,我們就要以受訪者的統計特徵(例如年齡、性別等等)來分組,將各組人佔受訪者總數比例,與人口普查所得的比例比較。若發現某組人於訪問中所佔比例太小,這一組樣本就要加重權數。這就是做民意調查時,受訪者經常會被問及年齡、性別等等個人資料的原因。

且不說今次調查中,打低於 50 分的受訪者,其實比打高於 50 分的還要多。就算給超過 50 分的受訪者真過半,若他們是 over-represented,一經加權修正,出來的結果也可能比 50 分低。

梁振英所得的平均分,加權後為 47.5(也就是 HKUPOP 公布的數字),未過 50,但此分數只是單點估計 (point estimate)。既是抽樣調查,就必然有統計誤差。如何分析這個統計誤差?有一篇由署名「陳電鋸」的大學博士生所寫網誌,就用了正統的 bootstrap method 來分析。結果顯示,即使考慮了統計誤差之後,我們仍有信心說,梁振英所得的加權平均分,明顯低於 50。

「輔仁媒體」刊登了另一篇反駁梁粉的文章。文章作者處理權數的方法並不妥當(概念上,權數應施加在樣本數字的出現頻率上,而非樣本數字本身;若果只是計算加權平均數這個單點估計,兩者效果並無分別,但若要做其他分析,就必須搞清楚概念),不過該文章也有有道理和有趣的地方,不妨一讀。

梁粉的另一項批評,是 HKUPOP 使用平均分不妥。這方面我是同意的,但我認為更根本的問題,並非在於「平均分」,而是曖昧不明的「分數」本身。

HKUPOP 的問卷只指明了 0-100 分這把量尺中其中三點(0、50 及 100)的意義,其他分數刻度的意思曖昧不明。儘管根據陳電鋸另一篇文章分析,多年來從 HKUPOP 調查計算所得的「特首民望」平均分數,與中大亞太研究所獨立調查所得大致吻合(不過他並無說清楚,其文章所指有很強相關的,究竟是兩個研究所的民望指數,還是兩組指數的升跌),然而,這頂多表示市民於大概同一時段內,心中所用的量尺大體一致,卻不能為升跌的幅度賦予任何意義。我們無從判斷,心中量尺刻度的意義,是否隨時而變。同是從 30 跌至 20,若於不同時間發生,意義是否一樣?即使現刻,我們亦無從判斷,能令民望從 47.5 升至 57.5 的政績,是否與能令民望從 47.5 跌至 37.5 的過失等量齊觀。

若然我們不能說明民望指數變幅的實際含義的話,「民望指數大跌」與「民望大跌」就難言是同一回事。若有不明就裏的受眾搞錯了,就算兩所研究機構並非存心誤導,伯仁也是為他們而死。

2014年3月15日星期六

勿因蟲廢言(二)

上週香港發生了兩單非常嚴重的事件,其一是警方竟然闖入區議會,抬走正在正常開會的區議員;其二是政府以一個極其荒謬的理由,要求明明應該只受《電訊條例》監管的「香港電視網絡」流動電視業務,亦要受《廣播條例》監管,令港視於正式開台之前,必須取得本地免費或收費電視節目服務牌照。

儘管香港淪為中國殖民地以後,情況一直變壞,市民也一直說「低處未算低」,然而今次這兩宗事件,卻是香港正式告別英治年代政治格局的里程碑。舊日講求公務員政治中立,和講究規章制度的精神,今日已完完全全淪為「親疏有別」、「法律因人而異」的人治局面。兩天前於電視上聽見中國總理李克強說「中國是法治國家,不論是誰,不論職位高低,法律面前人人平等」,我聽了只得冷笑。黨大於法的國家一邊自詡法治,一邊摧殘其殖民地原有的法治制度;自稱「人民民主專政」,卻擁有永遠執政黨的野蠻人,大言不慚,指點有半熟代議政制的文明人何謂民主,何謂法治,何謂普選……甚麼叫「匪夷所思」,香港歷史就是最佳註腳。

比起上述兩宗嚴重事件,今日我於「主場新聞」看到的鬧劇就顯得非常次要,然而此事上我總算有一些實質的東西可以說,故此不妨一談。鬧劇的起因,又是「梁粉」批鬥鍾庭耀。詳情請閱以下兩篇立場迥異的網絡文章:
公說公有道,婆說婆有理?
「梁粉」批評如下:
依據港大最新的民調,以100分為滿分,特首僅獲47.5平均分,當然就被評為不合格了。然而,只要打開原始資料,就會發現998個評分者中,原來有多達615人、即逾6成人均給予特首50或以上的合格分數,其中更有29人給予100分;僅有383人給予50以下的評分。那麼,為何特首的評分又會不合格呢?最大的問題在於有91人個受訪者給予0分,就是這些極端評分,令特首的平均分大幅度拉低。
「主場」及香港大學民意研究計劃研究經理李偉健則反駁:
 評論指有91個0分樣本「拉低」平均分,沒有提到29個100分樣本同時會「拉高」平均分。港大民意計劃研究經理李偉健向《主場新聞》解釋,民望調查詢問受訪者給予官員0分至100分的評分,相信受訪者誠實回答,無論樣本是0分或是100分,都應納入計算,除非是101分,在數值範圍之外才會剔走。

李偉健強調,歷來民望調查同樣沿用這方法,公布按評分計算算術平均值(Arithmetic Mean),「沒有篩走特別低、特別高的評分。」
開門見山。我認為「梁粉」的批評有其道理,但其為己方所作辯解,一樣有問題。另一邊廂,「港大民研」的統計方法也有毛病。

Lies, damned lies, and 梁粉's statistics
統計數字不會說謊,它有的只是統計偏差。說謊的,是運用它的人。"Lies, damned lies, and statistics" 這句名言,就是用來諷刺那些蓄意運用統計數字來製造假像的人。前述「梁粉」的批評,正好拿來作「統計語言偽術」的最佳範例。

從「特首民望調查」所得到的 998 個有效評分,平均分為 47.4(「港大民研」公布數字為 47.5,略有不同,這是因為他們按受訪者的統計特徵作加權平均),低於 50,但實際上 998 個分數當中,有 615 個為 50 分以上……至此,梁粉都沒有說錯。然而,他們沒說的是:
998 個分數當中,也有 663 個為 50 分以下。
感覺混淆嗎?或者這樣說吧,998 個分數當中,有 383 個低於 50 分,280 個等於 50 分,335 個高於 50 分。分數的分布如下:

從 0 到 100,共有一百零一個整數,而 50 正好居中。梁粉試圖以「50 分以上」這個標準來描繪一個梁振英有超過六成人支持的景象,可是據他們的邏輯,我們同樣可以說,以「50 分以下」這個標準來判斷的話,有超過六成人(而且這個「超過六成」的人數比起梁粉的「超過六成」更多)反對梁振英!

我不明白一眾梁粉何以如此介懷 47.5 這個只略低於 50 的數字。若是選舉的話,兩三個百分點也許是勝負關鍵,可是像印象分這種雖非玄學,卻也「不算精密科學」的東西,47.5 和 50,實在沒有分別。換了我是梁振英,看到如此數字,高興還來不及呢。

離群值與平均數
梁粉指出,998 個分數當中,有 91 個是 0 分,這些極端評分拉低了整體的平均數。這是正確的。「主場」卻反駁梁粉,說他們沒提及樣本當中亦有 29 個 100 分,會有拉高平均分的相反效果,也同樣正確,亦再一次顯示梁粉玩弄輸打贏要的統計語言偽術。

然而,撇除梁粉的拙劣技倆不談,若樣本中可能有不少「離群值」(outliers) 的話,到底我們應該如何估計統計母體的平均數?

港大民研的李偉健指「無論樣本是0分或是100分,都應納入計算」。就一般統計調查來說,這是過時的做法(但此處有一個 catch,要押後談)。現代統計學認為「穩陣」(robust) 的做法,本網誌之前的書評其實已經提過,就是利用截尾平均 (trimmed mean),也就是先截去最高和最低的 5-10% 數據,然後才計算平均數。

可是我們幾乎可以斷言,在「特首民望調查」中,無論用普通的算術平均,抑或用截尾平均,都不會有大分別。原因是一般來說,離群值最有殺傷力的情況,是母體數字本身為「無界」(unbounded) 的時候。是項調查當中,有效的評分本身有界(只可介乎零至一百),離群值的影響通常不會太壞,故此梁粉的批評,抓不到統計學的重點。

實際上,若截去今次樣本當中,高低各一成的數據的話,得出來(未經加權)的截尾平均為 48.1,與樣本平均數 47.4 相去不遠。

尺度不同,分數如何換算?
這倒不是說「特首民望調查」無問題。印象中,港大民研所做的民意調查,大部份(例如立法會選舉的選前調查和 exit polls)都很紮實。然而此項「特首民望調查」,卻非常礙眼。我很想問鍾庭耀一句:
How on earth is this rating meaningful? 
單單叫受訪者為梁振英打個分數,已經很有問題。問卷只提過零分(「絕對唔支持」)、五十分(「一半半」)與一百分(「絕對支持」)的意義,中間的尺度 (scale),人人卻不同細分。你我各給六十分,意思未必相同。你的分數如何換算成我的,完全木宰羊。現時港大民研的做法,實際上假設了所有人的評分尺度均一。由此引起的模型風險 (model risk),無法評估。舉個例說,若你看到梁振英的「民望指數」比上月高,你可能以為他真的愈來愈受市民歡迎,但實情可能是他的民望無變,只是今個月的受訪者的評分尺度較寬鬆,對無甚特別感覺的官員,也傾向打一個高分而已。

就算是奧運體操項目,評分有較多稍為客觀的細項憑依(動作要求、難度、時限等等),仍不時惹人爭議,各人對特首表現的評分尺度,又怎可能大致一樣?

不知尺度,何論變化?
好了,就假設香港有一個平均的評分尺度吧。套用經濟語言來說,就當人人都用一個一致「市場評分尺度」好了,但為何我們可以計算平均分?平均數並不一定是有意義的。一半人給零分,另一半給一百分,借用時下流行語來說,是社會撕裂的狀況;所有人都打五十分,卻更似人人認命。兩種情況截然不同,平均分都是五十分,那麼五十分究竟是甚麼意思?

以上例子當然太極端,極端到與雷鼎鳴對堅尼系數的批評如出一轍。假若港大民研只是拿這個平均分來判斷粗略民情的話,上一段的批評是不適用的。問題是,港大民研對待這個平均數時,彷彿其精密數值或它幾個百分點的變化,有甚麼微言大義似的。然而,即使香港有一個「市場評分尺度」,我們仍不知道這個尺度是甚麼樣子。同樣是跌十分,從一百跌至九十分,是否跟六十跌至五十,或十跌至零同樣大鑊?木宰羊。五十分所代表的「一半半」,和「及格」是同樣意思嗎?木宰羊。不及格的話,甚麼分數才算民怨沸騰,很想梁振英辭職?木宰羊。

不知背後的評分尺度的話,再精密的數字都是沒用的。弄得好像很精密,反而令人誤以為該數字很科學,其細微變化很有意義。

離群值真是離群值嗎?
前面說過,以普通的算術平均來估計母體平均數,乃過時做法。諷刺的是:
  • 對「特首民望調查」來說,由於整把由零至一百分的量尺中,只有零、五十及一百有清晰意義,所以這三個分數,比其他分數可靠。
  • 故此,吊詭地,0 和 100 兩個離群值,反而不應剔除。
  • 結果梁粉針對離群值的批評,意外地不適用。
  • 若硬要計算平均數,普通的算術平均,此處亦反而比截尾平均更恰當。
然而這不表示港大民研的做法正確。正正因為他們採用了語意不明的尺度,才造成這許多奇怪狀況。

結語一:less is more
如前述,港大民研的民意調查,一般都很紮實,但這項「特首民望調查」,用粵語來說的話,真係「畀位人插」。"Less is more" 這句說話聽來陳套,但此處適用。奉勸 Robert Chung,還是乾脆將問卷問題改成簡簡單單的「你想唔想梁振英繼續執政」之類好了,不要再搞那些懶細緻的評分吧。

結語二:廢話去死,自由萬歲
最後且談文字,不談統計。梁粉謂:
港大民意研究計劃的民調早陣子引起連串質疑,未知是否有見及此,今次港大再度公布特首評分時,民意網站已出現所謂的「原始資料」,雖然相關檔案的格式要以特定軟件才能打開,但內裡所刊載的正正是評分分布數字。
這不是廢話嗎?有甚麼檔案是任何軟件都可以打開的呢?何況所謂「特定軟件」和檔案格式,也不過是統計佬慣用的 SPSS 與它的 sav 格式吧。不想付鈔的朋友,可用免費的自由軟件 R 打開有關檔案。

相關網頁
伸延閱讀
  • 電鋸,你玩統計,統計玩你:「問題根本不在於 0 和 100 等等 outliers ,而是佔人口比重較多的組群對梁振英評分較低。

2014年3月8日星期六

Patema Inverted

無論是那處的影、視、動、漫,有新意之作近年都買少見少。網上這一套四集,每集長五、六分鐘的 Patema Inverted: Beginning of the Day,是動畫電影 Patema Inverted 的前奏。看頭兩集時,還不覺得怎樣,以為不過是常見那種「人類劫後重生」故事的風格和設定。直至第三集末段,才驚覺完全不是那一回事。電影去年十一月已於日本上畫,期待有日可於本地放映。





2014年3月6日星期四

歧視

今日讀報,有這麼一個段落:
來自北京的陸先生與陳先生同遊香港,……他(註:陳先生)又迅即向記者大吐苦水,指來港遭到不公平待遇,曾以普通話向港人問路,不少人卻裝聾扮啞拒絕回答,直至後來,他以英文問路,才有人肯回答。「這分明就是歧視啊,心裏會有壓力,下次來港前會有顧慮。」
我真的不明白,何以大陸人每有不快遭遇,總是認為自己遭歧視?做遊客的,出發前不會稍讀有關目的地的基本資料的嗎?香港的主要語言為粵語和英語,路人不懂普通話,根本是平常事。你遊魁北克,用普通話問路,沒人理睬,後來改以英語問路,總算有人肯回答,難道這又是歧視嗎?

我並非路癡,卻是那種「自己懂得走,但不懂得解釋如何走」的人。就算有人用粵語問路,我都是盡量迴避的,免得點錯路,更何況我的普通話只是「有限公司」?現在每逢有人以普通話問路,我都是回一句 "I don't speak your language" 了事的。至於回答的語氣如何,之前會否加個 "Sorry",就要視乎對方發問時,有否用「請問」開頭,而我可以非常肯定地說,要加這個 "Sorry" 的場合,不到十分之一。

2014年3月5日星期三

勿因蟲廢言

張 has a point
恒基地產副主席李家傑,昨日大力批評港大民調的「特首民望調查」,共產黨報章及土共聞聲而動,紛紛幫忙叫罵,霎時將今年「驚蟄」提早了兩日。

這些「小爬蟲」(小爬蟲黃定光語)的評論,大部份都不值一哂,然而「梁粉」張志剛的批評,卻有一點道理。按AM730報道,他說:
 「如果問聽日投票,投梁振英定係唔投梁振英嘅話,你就只可以將個結果解讀為『如果聽日投票,梁振英可以攞到幾多票』,唔可以當作係施政支持度,而且如果講投票選舉嘅話,一定要列明對手。」
香港人根本就不能(或未能) 選舉行政長官,因此以這種「假想得票率」(鍾庭耀語)來估計任何其他數字,都必然有所歪曲。況且,如張志剛所說,就算要估計選舉得票率,也應該指明對手。若將「梁振英對余若薇」換成「梁振英對曾德成」,結果就恐怕有天淵之別。

鍾 knows what he is talking about
鍾庭耀如何擬出現在的問卷?按香港大學民意研究計劃網站的說明:
「港督或特首民望」調查一直沿用的提問方式為「而家想請你用0-100分評價你對港督/特首某某某既支持程度,0分代表絕對唔支持,100分代表絕對支持,50分代表一半半,你會俾幾多分港督/特首某某某呢?」及「假設明天選舉特首,而你又有權投票,你會唔會選某某某做特首?」。
而按鍾庭耀於2003-6-12的解釋:
筆者在12年前引入0至100的評分標準,是經過一番考究和深思。該等基準,在民主社會時有用之,但不算普遍。西方社會慣用百分率顯示政治領袖的「認許率」或「支持率」,提問方法大抵可以分成兩大類: 

(1) 你是否認許某某處理其崗位(如總統、首相等)的工作? 

(2) 如果明天進行選舉,你會否投票支持某某? 

一般而論,答案只分正反兩面,再加「不知道」。所謂「正反兩面」,可能是採用二分或四等法。二分法的答案可以是「認許」、「不認許」;「滿意」、「不滿意」;「是」、「否」;「會」、「不會」等;而四等法的答案可以有「很滿意」、「頗滿意」、「頗不滿」、「很不滿」;「肯定會」、「可能會」;「可能不會」、「肯定不會」等。 

西方社會涉及0至100評分調查的對象,大多數不是選舉出來的政治人物,或者只是醞釀參選的人物。提問者通常會要求被訪者想像一個攝氏溫度計,0度表示冰冷,100度表示沸騰,50度表示不冷不熱,然後要求被訪者打分形容其對某人的感覺。顯而易見,這種方法毋須被訪者想像任何選舉處境,或與其他人物比較。 

不過,這種提問方式得出來的數字,往往不能直接轉化成為選民基礎的強弱,對預測選舉結果的作用不大。民主社會習慣以選票較高下,選舉期間如是,民意角力也如是。因此,西方社會的民意指標主要採用二分法來量度領導人的「假想得票率」,或「工作表現認可率」,類溫度計的數字則屬次要。西方社會稱民意調查為「opinion poll」,就蘊藏了民意公決的概念。 

香港的民主進程只屬初階,除了從地區直選出來的立法議員外,用「假設得票」的問題來量度民望,對被訪者而言,似乎沒有太大意義。因此,筆者在12年前便採納了0至100分的標準,作為主流測試方法。不過,時至今日,「問責」觀念高唱入雲,巿民的民主訴求逐漸熾熱,民望指標亦要相應調整。更何況,部份官員已學會偷換概念,把40多分的支持度評分說成是獲得四成多的支持比率,還說這樣的民望可以媲美世界各國。這些言論,或許能淡化巿民的不滿,但是本身有違科學精神,對民意不公,對社會無益。
由此可見,鍾庭耀本人是很清楚其問卷是有甚麼潛在流弊的,他也是經過深思熟慮後,才將問卷設計成現在這個樣子。你可以不同意他的見解(我就不同意),但他足足十年前已公開解釋其問卷設計,而這是可供公開學術辯論的。將他的調查形容為對民意的「操控」(李家傑語),絕不公允。

Approval ratings
話雖如此,我也一向不大滿意鍾的「特首民望調查」(他將支持率與反率對的差額,用一個自創兼懶學術的詞語「民望淨值」來包裝,就更叫人眼冤了)。要採用他口中所謂「二分法」抑或「類溫度計的數字」(0至100分),只屬旁支末節。最根本的問題,是他究竟想量度甚麼?

既然這是一項「特首民望調查」,想量度的,當然是市民有多想行政長官下台了。港大問卷的兩條問題當中,張志剛已指出第二條問題的弊端。至於第一條問題,它用的是甚麼字眼?
「而家想請你用0-100分評價你對港督/特首某某某既支持程度,0分代表絕對唔支持,100分代表絕對支持,50分代表一半半,你會俾幾多分港督/特首某某某呢?」
這個「支持」 是甚麼意思?是滿意的意思?是我會以實際行動幫助他(例如加入「愛字頭」的鋤奸隊,或盡可能在共幹面前替他美言幾句)?還是不管我有多(不)滿意,我都贊成他繼續坐在他的位子上?用語言來表達思想,很難完全精確,但是「支持」這個詞語,意思卻未免太過模糊。

如鍾庭耀所說,有些外國的民意調查,會用上'approve'(鍾庭耀譯作「認許」)這個字眼。例如美國的市場調查一哥蓋洛普,就有每週追蹤調查,問:
Do you approve or disapprove of the way Barack Obama is handling his job as president?
亦有一些調查,用的字眼為「滿意」。例如英國的老字號市場研究公司 Ipsos MORI 的問卷,就會問:
How satisfied or dissatisfied are you with the way David Cameron is running the country /doing his job as Prime Minister?
留意問卷問的並非國民有多滿意首相的政績,而是問他們有幾滿意首相的施政。這兩者差之毫釐,謬以千里。問政績的話,遇著時勢艱難,官員難有作為,政績很差,但國民可能諒解,滿意其施政,認為官員已盡力扭轉乾坤,只是形勢比人強。就好像第二次世界大戰後期的北非戰場,德國的隆美爾元帥頻頻吃敗仗,但不少軍事史家反而對這個階段的他,有很高評價一樣。

我們不想問卷問題太長,但受訪者又未必了解「政績」與「施政」的分別,故此我還是覺得蓋洛普的問法較好。然而直接挪用又有點不妥,皆因 'approve' 一詞,隱含說話者有權干預的意思,但現今體制下,特首並非民選,立法會又有非民選的功能組別,兼投票時有分組點票,要說港人 'approve' 特首施政,真是無從談起。其實要量度官員的民望,我們可以單純了解市民有幾想換人。要避開張志剛所指出的困難(假設明日有選舉,亦要指明對手),我們其實不必扯甚麼「明天有(假)選舉」,只需簡簡單單地將問題更改如下:
你贊唔贊成梁振英繼續施政?
當然,文字還可以斟酌(後記:「你想唔想梁振英繼續執政」或者更佳),但我想說的是,鍾庭耀問卷的毛病,更深層反映的其實是語文問題。

2014年3月1日星期六

冰滑橋搖 ── 中學物理課本錯誤兩則

我念中學那個年代,各校物理課多採用外國教科書(實際上本地出版的,當時好像只有中大楊綱凱教授所編那本)。這些課本對現實世界的現象,時有錯誤解釋,我也是後來看其他書籍,才發現原來這些解釋是錯的。針對這些錯誤的批評,有一些流傳得比較快和廣,令相關錯誤很快從教科書消失。例如我那個年代的課本,許多都用 Bernoulli's principle 來解釋「用風筒打斜吹向乒乓球,但乒乓球在空中固定不倒」這個實驗 (Youtube),但後來人們知道這是誤解,正確的解釋應該是 Coandă effect 加上 Magnus effect,而這兩種效應的成因,其實超出了中學物理學的範圍。故此,儘管這個乒乓球實驗很有趣,但根本就不應拿來做課堂例子。(芸芸物理學原則中,Bernoulli's principle 也可能是最常被中學課本濫用的一個,但這是另話。)


然而也有一些錯誤,是流傳至今的。日前上網,發現兩個我念中學時所讀到的物理解釋原來又是錯的時候,心裏依然很驚訝。

為何人們可以溜冰?

Robert Rosenberg, Why is Ice Slippery? Physics Today, December 2005, pp.50-55.

水(及一些其他物質)受壓時,熔點會降低,這個現象稱為 pressure melting。以往課本多以此來解釋何以人們可以溜冰:溜冰的冰刀壓著冰面,令冰塊溶化,潤滑冰面,減低摩擦力。也有一些課本以摩擦生熱 (frictional heating) 來解釋冰面水分。

可惜,根據不同物理學家所做實驗,人們發現 pressure melting 這個解釋完全是錯的 ── 冰刀的壓力的確會降低冰塊的熔點,但憑常人的重量,施加在冰面的壓力,最多只可降低冰塊的熔點三、四度。當冰面接近零度時,以 pressure melting 來解釋冰面滑溜,乍聽還有理,但問題是,實際上冰面容許人們溜冰的溫度,可以低至零下三十五度,此時冰刀的壓力,卻不足以令冰面溶解。

其實物理學界對於冰面為何滑溜到可以溜冰,至今仍未有定論。暫時最令人信服的解釋,並非摩擦生熱,而是一種稱為 premelting 的原理(勿與前述的 pressure melting 混淆),其大意是,結晶體即使低於熔點,結晶面仍可存在準液態薄膜。連學者都仍未了解的事情,其真正的物理解釋當然也超出中學範疇。實際上,單是要證實冰面上有薄薄的水膜(而不論此水膜是否容許溜冰的關鍵),竟然也要出動到核磁共振儀器!

Tacoma Narrows Bridge 塌橋事故

K. Yusuf Billah and Robert H. Scanian, Resonance, Tacoma Narrows bridge failure, and undergraduate physics textbooks, American Journal of Physics, 59(2):118-124, 1991.

當一個可以振動的系統遇到週期性的外力,而施力頻率接近系統的自然振動頻率時,就會發生大幅振動現象,稱為共振 (resonance)。我那個年代的中學教科書(甚至大學教科書),不少都以共振來說明一些塌橋事故,或者以共振來解釋士兵走過吊橋時,為何不能步操,必須打亂步伐。事實上,過往確曾有大量士兵過橋時,發生塌橋事故,其中傷亡最嚴重的,當數 1850 年法國 Angers 懸索橋斷裂意外。當時有一營士兵正在過橋,儘管他們事先已知道要打亂步伐,但士兵為了在大橋搖幌時平衡身體,反而不自覺地令步伐一致。當大橋從懸索開始斷裂時,有 483 名士兵在橋上,最後有 226 人死亡。

1850 年連攝影都未普及,更遑論攝錄機。中學教科書引述得最多的,並非 Angers 大橋斷裂事故,而是有聲有畫,1940 年末在美國發生的 Tacoma Narrows Bridge 塌橋事故。




這宗極富戲劇性的經典意外中,無人傷亡,唯一死者,是被主人遺留在車上,名為 Tubby 的犬隻。(Tubby 的狗種為 Cocker Spaniel。香港將此狗種譯作「曲架犬」,巧合地與此塌橋事故語帶相關。)好些教科書都將這次意外形容為風與橋的共振,卻無解釋當時風力何以帶週期性。後來有人提出,並不是風力帶週期性,而是風吹過橋體時,造成稱為「Kármán 渦流街」(Kármán vortex street) 的週期現象。
然而有趣的是,且不說這個由渦流引起的震動 (vortex-induced vibration) 技術上算不算共振,原來早已有人驗證過這種震動並不會危害大橋。話說當 Tacoma 峽灣橋通車後不久,人們已發現大橋會隨風上下起伏。由於搖動幅度頗大,有人甚至報稱橋面隆起至看不見前車,而時人將此橋戲稱為 "Galloping Gertie"。親歷其境的過客當中,有一位華盛頓大學教授 Burt Farquharson。他事後利用風洞實驗,證明這種上下搖幌是安全的。而且,出事當日,大橋乃左右扭動至斷裂,搖幌模式與平日不同。

那究竟是甚麼機制導至大橋倒塌?這要到 1991 年,前述普林斯頓大學與約翰霍金斯大學兩位工程學者的論文出版後,才有公認的解答。事件的元凶,是一種稱為 aeroelastic flutter 的現象。大體來說,當風吹過橋體時,會造成一些小旋渦,令橋面扭動。許多時,這種擺動就像鐘擺般,會慢慢停下來(即 "damping",「阻尼」)。然而,若風速、橋面闊度與扭動的頻率皆符合特定條件的話,橋面扭動時形成的攻角,又會造成更多旋渦,而這些旋渦又令橋面扭動得更厲害,直至大橋斷裂。留意這種現象並非共振(事件中,施加在橋體的外力並無週期性),而是渦流與橋身擺動形成的正反饋 (positive feedback)。



究竟我們在中學(或大學時),還學了幾多錯誤的物理解釋?