Tämänkertaisessa blogissa poraudutaan malliin päätyvien muuttujien valintaan. Jos ei ole perehtynyt koneoppimiseen käytännössä, aihe voi kuulostaa suoraviivaiselta, mutta oikeasti kyse on osa-alueesta, johon on kulunut ylivoimaisesti eniten aikaa toisen sukupolven mallia luotaessa. Hypätään kuitenkin ensin itse tuloksiin ja katsotaan, mitkä asunnon piirteet vaikuttavat myyntihintaan nostavasti ja mitkä laskevasti.
Millä tekijöillä on merkitystä asuntojen hintojen kannalta?
Taulukossa 1 on esitetty asunnon piirteet, jotka vaikuttavat toteutuneeseen neliöhintaan asuntoa myytäessä. Vertailuksi on esitetty vaikutus ensimmäisen ja toisen sukupolven mallissa. Plus-merkki kuvaa toteutunutta neliöhintaa nostavaa vaikutusta (esimerkiksi asunnon kunnon myyntihintaa nostavasta merkityksestä kirjoitettiin blogisarjan avausosassa), miinus-merkki kuvaa laskevaa vaikutusta (esimerkiksi isommat asuinneliöt laskevat keskihintaa, kts. blogi keskihinnoista). Nolla kuvaa, että kyseisen sukupolven mallissa kyseisellä tekijällä ei havaittu olevan merkitsevää vaikutusta toteutuneeseen myyntihintaan.
Asunnon piirteet | Ensimmäisen sukupolven malli (versio 37) | Toisen sukupolven malli (versio 1) |
avokeittiö | + | + |
energialuokka | + | +/- |
energiatodistuksen ikä | – | – |
hissi | + | + |
huoneluku | + | kaksio ja kolmio – neljä huonetta tai enemmän + |
keittokomero | – | 0 |
kerros | + | alin kerros, 2-3. kerros – 5. kerros ja korkeampi + |
kunto | + | + |
lasitettu parveke | 0 | – |
neliöt (koko/pinta-ala) | -[i] | – |
omakotitalo | + | + |
parveke | 0 | – |
parvi | muuttuja ei tarjolla | + |
pesuhuone | – | 0 |
rakennettu ennen tai jälkeen 70-luvun | + | + |
rivitalo | + | + |
sauna | + | + |
takkahuone | 0 | + |
talon kerroslukumäärä | + | 0 |
työhuone | 0 | + |
uudiskohde | + | + |
vuokratontti | tietoa ei saatavilla | – |
Taulukko 1. Asuntojen toteutuneita myyntihintoja selittävät asunnon ominaispiirteet ja niiden vaikutuksen suunta – hintoja nostava (+) tai hintoja laskeva (-) kun muut tekijät pidetään vakiona.
Suurin osa piirteistä ja niiden vaikutusten suunta vaikuttaa järkeenkäyvältä. Parvekkeiden osalta vaaditaan todennäköisesti tarkemman tason mallinnusta, jotta kyetään erottelemaan pienten modernien asuntojen viherhuoneiden hyödyllistä pinta-alaa kasvattava vaikutus vanhojen asuntojen lasittamattomien parvekkeiden mahdollisesti hintaa (korjauskustannusten vuoksi) laskevasta vaikutuksesta. Tämä tulee helpommaksi muuttujavalinnan tehostuessa, kun tulee mahdolliseksi kokeilla myös muuttujien yhteisvaikutuksen merkitystä (mikä on esim. parvekkeen arvo yksiössä, entä isossa asunnossa?). Myös energialuokan osalta tarkempi tarkastelu on tarpeen, onhan se kiinnostava myös ilmastonmuutoksen hidastamisen kannalta – energiaremontilla voidaan vaikuttaa asunnon ylläpitokustannuksiin, mutta olisi erityisen mielenkiintoista pystyä myös arvioimaan sen vaikutusta asunnon myyntihintaan. Näkyvätkö vihreät arvot vielä asuntojen hinnoissa?
Asuinalueen ja asuinkunnan piirteillä on myös iso merkitys asunnon toteutuneeseen myyntihintaan, mutta palataan näihin tarkemmin toisella kerralla. Loppuosa blogista keskittyy nimittäin kuvaamaan menetelmää, jolla tulokset on saatu. Jos koneoppiminen kiinnostaa, olet tervetullut jatkamaan lukemista eteenpäin. Jos ei, sinua on varoitettu…
Uudistettu muuttujakandidaattien valinta
Kuten aiemmassa blogissa kerrottiin, malli haluttiin uudistaa huomioimaan uusin data talven aikana tehdyistä asuntokaupoista ja tuoreimmat asuinaluita kuvaavat tilastot. Lisäksi haluttiin ymmärtää, kuinka paljon tulokset muuttuvat eli missä määrin ensimmäisen sukupolven malli kykeni selittämään itse ilmiötä ja missä määrin se päätyi selittämään vain kyseistä dataa.
Uusinta dataa tarkasteltiin blogisarjan edellisessä osassa, joten keskitytään tällä kertaa tuoreimpiin asuinalueita kuvaaviin tilastoihin. Tilastokeskuksen Paavo-tietokanta kehittyi talven aikana. Postinumerotason ja kuntatason luvut saatiin nyt suoraan tietokannasta, kun ensimmäisessä sukupolvessa kuntatason luvut johdettiin postinumerotason luvuista Excelissä. Edelleen kokonaislukujen (esim. naisten määrä alueella) sijaan selittäviksi muuttujiksi haluttiin suhdelukuja (esim. naisten osuus alueen asukkaista), mikä edellytti datan jalostamista edelleen.
Ensimmäisessä sukupolvessa Paavo-aineiston tarjoamia mahdollisia selittäviä muuttujia karsittiin pitkälti intuition pohjalta ja yrityksen ja erehdyksen menetelmällä. Vaikka tässä ei sinänsä ole mitään väärää, toisen sukupolven mallissa hurja hinnoittelija halusi tehdä muuttujavalinnasta enemmän algoritmimaisen eli selkeisiin päättelysääntöihin perustuvan. Tavoitteeseen ei täysin päästy, sillä ihmisen rooli muuttujavalinnan ensimmäisessä vaiheessa on edelleen merkittävä, mutta lukuisten yritysten jälkeen löytyi lopulta menetelmä, joka kykeni esikarsitusta muuttujajoukosta karsimaan lopulliseen malliin rajatun joukon keskeisimpiä muuttujia. Tästä lisää hieman myöhemmin tässä blogissa.
Ohjelmointimielessä otettiin samalla iso harppaus eteenpäin, sillä 2. sukupolven koodi mahdollistaa muuttujien mukaan ottamisen ja poistamisen yhtä taulukkoa muuttamalla. Tämä on merkittävä joustavuuden lisäys siihen nähden, että 1. sukupolven koodissa poisto piti tehdä Excelissä sarakkeita poistamalla tai koskemalla Python-koodiin. Kuvastaa myös sitä, että jatkuva koodin parantaminen on tärkeä osa tekoälyn kehitystä ja vaikka se ei välttämättä vaadi paljon aikaa, aihe vaatii myös jonkin verran huomioita.
Vaihe 1: Ihmisen tekemä alustava muuttujavalinta
Ensimmäinen karsintakierros poisti 296 muuttujakandidaattia, jotka olivat joko suoraan toisten muuttujien summia, riippuivat postinumeroalueen koosta tai jotka olivat yksinkertaisesti liian tarkalla tasolla voidakseen toimia ilmiöitä selittävinä tekijöinä. Tämä viimeinen (liiallinen tarkkuus) oli käytännössä kaksi asiaa – ensinnäkin työpaikkojen jakauma toimialoittain postinumeroalueella. Lähialueen työpaikat ovat tarjolla malliin työpaikkaa per asukas postinumerotasolla –muuttujan avulla, mutta tarkempi työpaikkojen jakauma toimialoittain on todennäköisesti merkittävä ainoastaan kuntatasolla tai jopa seutukuntatasolla, ei postinumeroaluetasolla. Ja toiseksikin iän mukaisten muuttujien karsinta. Paavo-aineisto antaa postinumeron ja kunnan asukasluvun jaettuna 2-5 vuoden ikäryhmiin – tyyliin 30-34-vuotiaiden määrä alueella vs. 35-39 –vuotiaiden määrä alueella. Asuntojen hintoja selitettäessä on kuitenkin erittäin vaikea nähdä tarvetta kyseiselle tarkkuudelle, koska aineistossa on myös talouksien elämänvaihetta kuvaavia muuttujia. Tämän vuoksi hurja hinnoittelija katsoi järkevämmäksi jättää hienojakoisimmat ikään perustuvat muuttujat pois ja säilyttää elämänvaiheeseen liittyvät muuttujat ehdokkaina.
Karsinnassa poistettiin myös kaikki muuttujat, jotka riippuivat suoraan postinumeroalueen koosta. Periaatteessa nämä todennäköisesti jäisivät pois seuraavan vaiheen korrelaatiotarkastelussa, mutta kun muuttujavalinta joka tapauksessa vaati ihmisen harkintaa, oli turha edes tarjota mallille muuttujia, jotka eivät vaikuttaneet mitenkään todennäköisiltä ilmiön kuvaamisen kannalta.
Vaihe 2: Ihmisavusteinen korrelaatiotarkastelu
Toisessa vaiheessa karsinta toteutettiin algoritmilla, joka laski jäljellä olevien muuttujakandidaattien keskinäiset korrelaatiot. Ongelmallisiksi tunnistettiin vahvat positiiviset tai negatiiviset korrelaatiot (korrelaatiokertoimen itseisarvo yli 0,9)[ii]. Algoritmi ehdotti ensiksi poistettavaksi muuttujia, jotka korreloivat useimmiten muiden muuttujien kanssa. Teoriassa on mahdollista, että poistettavaksi päätyy tällä tavoin muuttuja, joka saisi jäädä malliin, jos tämän päättelysäännön sijaan ensiksi poistettaisiin kaksi muuta keskenään ja tarkasteltavan muuttujan kanssa vahvasti korreloivaa muuttujaa, mutta ongelma ei vaikuta merkittävältä, etenkin kun joka tapauksessa joudutaan viimeisiä valintoja tekemään harkinnanvaraisesti. No, jääpähän jotain parannettavaa kolmannen sukupolven malliinkin…
Ensimmäisenä algoritmi tunnisti 6 muuttujaa, jotka korreloivat kukin vahvasti neljän muun muuttujan kanssa. Näistä poistettiin ensimmäisenä aikuisväestön osuutta kuvaava 18 vuotta täyttäneet yhteensä 2018 osuus kunta- ja postinumerotasolla, koska tämä on toisaalta tietyllä tavalla perusluokka (väestö joka ei kuulu mihinkään erityisryhmään) ja tämän yhden muuttujan eliminoinnilla saatiin vähennettyä useampi ongelmallinen korrelaatio. Vastaavasti 0-14 –vuotiaiden lasten osuus 2017 (PT) kuntatasolla ja postinumerotasolla tulee malliin tarkemmallakin tasolla olevien muuttujien kautta.
Seuraavaksi eniten olisi korreloinut vuokra-asunnoissa asuvat taloudet, 2018 (TE) osuus kuntataso, mutta tämä haluttiin toistaiseksi pitää mallissa. Sen sijaan poistettiin tämän kanssa korreloinut asuinrakennusta per asunto 2018 (RA) kuntataso –muuttuja, joka korreloi myös muutaman muun helpommin tulkittavan muuttujan kanssa. Vastaavasti poistettiin sama muuttuja postinumerotasolta seuraavassa vaiheessa.
Seuraavassa vaiheessa päädyttiin poistamaan pientaloasuntojen osuuden ja vuokra-asunnossa asuvien osuuden kanssa korreloiva asuntojen keskipinta-ala kunnassa ja postinumerotasolla vähemmän kuvaavana muuttujana. Lisäksi, kuten aiemmin blogissa on todettu, eläkeläistalouksien osuus on todennäköisesti eläkeläisten osuutta kuvaavampi muuttuja sekä kunta- että postinumerotasolla. Vastaavasti myös asukkaiden keski-ikä jätettiin pois niin postinumero- kuin kuntatasolla.
Vaikeita valintoja
Loput päätökset eivät olleet enää helppoja. Taulukossa 2 on kuvattu korrelaatiotarkastelun viimeisessä vaiheessa tehdyt valinnat perusteluineen.
Valittu muuttujakandidaatti | Hylätty muuttujakandidaatti | Valinnan syy |
Talouksien määrän muutos 2018 vs 2017 (TR vs. TE) (kunta- ja postinumerotaso) | Asukasluvun muutos 2018 vs 2017 (HE vs. PT) välillä (kunta- ja postinumerotaso) | Talouksien määrän muutos kuvaa todennäköisesti paremmin rakentamista ja/tai asuntoihin kohdistuvaa kysyntää kuin asukasluvun muutos. |
Postinumero | Y-koordinaatti metreinä | Ohjelmoinnin helppous. Postinumero toimii avaimena eri lähteiden dataa yhdistettäessä. Periaatteessa molemmat kuvaavat hintatason eroa Etelä- ja Pohjois-Suomen välillä. |
Pienten lasten taloudet (kunta- ja postinumerotaso) | Alle kouluikäisten lasten taloudet (kunta- ja postinumerotaso) | Pienet (0-3 -vuotiaat) lapset saattavat erota hieman vanhemmista (alle 7-vuotiaista) siten, että heillä on harvemmin tarvetta omalle tilalle tai erityisvaatimuksia alueelle (päivähoidon saatavuutta tms.). Pienten lasten talouksien osuudella voisi siis olettaa olevan negatiivinen vaikutus neliöhintaan. |
Teini-ikäisten lasten taloudet, 2018 (TE) osuus (kunta- ja postinumerotaso) | Kouluikäisten lasten taloudet, 2018 (TE) osuus (kunta- ja postinumerotaso) | Teoriassa makuasia käyttääkö mallissa 7-12 vai 13-18 vuotiaiden osuutta, mutta teini-ikäisten vanhemmilla saattaa olla kovempi maksuvalmius huoneesta jonne teinin voi eristää? Ja kenties myös äänieristykseen on tarvetta panostaa asunnon arvoa nostavassa määrin…? |
Neliöiden luonnollinen logaritmi | Neliöt | Asuntojen neliöhinnat riiippuvat asuntojen koosta selkeästi epälineaarisesti, logaritmi kuvaa paremmin riippuvuutta. |
Ylemmän korkeakoulututkinnon suorittaneiden osuus kunnassa | Ammatillisen tutkinnon suorittaneiden osuus kunnassa | Muiden näiden kanssa korreloivien muuttujien tarkastelu – ammatillisen tutkinnon suorittaneiden osuus kunnassa korreloi vahvasti tuloveroprosentin kanssa, ilmeisesti kuitenkin satunnaisesti. Koska tuloveroprosentti haluttiin säilyttää mallissa jotta voidaan tutkia, onko verotuksella vaikutusta, ammatillisen tutkinnon suorittaneiden osuus olisi joka tapauksessa jätettävä pois. |
Ylemmän korkeakoulututkinnon suorittaneiden osuus kunnassa | Ammatillinen, tieteellinen ja tekninen toiminta -työpaikkojen osuus kunnassa Informaatio ja viestintä -työpaikkojen osuus kunnassa | Kaikki kolme muuttujaa korreloivat vahvasti, joten vain yksi voitiin ottaa mukaan. Ylemmän korkeakoulututkinnon suorittaneiden osuus jätettiin mallin ehdokkaaksi, koska ei pystytty tunnistamaan miksi kyseisten toimialojen tavallista isompi edustus kunnassa nostaisi tai laskisi asuntojen toteutuneita myyntihintoja. (Kovapalkkaiset journalistit voivat ilmiantaa itsensä hurjalle hinnoittelijalle.) |
Nuorten yksinasuvien taloudet, osuus kunnassa | Lapsettomat nuorten parien taloudet, osuus kunnassa | Voi ajatella, että lapsettomien nuorten parien taloustilanne ei eroaisi juurikaan lapsiperheiden taloustilanteesta mutta sen sijaan nuorten yksinasuvien taloustilanne voisi olla pariskuntia kireämpi. Lisäksi lapsettomien nuorten parien talouksien osuus korreloi vahvasti myös vuokra-asunnoissa asuvien talouksien osuuden kunnassa kanssa. |
Talouksien mediaanitulot, 2017 kuntataso | Alimpaan tuloluokkaan kuuluvien talouksien osuus kunnassa | Tuloluokkiin liittyviä muuttujia on muitakin tarjolla, mutta talouksien mediaanitulot on ainoa tarjolla oleva mediaani- tai keskitulomuuttuja kuntatasolla. |
Pientaloasunnot, osuus kuntatasolla | Vuokra-asunnoissa asuvat taloudet, osuus kuntatasolla | Lopulta päädyttiin kuitenkin luopumaan kuntatasolla vuokra-asuntojen osuudesta. Muuttuja on kuitenkin edelleen mukana postinumerotasolla ja pientaloasuntojen osuuden kunnassa ajateltiin kuvaavan paremmin kunnan yleisluonnetta – kaupunkimainen vai pientalovaltainen ja tällä mahdollisesti olevaa vaikutusta asuntojen hintatasoon. |
Taulukko 2: Valintaperusteet vahvasti korreloivien muuttujaehdokkaiden välillä muuttujakaksikon välillä päätettäessä.
Täysin automaattisen muuttujavalinnan riskit
Vertailun vuoksi, kun suoraan postinumeroalueen koosta riippuvia muuttujia ei poistettu ensimmäisessä vaiheessa mutta sen sijaan yksittäinen muuttuja hyväksyttiin mukaan vain joko kunta- tai postinumerotasolla, korrelaatiotarkastelu tuotti paljon enemmän keskenään korreloivia muuttujia. Ensimmäinen poistettava ehdokas oli rakentamisen työpaikat kuntatasolla, joka korreloi vahvasti yli 20 muun muuttujan kanssa. Kun tämä poistettiin, löytyi kaksi muuta työpaikkojen määrää kuvaavaa muuttujaa, jotka korreloivat 18 muun muuttujan kanssa. Näiden poiston jälkeen löytyi 13 kpl 15 muun muuttujan kanssa korreloivaa muuttujaa, sitten 1 kpl 11:n, 1 kpl 9:n, 1 kpl 6:n, 6 kpl 5:n, 4 kpl 4:n, 6 kpl 3:n ja 13 kpl 2:n muun muuttujan kanssa korreloivaa muuttujaa. Viimeisellä kierroksella algoritmi tunnisti 14 muuttujaparia, joiden osalta jouduttiin valitsemaan jompikumpi muuttuja ihmisen päättelyllä. Kaiken kaikkiaan korreloivia muuttujia tuli niin paljon, että viimeistä 14 kappaletta lukuun ottamatta ei ollut mitään mahdollisuutta tehdä harkittuja poistoja vaan kaikki korreloivat muuttujat jouduttiin poistamaan automaattisesti.
Tämä tarkoittaa, että automatisoitu muuttujavalinta pitää sisällään merkittävän riskin, että joku ennalta merkittäväksi epäilty muuttuja putoaa mallista pois, jos tarjolla on myös useampi sen kanssa vahvasti korreloiva muuttuja. Esimerkiksi talouksien mediaanitulot ovat asuinalueiden asuntojen arvostuksen kannalta kiinnostava tekijä tutkia, mutta se korreloi vahvasti talouksien keskitulojen, asukkaiden mediaanitulojen ja asukkaiden keskitulojen kanssa. Huolimaton algoritmi saattaisi hylätä tällaisen kolmen muun muuttujan kanssa korreloivan muuttujaehdokkaan.
Myös toisin päin tapahtuu helposti virheitä. Kolmekymmentäkahdeksan myöhemmin pois karsittua muuttujaa pääsi alun perin molemmista karsintavaiheista läpi. Näiden joukossa oli muuttuja, joka aiheutti malliin vakavan multikollineaarisuusongelman, jonka pystyi havaitsemaan vasta mallin kertoimia tarkasteltaessa. Tämä aiheutti sen, että regression sakkofunktiosta huolimatta yksi vahvasti korreloivan ryhmän muuttujista päätyi lopulliseen malliin erittäin korkealla kertoimella. Malli oli sakkofunktion mielestä optimaalinen varianssin selittämisessä vaikka alle kymmenen muuttujaa 165:stä selittikin käytännössä täysin datan keskiarvon.
Selittävien tekijöiden määrä
Toisen sukupolven mallin ensimmäinen versio päätyi lopulta tunnistamaan 140 sille tarjotun muuttujakandidaatin joukosta 86 asuntojen toteutuneita myyntihintoja merkittävästi selittävää muuttujaa. (Paino sanoilla ”ensimmäinen versio” – on todennäköistä, että kun tuloksia tutkitaan, lukumäärä elää vielä jonkin verran.) Tämä on hieman enemmän kuin ensimmäisen sukupolven mallin lopullisen version 67 muuttujaa. Toisaalta toisen sukupolven malliin myös osa asuntoa kuvaavista muuttujista muokattiin uuteen muotoon ja tämän myötä tarjolle tuli 24 kpl uusia muuttujakandidaatteja. Esimerkiksi huoneistotyypit, kerros, kunto, energialuokka, energiatodistuksen ikä ja myös puutteet näissä tiedoissa saivat omat muuttujansa aikaisemman yhden muuttujan sijaan. Eli käytännössä ero selittyy lähes täysin asuntodatan tarkemmalla luokittelulla ilman että täysin uusia tekijöitä olisi tullut merkittävästi mukaan ilmiötä selittämään.
Miten päädyttiin valittuihin muuttujiin?
Muuttujavalinnan ytimen muodostaa LASSO-regressio, jolla haettiin isosta joukosta merkitsevimmät muuttujat. LASSOn etuna on se, että sen optimointiin tuoma sakkofunktio pyrkii luomaan harvan mallin, eli asettamaan mahdollisimman monen muuttujakandidaatin kertoimen nollaan (toisin sanoen jättämään sen pois lopullisesta mallista). Koska LASSO kuitenkin myös pienentää valittujen kertoimien arvoja, LASSO-regression tunnistamille muuttujille ajettiin vielä erillinen pienimmän neliösumman regressio, jolla saatiin muuttujakertoimien arvot estimoitua ilman sakkofunktion pienentävää vaikutusta.
Muuttujavalinta olisikin helppoa, jos tämä yksin olisi riittänyt.
Todellisuudessa LASSOkin halusi ottaa mieluummin enemmän kuin vähemmän muuttujia lopulliseen malliin. Eli jos valintakriteerinä olisi käytetty vain residuaalien neliösummaa validointidatassa, LASSO olisi päätynyt karsimaan vain muutaman muuttujan alkuperäisestä 140:stä, sillä loput selittävät ilmiötä ainakin jossain määrin – ja selitysvaikutus siis säilyy siirryttäessä opetusdatasta validointidataan arvioimaan malliehdokkaan luotettavuutta. Käytännössä ongelma on helppo ratkaista valitsemalla suurempi sakko kuin validointidatan optimi edellyttäisi, mutta millä kriteerillä tuo sakko päätellään? Tähän löytyi kuitenkin useiden eri kokeilujen jälkeen lopulta kriteeri, jolla varmistettiin, että mukaan otettavat muuttujat todellakin merkitsevissä määrin selittävät dataa.
Miksi muuttujen karsinta on tärkeää?
Kaksi asiaa on hyvä huomata. Ensinnäkin, vaikka periaatteessa ei olisikaan väärin ottaa mukaan 50-60 hieman selittävää muuttujaa, tulosten ymmärrettävyyden kannalta tämä olisi tuhoisaa. Suuresta 140 muuttujan joukosta on käytännössä mahdoton enää nähdä metsää puilta ja mallista tulisi musta laatikko – se kyllä selittäisi hyvin hintojen lopputulemia, mutta ei auttaisi ymmärtämään miksi hinnat ovat juuri kyseiset. Ja tämä ymmärrys on juuri se, mitä tavoitellaan, koska sen pohjalta voi tehdä toimenpiteitä, esimerkiksi arvioida energiaremontin arvoa asunnon myyntihinnan kannalta.
Toiseksi, miksi juuri 86? Miksi ei 42, 70, 80, 90 tai 100? Mallin luoja pystyy toki asettamaan halutessaan täysin mielivaltaisen rajan muuttujien määrälle, mutta on huomattavasti vaikeampaa johtaa datasta itsestään tällainen raja. Käytännössä hurjan hinnoittelijan muuttujien määrälle luoma kriteeri muodostettiin siten, että tässä kyseisessä käyttötarkoituksessa, eri muuttujakandidaattien määrällä kokeiltaessa, algoritmi kykeni löytämään järkevän määrän lopullisia muuttujia malliin. Kriteerin testaamisesta kuitenkin ehkä enemmän toisella kerralla, nyt kiitokset siitä, että jaksoit lukea blogin ihan loppuun asti kaiken muuttujavalinta- ja koneopppimisvyötyksen läpi!
[i] Kuten blogissa https://hinnoittelu.net/2020/01/27/tekoaly-asuntokaupoilla-keskihinta-johtaa-harhaan/ on todettu, neliömäärä vaikutti sekä lineaarisesti että logaritmisesti ja yhteisvaikutus oli että pienissä asunnoissa oli kalleimmat neliöt, kun muut tekijät pidettiin vakiona.
[ii] Jos haluat tutustua tarkemmin regressioanalyysin rajoitteisiin ja suosituksiin niiden taklaamiseksi, katso esimerkiksi Tampereen yliopiston menetelmäopetuksen nettisivut.