2016年12月18日 星期日

覆讀者來信:計算按揭利息 (2nd edition)

有讀者來信查問H按的利息計算方法。事緣讀者於2012年7月敍造了P按,息率2.30%,供15年,每月供款,即180期;然後在今年(2016年)8月轉做H按,沒有增加年期,就咁繼續供落去。以下是讀者提供的供款表,假設貸款額為100萬:

讀者在第50期轉 plan 之後,嘗試用兩種方法去計算應付利息,但無論是以IPMT計算,抑或是以單息每月計算,得出來的結果都跟銀行的實收金額不同,故來郵問魔術師意見。
問題1:
首先溫故知新,睇返定息P按的計算方法(Row 11-60):
1. 年息 2.30% 等於月息 0.1917%(=2.30%/12,Column J)
2. 以 PMT 公式計出每月供款額為 $6,574.15(=PMT(0.1917,180,1000000),Column M)
3. 每月應付利息就是上月結欠乘以月息 0.1917% (Column N)
4. 本月償還本金就係 $6,574.15 減去本月應付利息(Column O)
5. 本月結欠就是上月結欠減去本月償還本金(Column P)

以讀者供款每月16日結算,如此類推,魔術師計到讀者於2016年7月(第48期)的期末結欠為 $766,068.70,跟銀行月結單相符(Row 59);但到了2016年8月(第49期),魔術師計到的期末結欠金額是 $760,962.85,但讀者所顯示的欠款卻是 $761,056.30,實際欠款比魔術師所計為多(Row 60)。問題出在哪裡呢?
既然已經有 model answer,那就用逆向計算,以所付利息與及上月結欠估返銀行條數式出嚟:發現在2016年8月(第49期),銀行是用了日息計算(1496/766068.70*(365/0.023)=31),而2016年7月16日至8月15日正正過去了31日。
留意就算2016年是閏年,銀行依然以一年365日來將年息化為日息。

***
問題2:
於是讀者嘗試計算在H按計劃下所支付的每月利息:

讀者以IPMT(以PMT年金法計算利息的公式)計算,代入跟計算每月供款額相同的參數,第50期計出來的應付利息是$1,170.12(Column H)。
以每月單息計算(前期末結欠乘本月利率),第50期計出來的應付利息也是$1,170.12(Column I)。
但銀行月結單所顯示的的應付利息卻是$1,192.56。第51、52期也出現相同的情況(Column E),問題出在哪裡呢?
其實H按的算法也是大同小異,只是每個月的供款利率會 reset 一次重新計算,例如:
  • 第50期,每月利率為1.84500%/12,供款期數(已供 49 期)為 180-49=131,尚餘供款額就是第49期的最終結欠,然後每月供款額以PMT公式計算。
  • 第51期,每月利率為1.87600%/12,供款期數(已供 50 期)為 180-50=130,尚餘供款額就是第50期的最終結欠,然後每月供款額以PMT公式計算。
如此類推。
計完每月還款之後,就要計銀行的H按利息部份,公式是以日息計算的。

具體的計法就是:
1. 因為係每月還款,所以以一個月為一期,以 PMT 年金公式以月息(Column J)計算出每月供款額(Column M)。留意,因為H按息的準確度有效數字(Significant figures)去到 0.0001個基點(1% 為 100個基點(Basis point)),例如年息 1.84500% 就是 0.0184500,準確度有效數字去到小數後7個位。將年息除以12得出月息,被除數(Divisor)是兩個位,準確度有效數字就要向右取多兩個位,即共9個位,才會維持返足夠準確度。讀者不信的話,可以嘗試其他 rounding,得出來的答案是會有誤差的。
2. 以每月日數作日息計算(Column N)。跟步驟1同樣道理,將年息除以365得出日息,被除數是三個位,有效數字就要向右取多3個位,即共10個位,方可作準(Column K)。
以銀行月結單所示的第49期期末結欠 $761,056.30(Cell P61,綠格)開始計算,第50期本來應該是有32天(由2016年8月16日至9月16日),但以32天計是計不到應付利息 $1,192.56(Cell E62)的。原來銀行是用了31天來計(可能是銀行系統未能就轉 plan 「無縫銜接」,免費送了一天利息給讀者),唯有手動更正(Cell L62,紅格)。
之後的第51期(Row 63)與及第52期(Row 64)就重回正軌,計出來的數字跟月結單相符。
另外,讀者的52期期末結欠出錯,公式應是 G63-F64才對(Cell G64,黃格)。
***
問題3:
既然 IPMT 公式並不能計到日息,咁鬼廢仲有乜用呢?
答案也很簡單:公式是死的,參數是活的。
在 PMT(或IPMT)等一系列的年金公式裡面,只要將參數定為相同的「時間單位」就可以:例如 rate 是指年息的話,per 和 nper 所指的「期數」就是以年為單位; rate 是指月息的話,per 和 nper 所指的「期數」就是以月為單位,如此類推。讀者以月為期數輸入公式,公式計唔到以日為單位的答案是正常不過的事。
正如你只有一把只有厘米為刻度的尺,卻去投訴為什麼量不到毫米,那對那把間尺豈不是很不公平?

