Google Sheets - 用 FORECAST 函式預測數值,以房價為例
Posted on Feb 13, 2023 in Google 試算表 by Amo Chen ‐ 4 min read
Google Sheets 其實是相當好用的 low-code 工具,你不用成為超級厲害的程式設計師也能夠藉由它提供的各式函式(functions)進行資料分析,從中得出你的洞見(insight)。
而且 Google Sheets 提供不少預測的函式,讓我們能夠用數學算出較為客觀的預測值,不過使用前還是要懂它的原理,以免造成錯誤的預期。
本文以實價登錄的數據為例,教大家學會如何用 Google 試算表對數據進行預測。
前言
預測數據的方法有相當多種,有些用統計方式預測,有些用機器學習(machine learning)方式預測,都是基於數學公式所發展出來的預測方法,與人腦的經驗歸納預測方式不同,所以運用數學公式預測值跟你直覺推算的數值不同是常有的事。
另外要謹記預測值僅能作為一種參考,根本沒有 100% 準確的預測方式。
p.s. 如果有 100% 能夠準確預測的方式,人人應該都發大財了⋯⋯。
本文以某單一建案的房價實價登錄資料為例,大家也可以找出自己感興趣的建案交易資料進行分析。
本文範例可於此試算表查閱。
線性迴歸(linear regression)
本文所使用的 FORCAST 函式,是基於一種稱為線性回歸的方法進行預測。
簡單來說,假設 X 數據變化會導致 Y 結果跟著變化的話,線性迴歸會試圖找出最合適的一條直線,用來表示 X 指標與 Y 結果之間的關係,所以我們只要將 X 的數值放到這條直線上,就可以找到相對應的 Y 值,這是一種很直覺很容易理解的一種預測方法。
以下圖某建案的每坪單價走勢為例,我們想知道隨著時間指標的變化,對房價的影響,因此我們整理出 X 橫軸為按照交易成立時間的順序進行排列, Y 縱軸為我們感興趣的每坪交易單價,而紅線的部分是使用線性迴歸算出來的直線,大致看到某建案若以時間指標來看,每坪單價趨勢是緩步下降的:
所以我們可以用該直線預測未來交易代號 9, 10, 11 … 的可能數值。
FORCAST 函式
Calculates the expected y-value for a specified x based on a linear regression of a dataset.
如前文說述, FORCAST 函式基於一種稱為線性回歸的方法進行預測,FORCAST 函式的使用方式如下,我們得提供已知的數據 X 與 Y, 好讓線性迴歸能夠計算出 X -> Y 這條直線的公式:
=FORCAST(預測 X, 已知數據 Y, 已知數據 X)
若以本文資料為例:
已知數據 Y是我們關注的結果,也就是每坪單價。
已知數據 X 是我們感興趣的指標,也就是時間,在此我們按交易成立時間從早到晚進行排列,以時序代號表示。
預測 X 則是我們想藉由上述已知的資料想預測的 X 指標,以本文為例為預測交易代號 9, 10, 11。
執行公式之後,就能夠得到預測 X 的相對應 Y 值,例如下列公式:
=FORECAST(A17, B3:B10, A3:A10)
上述為以 A3:B10
作為資料預測時序代號 9 的可能每坪單價,可以看到預測值約為每坪 48 萬。
但我們如果單以人眼進行分析加上可能最近風聲房價正在走弱,因此會預期時序代號 9 的交易可能落在 40 萬上下,所以不禁會想「使用 FORECAST 預測不準?」
這是因為線性回歸會試圖找出最合適的一條直線,用來表示 X 指標與 Y 結果之間的關係,以前的數據也會影響這條直線的走勢,因此算出來大概在 48 萬上下。
如果我們覺得過於久遠的數據無法作為參考或者單純想就近期數據進行預測的話,只要修改已知數據 Y與已知數據 X的值即可,例如我們改以近期 4 筆交易進行預測,也就是 A7:B10
的範圍:
=FORECAST(A24, B7:B10,A7:A10)
更改資料之後,可以看到數值預測在 40 萬左右,也符合我們的預期。
但如果再額外查看交易代號 10, 11 的預測就會發現數值預測失準,這是由於已知的資料太少所造成的,資料太少容易造成線性迴歸的直線斜率變化太大,而造成預測數值急升或急降:
此處的結果再次呼應預測值僅能作為一種參考。
若單以分析結果來看,我們大致可以判斷可能未來能夠看到該建案每坪單價 40 ~ 48 萬之間的交易價格。
總結
影響房價有多種因素,本文僅是以房價作為示範以讓讀者能夠學會使用 Google Sheets 中的 FORECAST 函式,相同的技巧也可以運用在銷售額、產量等預測。
另外, FORECAST 函式僅能使用 1 種指標進行預測,如果有多種指標會影響結果的話,就不適合使用 FORECAST 函式。
References
FORECAST - Google Docs Editors Help