
Vi tittar på avvikelse från Boolis värdering för att försöka förstå vilken påverkan tillgång till balkong och solläge har på priset på en lägenhet. Vi begränsar oss till Stockholms kommun och dataunderlaget är försäljningar under ett helår mellan 2018-06-01 och 2019-06-01.
Definitioner
Vi vill undersöka hur stora värderingsfel vi har givet att lägenheten i fråga har någon av nedanstående typer av balkonger.
- Saknar balkong: lägenheten har ingen möjlighet till utomhusvistelse
- Traditionell balkong: en vanlig balkonglåda
- Terrass: en ovanligt stor balkong
- Kungsbalkong: en balkong på översta våningen som sträcker sig över flera rum
Utöver det kommer vi också titta på hur söderläge påverkar felet i värderingen.
Läs in förberedd data
import pandas as pd
df = pd.read_csv('data/sthlm_apt_balcony.csv', index_col=0)
df = df[['lat', 'lng', 'soldDate', 'soldPrice', 'estimatedPrice',
'listPrice', 'error', 'error_percent', 'abs_error',
'abs_error_percent', 'objectType', 'description',
'class', 'balkong', 'kungsbalkong', 'terrass']]
display(df.head())
display(df.shape)
Vi har ca 18 500 observationer av lägenhetsförsäljningar i Stockholms kommun under ett helår. För varje observation har vi information om koordinat, slutpris, värdering, felet i värderingen samt indikationer på om det finns balkong eller ej.
Vi har låtit en klassificerare avgöra om lägenheten har balkong baserat på innehållet i lägenhetsbeskrivningen. Utlåtandet från klassificeraren sparas i kolumnen class
där värdet 1
innebär att det troligtvis finns en balkong eller annan möjlighet till utevistelse, och 0
innebär att det inte gör det.
För varje observation har vi också gjort en nyckelordssökning i ett försök att bedöma vilken typ av balkong det handlar om. Vi har sökt efter ”balkong”, ”kungsbalkong” och ”terrass”. Om vi har hittat att ordet förekommer i beskrivningen så har vi satt en 1:a i den kolumnen. Det finns exempel på när vi har klassificerat en bostad som att den saknar balkong, men då vi ändå hittar ordet balkong i texten. Se t.ex. rad 2 (index 1) i tabellen ovan. Beskrivningen för den bostaden finns nedan.
print(df.iloc[1]['description'])
Stilren lägenhet i förening med låg avgift
Välkommen till en mycket ljus och trivsam lägenhet där alla kvadratmeter optimalt utnyttjas. Lägenheten har genomgående smakfulla material- och färgval och den öppna planlösningen mellan vardagsrum och kök ger härliga sällskapsytor. Den franska balkongen bjuder på många tillfällen att öppna upp varma sommardagar. Här erbjuds även sängplats mot vardagsrum, ett sovrum, rymligt badrum med tvättpelare samt hall med goda avhängningsytor. Bra läge i Sjöstaden med närhet till kommunikationer, fantastiska promenadstråk, vatten, service, mataffärer, restauranger och skola/förskolor. Stabil förening med låg avgift!
Välkommen på visning!
img
Visa mer info om bostaden
img
I annonsen skriver man om den ”franska balkongen” vilket är orsaken till att nyckelordssökningen ger träff men vår balkongklassificerare svarar negativt. Det finns fler exempel på när klassificeraren kan ge negativt svar och ett eller flera av nyckelorden ändå förekommer i texten. T.ex. kan mäklaren skriva om ”bygglov för balkong”, ”gemensam balkong”, ”vädringsbalkong”, ”piskaltan” eller liknande.
Balkongklassificeraren har tränats på manuellt uppmärkt data och i korsvalidering visats ha en träffsäkerhet på ca 95 % korrekt klassificerade texter.
Nyckelordssökning för sollägen
import re
df['south_facing'] = df['description'].str.findall(
r'söderläge', flags=re.IGNORECASE).apply(len) > 0
Vi försöker avgöra om en lägenhet har balkong i söderläge genom att söka efter om ordet ”söderläge” förekommer i beskrivningen. Detta är en ganska grov sökning som bygger på att mäklarna använder just det ordet och vi kommer troligtvis ha en stor del missar. Att utöka med fler ord i sökningen som t.ex. ”söder” skulle dock innebära problem med att vi matchar mot t.ex. ”Södermalm” och därmed får en större mängd false positives. Den här klassificeringen skulle man kunna göra mycket mer avancerad, men vi vill vi hålla det enkelt och nöjer oss så, med vetskap om att vi kommer ha många false negatives.
Filtrera outliers och titta på datan
# Filter outliers based on sale price
quantiles = df['soldPrice'].quantile([0.01, 0.99])
df = df[(df['soldPrice'] >= quantiles[0.01]) &
(df['soldPrice'] <= quantiles[0.99])]
quantiles = df['error_percent'].quantile([0.01, 0.99])
df = df[(df['error_percent'] >= quantiles[0.01]) &
(df['error_percent'] <= quantiles[0.99])]
df['error_percent'].hist(bins=20)
display("Median absolute error: {} %".format(
df['abs_error_percent'].median() * 100))
display(df['error_percent'].describe())
Vi kan se att efter outlierfiltrering har våra värderingar ett medianfel på ca 5,2 % och en standardavvikelse på ca 8 %. Felen är någorlunda normalfördelade och det kan då antas att ca 68 % av värderingarna ligger inom en standardavvikelse från köpeskillingen.
Undersök korrelation med värderingsfel
import numpy as np
df['balcony_class'] = None
df.loc[df['class'] == 0,
'balcony_class'] = 'Ingen balkong'
df.loc[(df['class'] == 1) &
(df['kungsbalkong'] == 0) &
(df['terrass'] == 0),
'balcony_class'] = 'Traditionell balkong'
df.loc[(df['class'] == 1) &
(df['kungsbalkong'] == 1),
'balcony_class'] = 'Kungsbalkong'
df.loc[(df['class'] == 1) &
(df['terrass'] == 1),
'balcony_class'] = 'Terrass'
classified = df[df['balcony_class'] != None]
display(classified.groupby('balcony_class').agg(
Antal=('error', len),
Medianfel_SEK=('error', np.median),
Medelfel_SEK=('error', np.mean),
Medianfel_procent=('error_percent', np.median),
Medelfel_procent=('error_percent', np.mean)
))
display(df.groupby('south_facing').agg(
Antal=('error', len),
Medianfel_SEK=('error', np.median),
Medelfel_SEK=('error', np.mean),
Medianfel_procent=('error_percent', np.median),
Medelfel_procent=('error_percent', np.mean)
))
Värderingarna som analysen bygger på är gjorda utan att ta hänsyn till information om balkong. Vi har delat upp analysen i 4 klasser relaterat till balkong, och sedan gjort en kontroll av söderläge vs. icke söderläge.
Resultat
Vi kan se att vi övervärderar lägenheter som saknar balkong med ca 45 000 SEK i median. Lägenheter som har en traditionell balkong är däremot undervärderade med ca 20 000 SEK i median. Skillnaden i värderingsfelet mellan lägenheter med och utan balkong är ca 60 000 SEK. Sett till medelfelet är skillnaden större, ca 90 000 SEK. Utrycker man istället felet i procentenheter är skillnaden ca 1,9 % både i median och medel.
Vi kan också se att lyxigare möjlighet till utevistelse än en traditionell balkong är ännu mer undervärderade i vår värderingsmotor. För lägenheter med terrass undervärderar vi med 125 000 SEK i medel och lägenheter med kungsbalkong 300 000 SEK. Uttryckt i procentenheter blir undervärderingen ca 1% för terrass och ca 5 % för kungsbalkong, både sett till median och medel.
Lägenheter utan söderläge är i princip helt korrekt värderade, med ett medelfel nära 0 SEK. Lägenheter med söderläge är undervärderade med ca 30 000 SEK i median och 40 000 SEK i medel. Sett till procentuell avvikelse mellan de två grupperna är skillnaden ca 1 % både i median och medel.
Vi tar en till titt på hur felstatistiken ser ut för lägenheter med balkong i söderläge.
display(df[(df['south_facing'] == True) & (
df['balcony_class'] == 'Traditionell balkong'
)].groupby('balcony_class').agg(
Antal=('error', len),
Medianfel_SEK=('error', np.median),
Medelfel_SEK=('error', np.mean),
Medianfel_procent=('error_percent', np.median),
Medelfel_procent=('error_percent', np.mean)
))
Vi kan se att skillnaden mot lägenheter utan balkong är ca 72 000 SEK i median och 96 000 SEK i medel. I procentenheter är skillnaden 2,1-2,2 % både i medel och median.
Kommentar
Det finns en del osäkerheter i den här analysen, klassificeraren som avgör om en lägenhet har möjlighet till utevistelse är bra men inte perfekt, och nyckelordssökning har uppenbara svagheter. Det som talar för att vi ändå kan lita på resultaten är att balkongklassificeraren är tillräckligt träffsäker och att volymerna i underlaget är stora. Nyckelordssökningen är bristfällig i det att den har en stor mängd false negatives, men rimligtvis borde andelen false positives vara liten givet de restriktiva sökningarna och därmed blir resultaten ovan ändå pålitliga.
Gruppen bostäder som har kungsbalkong är ganska liten, bara 112 stycken. Kungsbalkong kommer också per definition vara korrelerat med att lägenheten ligger på översta våningen och har utsikt i flera väderstreck, vilken gör att det finns fler faktorer än bara balkongen som kan göra att vår värdering slår fel. Det gör att resultaten för kungsbalkong kan ifrågasättas. Hade vi haft en kontrollgrupp att jämföra mot som bestod av lyxiga bostäder på översta våningen som saknar kungsbalkong hade resultaten blivit mer pålitliga, men det har vi tyvärr inte.
Det man kan ta med sig från den här analysen och säga med någorlunda säkerhet är att en värdering som görs utan hänsyn till balkong övervärderar de lägenheter som saknar balkong och undervärderar lägenheter som har balkong. Det kan tolkas som att det finns ett värde kopplat till balkongen. Median och medelfelen i värderingarna ligger ganska långt ifrån varandra, medan de procentuella felen ligger nära varandra. Det kan tolkas som att värdet på en balkong sätts relativt priset på bostaden, och inte kronor och ören.
Slutsats
En lägenhet med balkong kommer ofta säljas för 60 – 90 000 SEK mer än en lägenhet utan balkong. Om balkongen också är i söderläge ligger spannet mellan 70 och 100 000 SEK. Uttryckt i procentenheter är värdet av en balkong ca 1,9 % av slutpriset. Ligger balkongen också i söderläge är skillnaden istället ca 2,1 %.
Hur fungerar våra värderingar?
Våra värderingar är statistiska och bygger på andra sålda bostäder i ditt område. Ju mer information du fyller i om din bostad desto bättre liknande referensobjekt kan vi hitta. Ibland kan det dock innebära att de referensobjekten har haft lägre försäljningspriser och därmed sjunker värderingen. Vi går framförallt på information om placering, boarea+biarea, avgift/driftkostnad, samt eventuell tomtarea eller våningsplan. Att ha nyrenoverade kök och badrum lyfter såklart värdet på bostaden men då vi inte vet skicket på dina grannars objekt så antar vi att det är normalskick.
Allteftersom det säljs nya bostäder som liknar din bostad så uppdateras värderingen. Den kan bli både högre och lägre beroende på vad som säljs.
Vi visar värderingarna för att hjälpa både dig som ägare och andra som letar bostad att förstå prisbilden i området. De statistiska värderingarna är gjorda på information från lägenhetsregistret samt slutpriser i området och visas för de flesta lägenheter och alla småhus.
Så värderar du din bostad på Booli.se
Nu kan du värdera din lägenhet eller ditt hus direkt på Booli.se! I de allra flesta fall finns redan en värdering för din bostad. Du når den genom att gå till Booli.se och leta upp din adress på kartan.
Gå till Booli.se, sök på ett område, växla över till kartan och klicka på den gråa pricken som tillhör bostaden du är intresserad av. Visa alla bostäder på adressen. Finns det inte en prick, klicka i så fall på “lägg till en bostad” längst ner till höger.
Du kan nu se en värdering för din villa eller lägenhet på adressen du klickat på. Om just ditt hus eller din lägenhet saknas kan du lägga till den.
Kanske vet du något som vi inte vet? Till exempel om det finns balkong, när taket renoverades, låg avgift eller om du har en fantastiskt sjöutsikt! I så fall kan du klicka på din bostad för att förbättra värderingen. Du kommer då till ett formulär där du får fylla i mer information om din bostad så att vi kan göra en ännu bättre värdering.
När du har fyllt i formuläret får du en sammanställning på andra bostäder som nyligen sålts i området och som värderingen baseras på.
Om du inte hittar din bostad direkt på kartan kan du gå direkt till värderingsformuläret.
Vi vill jättegärna veta vad du tycker om värderingstjänsten. Lämna gärna en kommentar här på bloggen eller skicka ett mejl till info@booli.se.
Nu hittar du bostäder som inte är till salu på Booli.se
För några dagar sedan uppdaterade vi Booli.se med ett gäng nya funktioner. Den största förändringen är att du nu kan se alla bostäder i kartan, även de som inte är till salu!
Dessutom har vi statistiskt värderat bostäderna, något som kanske kan vara intressant för dig som vill veta värdet på din egen bostad eller… någon annans?
Gå till Booli.se, sök på ett område, växla över till kartan och klicka på den gråa pricken som tillhör bostaden du är intresserad av. Finns det inte en prick där, klicka i så fall på “lägg till en bostad” längst ner till höger.
Gå in och testa och hör gärna av dig med feedback!
Så använder du Booli Budestimat och Booli Värderobot
Det finns frågor de flesta av oss funderar över när vi tittar på en bostad vi är intresserade av: Hur mycket är den värd? Vad tror jag den kommer att säljas för? Och hur mycket kan jag tänka mig att betala för den?
Vi springer själva på de här frågorna hela tiden. Bland oss på Booli.se är det alltid nån som ska köpa, sälja eller som drömmer intensivt om en bostad. För att ta reda på en bostads kommande försäljningspris har vi därför skapat två beräkningar: Booli Värderobot och Booli Budestimat.
Booli Värderobot
Booli Värderobot känner kanske fler av er till sedan tidigare då vi visat denna sedan 2011. Värderoboten visar en indikation på vad bostaden kan komma att säljas för. Den baseras på försäljningar i området samt på uppgifter om bostaden såsom adress, storlek, tomt, våningsplan och avgift. Läs ännu mer om hur det fungerar här.
Booli Budestimat
Booli Budestimat fokuserar endast på skillnaden mellan utropspris och slutpris på tidigare sålda bostäder i närområdet. Budestimatet gör skillnad på bostadstyp (lägenhet/villa) samt storlek för lägenheter (små/mellan/stora) och tar inte hänsyn till exakt adress, avgift, våningsplan och liknande.
Om små lägenheter i ett visst området i snitt säljs 15% över utropspriset så räknar vi fram ett Budestimat som är 15% högre än utropspriset mäklaren har angett för en liten lägenhet i det området. Läs mer om hur det fungerar här.
Booli Budestimat tittar endast på hur tidigare budgivningar har utvecklats. Så om en mäklare sätter ett extremt lockpris jämfört med andra mäklare i området så kommer Budestimatet att bli lågt. Värderoboten däremot baseras på tidigare försäljningar och kommer då att visa en högre siffra. Om priserna snabbt ökar i ett område så kommer Budestimatet snabbt att anpassa sig medan Värderoboten kan släpa efter en tid innan de nya högre försäljningspriserna registrerats.
Använd därför gärna både Budestimat och Värderobot. Visas två siffror som ligger långt ifrån varandra ligger ofta sanningen någonstans däremellan. Visar de liknande siffror bör du få en bra uppfattning om vad slutpriser kommer att bli!