2020年2月18日星期二

中原指數 VS 失業率


這幾年發生左3件大事件

1997 
亞洲金融風暴是1997年爆發的一場金融危機時期,從1997年7月開始席捲東亞和東南亞的大部分地區。該危機是東南亞吸引熱錢湧入後,因為實際生產力不如帳面,導致經濟出現泡沫,危機源於泰國放棄固定匯率制而爆發,隨後進一步波及至鄰近亞洲國家的貨幣、股票市場及其它資產,相關資產的價值也因此暴跌。


2003
2002年在中華人民共和國廣東省順德市首次爆發後,2003年2月21日,劉劍倫將病毒帶入香港,已染肺炎的劉劍倫並未有隔離就醫,他只是自行服用抗生素,更於2月21日攜同妻子到香港,入住京華酒店,因劉劍倫在港期間未有使用口罩等防禦措施,京華酒店的電梯等公眾地方受到嚴重污染,造成16位酒店住客和訪客受到感染。

2月24日,一名26歲香港居民到京華酒店後出現發燒症狀,在2月28日到威爾斯親王醫院急症室求診,被診斷為呼吸道感染後出院返家。3月4日返回急症室,並被安排入住8A病房。此病人實為SARS帶菌者,引致病房中多人被感染。其後院方重開了8A病房,不單令疫症在醫院中廣泛蔓延,而該名26歲的男病人出院後更把病毒傳入社區,尤其帶到了淘大花園,引致社區爆發。

疫情造成包括醫務人員在內的774個病人死亡。直至2003年7月16日,疫情逐漸因天氣原因逐漸被消滅,同年9月2日所有病人出院康復。


2008年
2008年後半年9月開始,香港經濟受美國雷曼兄弟破產引發的全球金融海嘯影響下,開始出現大幅下瀉,結束4年半以來的經濟增長,失業率由5月至7月的3.2%升至8月至10月的3.5%,再由3.5%急升至年尾的4.2%。而香港很多機構都抵受不住海嘯影響下紛紛倒閉,其中有近60年經營歷史泰林也宣告破產。香港經濟在下半年起大幅衰退。



中原指數 下跌得最多是 1997 年,下跌了53%,03年SARS 下跌了 8%,2008年下跌了 13%。

 


失業率(橙色)和中原指數(藍色)有相對的關聯性, 下圖顯示當失業率上升,中原指數明顯地下跌。



全球2003年SARS感染者為8437人,813人的全球死亡人數。而截至2020年2月16日早上,新冠肺炎的內地感染個案超過6.8萬宗,死亡人數累計增至超過1,500人,香港很多店鋪 提早關門甚至結業,失業率亦由2019年9月的3.1% 上升到2020年01月的3.4%。

2月份(截至2020年2月18日)結業、停業、減薪、裁員潮:
太興:管理層8折出糧,裁員減薪
翠華:部份結業,全線裁員及減薪
實惠:管理層6日無薪假,裁員10%,4分店停業
莎莎:20店結業,全線裁員及減薪
海皇粥店:全線裁員及減薪
郵輪:全線裁員及減薪
周大福:部份分店停業,全線裁員,無薪假及不派花紅
九巴:減班次(即減薪)
噴射飛航:減薪
龍皇:裁員
富臨:部份結業及裁員減薪
敍福樓/日式線:部份結業,部份停業及裁員
百樂門:部份停業及裁員
彩福:部份停業
譽宴:部份停業
大榮華:停業
明星:部份結業及裁員
雲來軒:停業
機場內名牌店及免稅店:部份停業,減薪及裁員
香港航空:減薪及裁員
國泰:減薪及裁員
美心/其他菜系:20間以上結業、減薪及裁員
新巴與城巴:減班及無補水


2017年8月17日星期四

人工智能 與 樓價預測(二)

將 ClassA 資料分為三類
ClassA_HK   =  Hong Kong
ClassA_KLN = Kowloon
ClassA_NT    = New Territories
#Data Preparation
ClassA_HK  =  data.where(data.Class == 'A').where(data.Place=='Hong Kong').dropna()[['Date','Value','Rent']]
ClassA_KLN =  data.where(data.Class == 'A').where(data.Place=='Kowloon').dropna()[['Date','Value','Rent']]
ClassA_NT  =  data.where(data.Class == 'A').where(data.Place=='New Territories').dropna()[['Date','Value','Rent']]



將香港/九龍/新界樓價 用圖表顯示, 可見到香港區波幅 會比 九龍/新界大, 九龍與新界樓價 於1999至2007 比較接近,2007之後九龍樓價開始拋離新界。
  %pylab inline
pylab.rcParams['figure.figsize'] = (20, 20)
plt.title('Domestic Price(Class A) from 1999 to 2017', size=26)
plt.xlabel('Year' , size=20)
plt.ylabel('Price', size=20)

plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%Y%m'))
plt.plot(ClassA_HK.Date,  ClassA_HK.Value,color="red", label='Hong Kong')
plt.plot(ClassA_KLN.Date, ClassA_KLN.Value,color="blue", label="Kowloon")
plt.plot(ClassA_NT.Date,  ClassA_NT.Value,color="black", label="New Territories")
plt.gcf().autofmt_xdate()
plt.legend(loc=0 , prop={'size': 20})
plt.rc('xtick',labelsize=20)
plt.rc('ytick',labelsize=20)
plt.show()





%pylab inline
pylab.rcParams['figure.figsize'] = (20, 20)
plt.title('Domestic Rent(Class A)',size=26)
plt.xlabel('Year',size=20)
plt.ylabel('Rent',size=20)

plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%Y%m'))
plt.plot(ClassA_HK.Date,  ClassA_HK.Rent,color="red", label='Hong Kong')
plt.plot(ClassA_KLN.Date, ClassA_KLN.Rent,color="blue", label="Kowloon")
plt.plot(ClassA_NT.Date,  ClassA_NT.Rent,color="black", label="New Territories")
plt.gcf().autofmt_xdate()
plt.legend(loc=0 , prop={'size': 20})
plt.rc('xtick',labelsize=20)
plt.rc('ytick',labelsize=20)
plt.show()


租金方面,香港區 明顯高於九龍/新界


# Normalized ClassA(HK) Price VS Rent
ClassA_HK['normalizePrice']=(ClassA_HK['Value'] / ClassA_HK['Value'].iloc[0])
ClassA_HK['normalizeRent']=(ClassA_HK['Rent'] / ClassA_HK['Rent'].iloc[0])

%pylab inline
pylab.rcParams['figure.figsize'] = (20, 20)
plt.title('Normalized Price and Rent',size=26)
plt.xlabel('Year',size=20)
plt.ylabel('Price and Rent',size=20)

plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%Y%m'))
plt.plot(ClassA_HK.Date,  ClassA_HK['normalizePrice'],color="red", label='Price')
plt.plot(ClassA_HK.Date,  ClassA_HK['normalizeRent'],color="blue", label='Rent')
plt.gcf().autofmt_xdate()
plt.legend(loc=0 , prop={'size': 20})
plt.rc('xtick',labelsize=20)
plt.rc('ytick',labelsize=20)
plt.show()



為左更好表示樓價與租金升幅比例,將Price 和 Rent Normalized  ,租金升幅遠不及樓價升幅




# ClassA(HK) Rent Return
ClassA_HK['rentReturn'] = ClassA_HK['Rent']*12 / ClassA_HK['Value']
#print(ClassA_HK)
%pylab inline
pylab.rcParams['figure.figsize'] = (20, 20)
plt.title('Rent Return',size=26)
plt.xlabel('Year',size=20)
plt.ylabel('Rent Return',size=20)

plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%Y%m'))
plt.plot(ClassA_HK.Date,  ClassA_HK['rentReturn'],color="black", label='Return')
plt.gcf().autofmt_xdate()
plt.legend(loc=0 , prop={'size': 20})
plt.rc('xtick',labelsize=20)
plt.rc('ytick',labelsize=20)
plt.show()


Class A HONG KONG 租金回報.. 最高係2003 年,超過8厘


# Normalized ClassA(KLN) Price VS Rent
ClassA_KLN['normalizePrice']=(ClassA_KLN['Value'] / ClassA_KLN['Value'].iloc[0])
ClassA_KLN['normalizeRent']=(ClassA_KLN['Rent'] / ClassA_KLN['Rent'].iloc[0])

%pylab inline
pylab.rcParams['figure.figsize'] = (20, 20)
plt.title('Class A Kowloon Normalized Price and Rent',size=26)
plt.xlabel('Year',size=20)
plt.ylabel('Price and Rent',size=20)

plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%Y%m'))
plt.plot(ClassA_KLN.Date,  ClassA_KLN['normalizePrice'],color="red", label='Price')
plt.plot(ClassA_KLN.Date,  ClassA_KLN['normalizeRent'],color="blue", label='Rent')
plt.gcf().autofmt_xdate()
plt.legend(loc=0 , prop={'size': 20})
plt.rc('xtick',labelsize=20)
plt.rc('ytick',labelsize=20)
plt.show()


九龍區 Normalized Price and Rent  .. 樓價自1999年升幅3.5.. 租金升幅約 2 左右.






# ClassA(KLN) Rent Return
ClassA_KLN['rentReturn'] = ClassA_KLN['Rent']*12 / ClassA_KLN['Value']
#print(ClassA_KLN)
%pylab inline
pylab.rcParams['figure.figsize'] = (20, 20)
plt.title('ClassA Kowloon Rent Return',size=26)
plt.xlabel('Year',size=20)
plt.ylabel('Rent Return',size=20)

plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%Y%m'))
plt.plot(ClassA_KLN.Date,  ClassA_KLN['rentReturn'],color="black", label='Return')
plt.gcf().autofmt_xdate()
plt.legend(loc=0 , prop={'size': 20})
plt.rc('xtick',labelsize=20)
plt.rc('ytick',labelsize=20)
plt.show()


九龍區租金收入最高 2007年   7厘多少少





# Normalized ClassA(NT) Price VS Rent
ClassA_NT['normalizePrice']=(ClassA_NT['Value'] / ClassA_NT['Value'].iloc[0])
ClassA_NT['normalizeRent']=(ClassA_NT['Rent'] / ClassA_NT['Rent'].iloc[0])

%pylab inline
pylab.rcParams['figure.figsize'] = (20, 20)
plt.title('Class A New Territories Normalized Price and Rent',size=26)
plt.xlabel('Year',size=20)
plt.ylabel('Price and Rent',size=20)

plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%Y%m'))
plt.plot(ClassA_NT.Date,  ClassA_NT['normalizePrice'],color="red", label='Price')
plt.plot(ClassA_NT.Date,  ClassA_NT['normalizeRent'],color="blue", label='Rent')
plt.gcf().autofmt_xdate()
plt.legend(loc=0 , prop={'size': 20})
plt.rc('xtick',labelsize=20)
plt.rc('ytick',labelsize=20)
plt.show()


新界區 Normalized Price and Rent