記住,獨孤求敗的心法就是:「理解」。明暸劍理,融會貫通然後使出來,有無招式已經不重要,玄鐵劍和獨孤九劍都是這樣的道理。
***
後記:
有關準確度有效數字,試想
(a) 0.1/9 = 0.01111111... = 0.0 (小數後一個位),0.01 (小數後兩個位),0.011(小數後3個位)
(b) 0.1/10 = 0.01 = 0.0 (小數後一個位),0.01 (小數後兩個位),0.010(小數後3個位)
(c) 0.1/11 = 0.009090909... = 0.0 (小數後一個位),0.01 (小數後兩個位),0.009(小數後3個位)
也就是說,被除數是兩個位的話,要取3個位,才可以明確地將(a)、(b)、(c)三個 cases 分辨出來。
嗯,這應該是初中程度的數學,要理解應該不難吧?
(2nd edition:多謝讀者指正,魔術師太懶惰了,沒有查清楚,錯用significant figure呢個term,原文的意思是由 rounding 造成的誤差,已更正為「準確度」,即 precision 和 accuracy 的意思。)

13 則留言:

  1. 回覆
    1. (b) 是 0.1/10, 一定係0.1, significant figures 只是在後面pad 0.

      刪除
    2. 但0.1 除 10 不是0.1啊。。。喺唔喺0.01, 0.010, 0.0100 呢。

      刪除
    3. 10有效數字為1
      有效數字的定義及計算,參考: https://www.khanacademy.org/math/arithmetic-home/arith-review-decimals/arithmetic-significant-figures-tutorial/v/significant-figures

      刪除
    4. EC:
      //但0.1 除 10 不是0.1啊。。。喺唔喺0.01, 0.010, 0.0100 呢。

      我發雞盲了, 錯咗兩日都唔知, 可能真係有啲攰.

      //有效數字的定義及計算

      是的, 我用錯terms了, 已改.

      刪除
  2. 非常詳盡, 感謝魔術師的解答。

    回覆刪除
    回覆
    1. 魔術師真係一職多能樣樣惦。

      我估魔兄入到門薩。

      刪除
    2. //我估魔兄入到門薩。

      舊文有玩過下,非正式地掹車邊入到:
      我不是資優(2nd edition)
      http://magician__yang.mysinablog.com/index.php?op=ViewArticle&articleId=4174789

      刪除
    3. 我藍大其中一個supervisor曾經係Mensa會員,但佢就唔太like班人,話佢地聚會成日就剩係識話自己幾咁聰明黎自high.

      我有個學生都係Mensa會員。佢話坊間D Mensa test 書某程度上是搵笨的,真正的入會test比起書d tests 簡單。

      刪除
    4. //佢地聚會成日就剩係識話自己幾咁聰明黎自high.

      正是一班被人排擠的殭屍聚在殭屍竇內也文也武。

      //Mensa test 書

      又操練?係唔係天才/資優真係咁重要?中剷子女就只能是人中龍鳳?生個仔蠢蠢仔就陀衰家?

      刪除
  3. 鼓勵魔兄入門薩,門薩入面集中高智商的人。

    回覆刪除
    回覆
    1. 哈哈, 隨緣喇。 學《陀地驅魔人》話齋,識唔一定要話俾人知。「人多,殭屍係怪物」,你貼個標籤係額頭話俾人知你係殭屍,咪盞俾人排擠你, 對自己百害而無一利啊。

      刪除