分享本文至 E-mail 信箱

學術引用格式

MLA (點一下全選)

APA (點一下全選)

EndNote(.enw)

真‧紅包公式

前言:各位這幾天可能都看到了一則關於紅包公式的新聞。新聞因為針對的是一般大眾、又有時間篇幅限制,因此只能講很簡單的一道式子。比起那樣,我更想分享整個推導的過程和思考方式,包括在「複雜但精準」與「實用但有誤差」這兩者間的取捨,所以才又寫了這篇文章。

Photo Credit:Stephanie Chou

Photo Credit:Stephanie Chou

事情發生在上周五晚上,學長在我臉書上貼了張表格,詳細記錄不同情況下,參加朋友婚禮該包多少禮金。

婚禮行情3

我回想起數次去婚禮前,在LINE上面和朋友討論「你包多少?」、「五星級飯店哎,2600夠嗎?」更尷尬一點的,還得在距離禮金台不到10公尺之處掏皮包補錢。這張表格提供了一份公定價,真是太實用了。

它唯一的缺點是–也大了點。

業者根據經驗,依照台灣的5個地區、5種餐廳等級、3種參與人數(不出席、1人、2人)、4種交情關係,設計出來的表格共計有5×5×3×4=300個欄位。要是每次都得對照,省下來的紅包錢配眼鏡都不夠。反過來說,既然它是根據各種狀況所統計出來的數據,表示300種紅包金額並非各自獨立,而是彼此間有所關聯。比方說,交情越好就該包越多。這是常識,表格反映出來的價碼也是如此。

身為一位數學科普作家,前陣子出書後,我整天像擔心兒子娶不到老婆的爹,煩惱著都賣不好,數學沒人愛。絞盡腦汁想介紹數學、推銷新書

愛子心切的我決定犧牲周末晚上快樂時光,用數學將表格化繁為簡。

能做到這件事的數學工具有很多種,我選了統計學常用的「迴歸分析」:

了解兩個或多個變數間是否相關、相關方向與強度,並建立數學模型以便觀察特定變數來預測研究者感興趣的變數。

-wiki

先考慮稍微簡單的狀況:獨自參加台北的婚禮。固定「地區」跟「參與人數」後,要考慮的變數剩「交情」、「餐廳等級」,共有4×5=20種狀況。將交情由點頭之交到摯友用數字1~4表示,餐廳等級從辦桌到五星級飯店用數字1~5表示,再把這20組兩個輸入、一個輸出的數據放進去跑迴歸分析(嚴格來說應該稱之為多重迴歸分析),得到的迴歸方程式為

紅包金額= 975+372×交情+215×餐廳等級

四捨五入進位到百位得到

紅包金額= 1000+400×交情+200×餐廳等級

飯店等級 交情 表格金額 公式金額 差距
1 1 1600 1600 0
1 2 1800 2000 200
1 3 2200 2400 200
1 4 2600 2800 200
2 1 1800 1800 0
2 2 2200 2200 0
2 3 2600 2600 0
2 4 2800 3000 200
3 1 2200 2000 -200
3 2 2600 2400 -200
3 3 2800 2800 0
3 4 3200 3200 0
4 1 2200 2200 0
4 2 2600 2600 0
4 3 2800 3000 200
4 4 3200 3400 200
5 1 2200 2400 200
5 2 2600 2800 200
5 3 3200 3200 0
5 4 3800 3600 0

結果還不錯,20個數據裡有一半完全吻合,剩餘的一半也只有200元的差距。唯一的困擾是–跑出了幾2400、3400,這是絕對不會(除非參加舊情人)包的紅包數目。算了,先不管這個。我喜孜孜地跑去先發臉書動態,再回頭過來分析更複雜的狀況,將「區域」和「參與人數」一併考慮。

然後問題就來了。

我本身是在學術界做研究,做研究時永遠該注意的準則是:絕對不要以為問題很小就裝作沒看到,那樣的問題之後一定會變得很大,讓你很頭疼。

沒想到寫科普數學文章也一樣。

Photo Credit:Stephanie Chou

Photo Credit:Stephanie Chou

挑戰迴歸分析整個表格時,我遇到了兩個問題

  • 上述例子(獨自在台北出席婚禮)只有2個變數和20種組合,迴歸分析能提供一道精準簡潔的公式。當變成4個變數和300種組合,就很難用一道數學公式來捕捉禮金的變化。
  • 上述例子的禮金落在1800到3800之間,每次增加200或400,相對規律。300種組合時,禮金變化從800到10,000,中間跳過了4000、5000、7000~9999,非常不規律。

