In this document we will explore the relationship between prices of properties and planning regions. Followed by exploration of the other two drivers of property prices: - (1) property types – apartment, condominiums, landed properties, and (2) tenure type – 99-year leasehold vs. freehold properties. Lastly, purchaser profiles will be examined to understand the market profile for properties of different tenure types.
Lets load the packages we need
packages = c('treemap', 'tidyverse','treemap','sf','tmap','readxl','knitr','ggplot2','scales')
for(p in packages){library
if(!require(p, character.only = T)){
install.packages(p)
}
library(p, character.only = T)
}
And extract the data we need
realis2018 <- read.csv("realis2018.csv")
head(realis2018)
## Project.Name Address No..of.Units
## 1 SIMS URBAN OASIS 10 Sims Drive #18-39 1
## 2 STARS OF KOVAN 984 Upper Serangoon Road #16-19 1
## 3 LAKE GRANDE 8 Jurong Lake Link #17-21 1
## 4 LAKE GRANDE 8 Jurong Lake Link #01-21 1
## 5 SYMPHONY SUITES 3 Yishun Close #04-07 1
## 6 ISLAND COUNTRY VILLAS 90 Old Upper Thomson Road 1
## Area..sqm. Type.of.Area Transacted.Price.... Unit.Price....psm.
## 1 105 Strata 1522200 14497
## 2 89 Strata 1527000 17157
## 3 80 Strata 1201000 15013
## 4 76 Strata 1130000 14868
## 5 83 Strata 942000 11349
## 6 224 Land 2080000 9286
## Unit.Price....psf. Sale.Date Property.Type Tenure
## 1 1347 1-Jan-18 Condominium 99 Yrs From 29/07/2014
## 2 1594 1-Jan-18 Apartment 99 Yrs From 25/02/2015
## 3 1395 1-Jan-18 Condominium 99 Yrs From 09/06/2015
## 4 1381 1-Jan-18 Condominium 99 Yrs From 09/06/2015
## 5 1054 1-Jan-18 Condominium 99 Yrs From 10/06/2014
## 6 863 2-Jan-18 Semi-Detached House 99 Yrs From 28/08/1995
## Type.of.Sale Purchaser.Address.Indicator Postal.District Postal.Sector
## 1 New Sale HDB 14 38
## 2 New Sale Private 19 53
## 3 New Sale HDB 22 64
## 4 New Sale N.A 22 64
## 5 New Sale N.A 27 76
## 6 Resale Private 20 57
## Postal.Code Planning.Region Planning.Area
## 1 387390 Central Region Geylang
## 2 533854 North East Region Hougang
## 3 648130 West Region Jurong West
## 4 648130 West Region Jurong West
## 5 768005 North Region Yishun
## 6 574060 North East Region Ang Mo Kio
Next, we rename the columns to something we can understand better
colnames <- c("Project.Name","Address","No.of.Units","Area.(sqm)","Type.Of.Area","Transacted.Price","Unit.Price.(psm)","Unit.Pricepsf","Sale.Date","Property.Type","Tenure","Type.Of.Sale","Purchaser.Address.Indicator","Postal.District","Postal.Sector","Postal.Code","Planning.Region","Planning.Area")
colnames(realis2018) <- colnames
head(realis2018)
## Project.Name Address No.of.Units Area.(sqm)
## 1 SIMS URBAN OASIS 10 Sims Drive #18-39 1 105
## 2 STARS OF KOVAN 984 Upper Serangoon Road #16-19 1 89
## 3 LAKE GRANDE 8 Jurong Lake Link #17-21 1 80
## 4 LAKE GRANDE 8 Jurong Lake Link #01-21 1 76
## 5 SYMPHONY SUITES 3 Yishun Close #04-07 1 83
## 6 ISLAND COUNTRY VILLAS 90 Old Upper Thomson Road 1 224
## Type.Of.Area Transacted.Price Unit.Price.(psm) Unit.Pricepsf Sale.Date
## 1 Strata 1522200 14497 1347 1-Jan-18
## 2 Strata 1527000 17157 1594 1-Jan-18
## 3 Strata 1201000 15013 1395 1-Jan-18
## 4 Strata 1130000 14868 1381 1-Jan-18
## 5 Strata 942000 11349 1054 1-Jan-18
## 6 Land 2080000 9286 863 2-Jan-18
## Property.Type Tenure Type.Of.Sale
## 1 Condominium 99 Yrs From 29/07/2014 New Sale
## 2 Apartment 99 Yrs From 25/02/2015 New Sale
## 3 Condominium 99 Yrs From 09/06/2015 New Sale
## 4 Condominium 99 Yrs From 09/06/2015 New Sale
## 5 Condominium 99 Yrs From 10/06/2014 New Sale
## 6 Semi-Detached House 99 Yrs From 28/08/1995 Resale
## Purchaser.Address.Indicator Postal.District Postal.Sector Postal.Code
## 1 HDB 14 38 387390
## 2 Private 19 53 533854
## 3 HDB 22 64 648130
## 4 N.A 22 64 648130
## 5 N.A 27 76 768005
## 6 Private 20 57 574060
## Planning.Region Planning.Area
## 1 Central Region Geylang
## 2 North East Region Hougang
## 3 West Region Jurong West
## 4 West Region Jurong West
## 5 North Region Yishun
## 6 North East Region Ang Mo Kio
In this section, we want to visualise property prices by Planning Region and Areas in Singapore, by Median Price per square foot. We will utilise a Treemap to aid our analysis.
treemapdata <- realis2018 %>%
group_by(`Planning.Area`,Planning.Region) %>%
summarize('Total.Transacted.Price' = sum(`Transacted.Price`, na.rm= TRUE),
`Total.Unit.Sold` = sum(`No.of.Units`, na.rm = TRUE),
`Median.PSF` = median(`Unit.Pricepsf`, na.rm = TRUE)
)
## `summarise()` has grouped output by 'Planning.Area'. You can override using the `.groups` argument.
treemapdata
## # A tibble: 40 x 5
## # Groups: Planning.Area [40]
## Planning.Area Planning.Region Total.Transacted.P~ Total.Unit.Sold Median.PSF
## <chr> <chr> <dbl> <int> <dbl>
## 1 Ang Mo Kio North East Regi~ 576521924 321 1011
## 2 Bedok East Region 3276941865 1859 1215
## 3 Bishan Central Region 1248466415 708 1619
## 4 Bukit Batok West Region 807164425 625 1062
## 5 Bukit Merah Central Region 1844146405 807 1774.
## 6 Bukit Panjang West Region 410592032 286 1077
## 7 Bukit Timah Central Region 5510806321 1593 1556
## 8 Changi East Region 12709666 5 976
## 9 Choa Chu Kang West Region 270549419 282 755
## 10 Clementi West Region 2469723595 1625 1338
## # ... with 30 more rows
treemap(treemapdata,
index = c("Planning.Region","Planning.Area"),
vSize = "Total.Unit.Sold",
vColor = "Median.PSF",
type = "value",
title = "No. of units transacted by Planning Region and Area",
title.legend = "Median price per square foot") + scale_fill_brewer(palette = "Dark2") + scale_x_continuous(expand = c(0, 0)) +
scale_y_continuous(expand = c(0, 0))
## NULL
Next, we plot a boxplot that describes the Unit Price ($psf) of the properties transacted vs tenure type, planning region, and property type. This chart will allow further understanding of the market for types of properties across the planning regions in Singapore, enabling comparisons between even the tenure types of the properties – which is one of the factors that could significantly affect property prices.
We first have to remove ENBLOCs as ENBLOC sales will inflate the number of units sold for that particular lease type.
Singapore has various lease types + 999 year leasehold + 99 year leasehold + freehold
We need to re-label lease types into just leasehold, or freehold
removeEnbloc <- filter (realis2018, str_detect(Address, "ENBLOC", negate = TRUE))
Tenure_Type <- ifelse(removeEnbloc$Tenure == "Freehold", "Freehold",
ifelse(substr(removeEnbloc$Tenure, 0, 3) == '999', 'Freehold', 'Leasehold'))
Now we plot the boxplot
Tenure_Box<-ggplot(removeEnbloc, aes(x=Planning.Region, y= Unit.Pricepsf,
weights(No.of.Units))) +
geom_boxplot(aes(color = Tenure_Type)) +
facet_wrap(~Property.Type) +
xlab("Tenure") +
ylab("Unit Price Per Square Foot")
Tenure_Box + theme(legend.position="bottom",
legend.title=element_text(face = "bold"),
axis.text=element_text(angle=90, size=9))
Next we plot a boxplot that describes the transactions for freehold vs leasehold properties, across planning regions in Singapore, broken down into Purchaser Address: - (1) N/A, (2) HDB, and (3) ‘Private’ – buyers who already have an existing private property. The intent of this analysis is to observe any difference in purchasing patterns between buyers who have an existing private property vs those who do not have one.
realis_Data2 <- realis2018[-grep("ENBLOC",realis2018$Address),]
TenureType <- ifelse(realis_Data2$Tenure == "Freehold", "Freehold",
ifelse(substr(realis2018$Tenure,0,3) == "999","Freehold","Leasehold"))
realis_Data2 <- cbind(realis_Data2, TenureType)
head(realis_Data2)
## Project.Name Address No.of.Units Area.(sqm)
## 1 SIMS URBAN OASIS 10 Sims Drive #18-39 1 105
## 2 STARS OF KOVAN 984 Upper Serangoon Road #16-19 1 89
## 3 LAKE GRANDE 8 Jurong Lake Link #17-21 1 80
## 4 LAKE GRANDE 8 Jurong Lake Link #01-21 1 76
## 5 SYMPHONY SUITES 3 Yishun Close #04-07 1 83
## 6 ISLAND COUNTRY VILLAS 90 Old Upper Thomson Road 1 224
## Type.Of.Area Transacted.Price Unit.Price.(psm) Unit.Pricepsf Sale.Date
## 1 Strata 1522200 14497 1347 1-Jan-18
## 2 Strata 1527000 17157 1594 1-Jan-18
## 3 Strata 1201000 15013 1395 1-Jan-18
## 4 Strata 1130000 14868 1381 1-Jan-18
## 5 Strata 942000 11349 1054 1-Jan-18
## 6 Land 2080000 9286 863 2-Jan-18
## Property.Type Tenure Type.Of.Sale
## 1 Condominium 99 Yrs From 29/07/2014 New Sale
## 2 Apartment 99 Yrs From 25/02/2015 New Sale
## 3 Condominium 99 Yrs From 09/06/2015 New Sale
## 4 Condominium 99 Yrs From 09/06/2015 New Sale
## 5 Condominium 99 Yrs From 10/06/2014 New Sale
## 6 Semi-Detached House 99 Yrs From 28/08/1995 Resale
## Purchaser.Address.Indicator Postal.District Postal.Sector Postal.Code
## 1 HDB 14 38 387390
## 2 Private 19 53 533854
## 3 HDB 22 64 648130
## 4 N.A 22 64 648130
## 5 N.A 27 76 768005
## 6 Private 20 57 574060
## Planning.Region Planning.Area TenureType
## 1 Central Region Geylang Leasehold
## 2 North East Region Hougang Leasehold
## 3 West Region Jurong West Leasehold
## 4 West Region Jurong West Leasehold
## 5 North Region Yishun Leasehold
## 6 North East Region Ang Mo Kio Leasehold
realis_Data2 %>%
ggplot(aes(Planning.Region, No.of.Units, fill= TenureType)) +
geom_col(position = 'stack') +
xlab("Planning Region") +
ylab("Total Number of Transactions") +
facet_grid(~Purchaser.Address.Indicator) +
labs(title = 'No. of Transactions by Planning Region and Purchaser Address')+
theme(legend.position = "bottom",
legend.title = element_text(face = "bold"),
axis.text.x = element_text(size = 8))
Based on the observations made with Chart 2, the median $psf of both leasehold and freehold in Central region (with exception of apartments) were higher than the other regions. This implies that demand for freehold properties far exceeded its supply in the Central region.
Additionally, freehold properties were observed to have a higher median $psf than leasehold properties, across all regions and property types.
In Chart 3, the observation is that more leasehold properties were purchased in the Central region vis-à-vis freehold units in the East, North-East, North, West regions combined. This is consistent across all purchaser profiles –New, HDB, and Private Homeowners. This suggests that, more leasehold properties were purchased due to its relative affordability.
However, regardless of tenure type, median $psf or property types, it is observed that Central region was still more popular, this indicates that property location takes precedence over its tenure type.
It is recognised that the geographical distribution of leasehold purchases differs amongst purchaser profiles. Leasehold properties in the North-East region were most popular amongst HDB Homeowners, whereas leasehold properties in the Central region were most popular amongst Private and New Homeowners.
This observation is consistent with the analysis from Chart 1, where the preference for housing in mature estates was observed. It can be said that families who purchased leasehold properties in mature estates want to closer to family for childcare support, better transport amenities as well as accessibility to schools. Another factor could also be due to the large variance between freehold vs leasehold, and the relative affordability of leasehold properties in the North-East and East regions.