這兩個問題增加了迴歸分析的誤差。為此,我做了兩件事:

  1. 重新檢查表格,剔除「不出席」的狀況。因為不出席時,禮金只根據交情等級調整,其他變數都不會影響。這樣的特例會降低迴歸分析對於其他出席狀況的計算,變得更不準。也因此,接下來的分析僅針對「出席1人」與「出席2人」的狀況。
  2. 將輸出從「禮金金額」改成「禮金等級」,分級制度如下
等級 1 2 3 4 5 6 7 8 9 10 11
金額(千) 1.6 1.8 2.2 2.6 2.8 3.2 3.6 3.8 6.2 6.8 10

換句話說,迴歸分析不再分析各種狀況與「禮金金額」的關係,而是分析各種狀況與「禮金等級」的關係。如此一來就可解決不同禮金等級,金額變化不一的問題。經過這兩個處理後,得到的迴歸分析公式為

紅包等級=-5.375+0.465×地區+2.66×人數+1.08×交情+0.6575×餐廳等級

再將式子改成分數表示,整理可得到考慮更完整的紅包(等級)公式

Fig. 紅包公式

其中[.]是高斯符號,意思是將括號裡面的職四捨五入取到整數位。此公式算出來的結果與表格比對,只有2%的狀況出現紅包等級2的差距,其他都在1級以下,還算不錯。

搭配禮金等級表格,這才是最完整的紅包公式。不只賓客可以使用,新人也可以參考,評估自己會來的賓客大概屬於那些類型,該請怎樣的飯店,才能最大化收益(是把婚禮當成創業嗎?),或至少不虧本。

數學的威力

Photo Credit:Stephanie Chou

Photo Credit:Stephanie Chou

接下來是我的一些觀察。首先是「簡潔」與「完整」的取捨:從兩道婚禮公式可以看到,想考慮的狀況越完整,公式便會越複雜,直觀性、實用性就會降低。以我自己來說,恐怕也不會真的去用有高斯符號的紅包等級公式。

但儘管是那麼複雜的公式,比起表格還是簡單許多。這是一個充分展現數學化繁為簡、以簡御繁的例子:可以將龐大的表格表示成一道式子跟幾個較小的表格;之後,只要用一道式子,就可以算出不同狀況的紅包禮金。

我本身是做無線通訊研究,晶片設計中我們偶爾也會遇到這樣的問題,有些數字可以用表格(look-up table: LUT)存起來,也可以即時運算,前者的成本是記憶體空間,後者的成本是運算的能量消耗。各自有適合的狀況,也不一定都是要像這次一樣,把可以存的都改成用算的。

好像扯太遠了。

第二個重點,也是最重要的,就是透過迴歸分析,可以看到不同因素在決定禮金數目的比重。以禮金等級式子來說,地區、餐廳等級最不重要,光交情跳一級,就是地區跟餐廳同時加一級的分量。攜伴參加對禮金的影響是最大的。

「這些不用算啊,還蠻直觀的,是稍微想一下就可以下的結論。」

嗯啊,這麼說也沒錯,但地區、餐廳、交情、人數的比重是3:4:7:17,這就不是稍微想一下才能得到的,甚至,很認真地想也想不到,是唯有透過數學分析才能得到的。

數學不僅是一門御簡為繁的知識,更是一門能量化直觀概念的學問。」

這是受訪時我最想講的一句話。我的小孩書是《超展開數學教室》,還請各位支持了。

11096655_10155540948505072_878956566501948416_n

ad3

問答是人類最原始的知識互動方式,也是文明火箭推進的燃料,更是茫茫知識大海中的羅盤
為什麼蘋果會落下?為什麼人類不能飛?所有偉大的事物,都萌芽於一個最初的問題。
我們全新推出的問答平台——泛答,讓大家用最輕鬆直接的方式挖掘最有價值的知識。

受夠了虛實難辨的假新聞?懷疑自己困在同溫層?想念那個充滿好奇的內心自我?
來泛答吧,跟我們一起用問答打破現狀,用問答找回專屬於你的知識。

關於作者

賴 以威

賴以威

數學作家、譯者,作品散見於聯合報、未來少年、國語日報,與各家網路媒體。師大附中,台大電機畢業。 我深信數學大師約翰·馮·諾伊曼的名言「If people do not believe that mathematics is simple, it is only because they do not realize how complicated life is」。為了讓各位跟我一樣相信這句話,我們得先從數學有多簡單來說起,聊聊數學,也用數學說故事。 歡迎加入我與太太廖珮妤一起創辦的: 數感實驗室