Το παρόν σύνολο δεδομένων περιλαμβάνει 21.597 εγγραφές σχετικά με πωλήσεις κατοικιών, με 21 χαρακτηριστικά (στήλες) για κάθε ακίνητο.
Στόχος είναι να αναπτύξουμε ένα μοντέλο πρόβλεψης που να εκτιμά την πιθανή αξία μιας κατοικίας με βάση τα διαθέσιμα χαρακτηριστικά. Μέσω ανάλυσης και μοντελοποίησης, θα επιχειρήσουμε να κατανοήσουμε ποιοι παράγοντες επηρεάζουν περισσότερο την τιμή και να δημιουργήσουμε μια αξιόπιστη πρόβλεψη για μελλοντικές εκτιμήσεις αξίας κατοικιών.
Η βάση δεδομένων περιλαμβάνει τις παρακάτω μεταβλητές για κάθε ακίνητο:
Για να εξασφαλίσουμε την ποιότητα της ανάλυσης, είναι απαραίτητο να καθαρίσουμε το αρχικό dataset εντοπίζοντας και αφαιρώντας κενές τιμές (NA) και διπλότυπες εγγραφές, εφόσον υπάρχουν.
cat("Παρατηρούμε ότι έχουμε ",sum(is.na(Data)), " κενά κελία επομένως θα αφαιρέσουμε τις γραμμές αυτές με σκοπό να βγάλουμε καλύτερο αποτέλεσμα!")## Παρατηρούμε ότι έχουμε 6735 κενά κελία επομένως θα αφαιρέσουμε τις γραμμές αυτές με σκοπό να βγάλουμε καλύτερο αποτέλεσμα!
cat("Έχουμε ",sum(duplicated(Data)), " διπλότυπες εγγραφές οπότε δεν χρειαζόμαστε επεξεργασία για αφαίρεση διπλότυπων.")## Έχουμε 0 διπλότυπες εγγραφές οπότε δεν χρειαζόμαστε επεξεργασία για αφαίρεση διπλότυπων.
## [1] 15429
Μετά τον καθαρισμό, διατηρούμε μόνο τις εγγραφές με πλήρη δεδομένα, βελτιώνοντας έτσι την αξιοπιστία των επόμενων αναλύσεων. Το τελικό dataset περιλαμβάνει 15762 παρατηρήσεις.
## id date price bedrooms
## Min. : 1000102 Min. :2014-05-02 Min. : 82000 Min. : 1.000
## 1st Qu.:2126049032 1st Qu.:2014-07-21 1st Qu.: 320000 1st Qu.: 3.000
## Median :3905081800 Median :2014-10-16 Median : 450000 Median : 3.000
## Mean :4593824663 Mean :2014-10-28 Mean : 541498 Mean : 3.379
## 3rd Qu.:7334501250 3rd Qu.:2015-02-17 3rd Qu.: 643500 3rd Qu.: 4.000
## Max. :9895000040 Max. :2015-05-27 Max. :7700000 Max. :33.000
## bathrooms sqft_living sqft_lot floors
## Min. :0.500 Min. : 370 Min. : 520 Min. :1.000
## 1st Qu.:1.750 1st Qu.: 1430 1st Qu.: 5050 1st Qu.:1.000
## Median :2.250 Median : 1920 Median : 7620 Median :1.500
## Mean :2.122 Mean : 2086 Mean : 15286 Mean :1.495
## 3rd Qu.:2.500 3rd Qu.: 2550 3rd Qu.: 10720 3rd Qu.:2.000
## Max. :8.000 Max. :13540 Max. :1651359 Max. :3.500
## waterfront view condition grade
## Min. :0.000000 Min. :0.0000 Min. :1.000 Min. : 3.000
## 1st Qu.:0.000000 1st Qu.:0.0000 1st Qu.:3.000 1st Qu.: 7.000
## Median :0.000000 Median :0.0000 Median :3.000 Median : 7.000
## Mean :0.007518 Mean :0.2289 Mean :3.411 Mean : 7.664
## 3rd Qu.:0.000000 3rd Qu.:0.0000 3rd Qu.:4.000 3rd Qu.: 8.000
## Max. :1.000000 Max. :4.0000 Max. :5.000 Max. :13.000
## sqft_above sqft_basement yr_built yr_renovated
## Min. : 370 Min. : 0.0 Min. :1900 Min. : 0.00
## 1st Qu.:1200 1st Qu.: 0.0 1st Qu.:1952 1st Qu.: 0.00
## Median :1570 Median : 0.0 Median :1975 Median : 0.00
## Mean :1794 Mean : 291.8 Mean :1971 Mean : 81.77
## 3rd Qu.:2220 3rd Qu.: 560.0 3rd Qu.:1997 3rd Qu.: 0.00
## Max. :9410 Max. :4820.0 Max. :2015 Max. :2015.00
## zipcode lat long sqft_living15
## Min. :98001 Min. :47.16 Min. :-122.5 Min. : 399
## 1st Qu.:98033 1st Qu.:47.47 1st Qu.:-122.3 1st Qu.:1490
## Median :98065 Median :47.57 Median :-122.2 Median :1850
## Mean :98077 Mean :47.56 Mean :-122.2 Mean :1991
## 3rd Qu.:98117 3rd Qu.:47.68 3rd Qu.:-122.1 3rd Qu.:2370
## Max. :98199 Max. :47.78 Max. :-121.3 Max. :6210
## sqft_lot15
## Min. : 659
## 1st Qu.: 5100
## Median : 7626
## Mean : 12862
## 3rd Qu.: 10108
## Max. :871200
ggplot(cData, aes(x = bedrooms, y = price)) +
geom_point(color = "#2C3E50", alpha = 0.6, size = 2) +
labs(
title = "Σχέση μεταξύ υπνοδωματίων και τιμής",
x = "Αριθμός Υπνοδωματίων",
y = "Τιμή (€)"
) +
scale_y_continuous(labels = label_comma()) +
theme_minimal(base_size = 14) +
theme(
plot.title = element_text(face = "bold", hjust = 0.5),
axis.title = element_text(face = "bold")
)Μπορούμε να συμπεράνουμε από το παραπάνω διάγραμμα ότι καθώς αυξάνεται ο αριθμός των δωματίων, φαίνεται να αυξάνεται και η τιμή, διότι παρατηρούμε μια ανοδική τάση. Επομένως, μπορούμε να αναμένουμε ότι η μεταβλητή bedrooms θα παίξει σημαντικό ρόλο στο μοντέλο γραμμικής παλινδρόμησης.
ggplot(cData, aes(x = grade, y = price)) +
geom_point(color = "#2C3E50", alpha = 0.6, size = 2) +
labs(
title = "Σχέση μεταξύ υπνοδωματίων και τιμής",
x = "Αριθμός Υπνοδωματίων",
y = "Τιμή (€)"
) +
scale_y_continuous(labels = label_comma()) +
theme_minimal(base_size = 14) +
theme(
plot.title = element_text(face = "bold", hjust = 0.5),
axis.title = element_text(face = "bold")
)Μπορούμε να συμπεράνουμε από το παραπάνω διάγραμμα ότι καθώς αυξάνεται η βαθμολογία (grade), φαίνεται να αυξάνεται και η τιμή, καθώς παρατηρούμε μια θετική συσχέτιση.΄Όπως και πριν, μπορούμε να αναμένουμε ότι η μεταβλητή grade θα παίξει σημαντικό ρόλο στο μοντέλο γραμμικής παλινδρόμησης.
Στο πλαίσιο της ανάλυσής μας, θα εφαρμόσουμε κατα κύριο λόγο τη μέθοδο αφαίρεσης μεταβλητών (backward elimination). Συγκεκριμένα, θα δούμε ποιες μεταβλητές είναι οι σημαντικότερες και στην συνέχεια θα τροποποιήσουμε το μεντέλο αντίστοιχα.
##
## Call:
## lm(formula = price ~ ., data = cData)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1209962 -99437 -8338 79705 4249730
##
## Coefficients: (1 not defined because of singularities)
## Estimate Std. Error t value
## (Intercept) 3857482.1037059356 3523001.0411323602 1.095
## id -0.0000011038 0.0000005786 -1.908
## date 111.5342826888 14.5393632725 7.671
## bedrooms -37252.4051258950 2243.5630998792 -16.604
## bathrooms 43935.4706609749 3903.7533674251 11.255
## sqft_living 154.8192186631 5.2174675774 29.673
## sqft_lot 0.0854518454 0.0565234979 1.512
## floors 5008.2083720190 4322.5078645171 1.159
## waterfront 619069.4872245024 20870.2141808766 29.663
## view 53383.7017252451 2583.2194479880 20.666
## condition 27610.3682571462 2819.9682812246 9.791
## grade 94064.6547965433 2598.5695310328 36.199
## sqft_above 37.1309846372 5.1925703017 7.151
## sqft_basement NA NA NA
## yr_built -2678.8974451141 86.9450779172 -30.811
## yr_renovated 21.0991420031 4.4272392616 4.766
## zipcode -570.0708053146 39.4742359055 -14.442
## lat 604281.7533091547 12830.7863079017 47.096
## long -213453.2017867107 15783.0718764432 -13.524
## sqft_living15 16.9623844567 4.1481247803 4.089
## sqft_lot15 -0.3521112562 0.0861214337 -4.089
## Pr(>|t|)
## (Intercept) 0.2736
## id 0.0564 .
## date 0.0000000000000181 ***
## bedrooms < 0.0000000000000002 ***
## bathrooms < 0.0000000000000002 ***
## sqft_living < 0.0000000000000002 ***
## sqft_lot 0.1306
## floors 0.2466
## waterfront < 0.0000000000000002 ***
## view < 0.0000000000000002 ***
## condition < 0.0000000000000002 ***
## grade < 0.0000000000000002 ***
## sqft_above 0.0000000000009016 ***
## sqft_basement NA
## yr_built < 0.0000000000000002 ***
## yr_renovated 0.0000018986408221 ***
## zipcode < 0.0000000000000002 ***
## lat < 0.0000000000000002 ***
## long < 0.0000000000000002 ***
## sqft_living15 0.0000435118907329 ***
## sqft_lot15 0.0000436292276684 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 203600 on 15409 degrees of freedom
## Multiple R-squared: 0.7024, Adjusted R-squared: 0.702
## F-statistic: 1914 on 19 and 15409 DF, p-value: < 0.00000000000000022
# Υπολογισμός SSE & RSME για πίνακα αποτελεσμάτων
SSEall <- sum(allmodel$residuals^2)
RMSEall<- sqrt(SSEall/nrow(cData)) Παρατηρούμε ότι η πλειονότητα των μεταβλητών συνοδεύεται από 3 αστεράκια, κάτι που υποδηλώνει ότι είναι ιδιαίτερα στατιστικά σημαντικές. Για τον λόγο αυτό, θα επιλέξουμε να συμπεριλάβουμε μόνο αυτές τις μεταβλητές στο μοντέλο, ώστε να εξετάσουμε πώς επηρεάζουν τα αποτελέσματα και να καθορίσουμε τα επόμενα βήματά μας.
# Δημιουργία νέου μοντέλου μόνο με τις στατιστικά σημαντικές μεταβλητές (***)
m1<- lm(price ~ date + bedrooms + bathrooms + sqft_living +
waterfront + view + condition + grade + sqft_above +
yr_built + yr_renovated + zipcode + lat + long + sqft_living15 + sqft_lot15,
data = cData)
# Υπολογισμός SSE & RSME για πίνακα αποτελεσμάτων
SSE1 <- sum(m1$residuals^2)
RMSE1<- sqrt(SSE1/nrow(cData))
# Προβολή των αποτελεσμάτων του μοντέλου 1
summary(m1)##
## Call:
## lm(formula = price ~ date + bedrooms + bathrooms + sqft_living +
## waterfront + view + condition + grade + sqft_above + yr_built +
## yr_renovated + zipcode + lat + long + sqft_living15 + sqft_lot15,
## data = cData)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1212591 -99469 -8251 79399 4244044
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 3250018.83907 3466300.37158 0.938 0.348
## date 111.35147 14.53977 7.658 0.0000000000000199 ***
## bedrooms -37436.82336 2242.38149 -16.695 < 0.0000000000000002 ***
## bathrooms 45157.87642 3766.41353 11.990 < 0.0000000000000002 ***
## sqft_living 153.20631 4.97223 30.812 < 0.0000000000000002 ***
## waterfront 618849.91256 20871.32949 29.651 < 0.0000000000000002 ***
## view 53455.96321 2579.91573 20.720 < 0.0000000000000002 ***
## condition 27404.83295 2814.02604 9.739 < 0.0000000000000002 ***
## grade 94300.10658 2588.45540 36.431 < 0.0000000000000002 ***
## sqft_above 40.06644 4.65403 8.609 < 0.0000000000000002 ***
## yr_built -2664.62215 84.88914 -31.389 < 0.0000000000000002 ***
## yr_renovated 21.24302 4.42357 4.802 0.0000015837692212 ***
## zipcode -565.92105 39.29747 -14.401 < 0.0000000000000002 ***
## lat 605157.47001 12777.97850 47.359 < 0.0000000000000002 ***
## long -214540.34933 15674.42999 -13.687 < 0.0000000000000002 ***
## sqft_living15 16.06403 4.11443 3.904 0.0000948939174380 ***
## sqft_lot15 -0.24987 0.06229 -4.011 0.0000606748110150 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 203700 on 15412 degrees of freedom
## Multiple R-squared: 0.7022, Adjusted R-squared: 0.7019
## F-statistic: 2272 on 16 and 15412 DF, p-value: < 0.00000000000000022
Παρατηρούμε πως, συγκριτικά με το μεγαλύτερο μοντέλο, δεν υπήρξαν σημαντικές αλλαγές και οι μεταβλητές που επιλέχθηκαν παραμένουν στατιστικά σημαντικές. Ωστόσο, για λόγους υπολογιστικής αποδοτικότητας, είναι προτιμότερο να διατηρούμε όσο το δυνατόν λιγότερες μεταβλητές, χωρίς να θυσιάζεται η ερμηνευτική ικανότητα του μοντέλου.
Για τον λόγο αυτό, επιχειρούμε την αφαίρεση των μεταβλητών γεωγραφικής φύσης (zipcode, lat, long etc.), οι οποίες συνήθως έχουν ισχυρή επίδραση αλλά και αυξημένο υπολογιστικό κόστος λόγω της πολυπλοκότητάς τους. Το δεύτερο μοντέλο, το οποίο περιλαμβάνει μόνο τις υπόλοιπες στατιστικά σημαντικές μεταβλητές, είναι το εξής:
m2<- lm(price ~ date + bedrooms + bathrooms + sqft_living +
waterfront + view + condition + grade + sqft_above +
yr_built + yr_renovated,
data = cData)
# Υπολογισμός SSE & RSME για πίνακα αποτελεσμάτων
SSE2 <- sum(m2$residuals^2)
RMSE2<- sqrt(SSE2/nrow(cData))
# Προβολή των αποτελεσμάτων του μοντέλου 2
summary(m2)##
## Call:
## lm(formula = price ~ date + bedrooms + bathrooms + sqft_living +
## waterfront + view + condition + grade + sqft_above + yr_built +
## yr_renovated, data = cData)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1239750 -110301 -8716 91778 4186334
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 4712964.042 305766.753 15.414 < 0.0000000000000002 ***
## date 94.603 15.649 6.045 0.00000000153 ***
## bedrooms -39620.809 2400.767 -16.503 < 0.0000000000000002 ***
## bathrooms 56469.420 4024.092 14.033 < 0.0000000000000002 ***
## sqft_living 162.608 5.178 31.403 < 0.0000000000000002 ***
## waterfront 613572.443 22456.454 27.323 < 0.0000000000000002 ***
## view 45014.178 2726.940 16.507 < 0.0000000000000002 ***
## condition 17630.943 2986.620 5.903 0.00000000364 ***
## grade 123386.479 2596.519 47.520 < 0.0000000000000002 ***
## sqft_above 13.905 4.863 2.859 0.00425 **
## yr_built -3597.911 84.118 -42.772 < 0.0000000000000002 ***
## yr_renovated 11.665 4.748 2.457 0.01403 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 219300 on 15417 degrees of freedom
## Multiple R-squared: 0.6546, Adjusted R-squared: 0.6544
## F-statistic: 2657 on 11 and 15417 DF, p-value: < 0.00000000000000022
Ωστόσο, παρατηρούμε ότι η τιμή του συντελεστή R² μειώνεται αισθητά, γεγονός που δηλώνει απώλεια ερμηνευτικής ισχύος. Για τον λόγο αυτό, επιλέγουμε να διατηρήσουμε μέρος των γεωγραφικών μεταβλητών ώστε να βελτιώσουμε την ακρίβεια του μοντέλου, περιορίζοντας παράλληλα την περιπλοκότητα.
Το τρίτο μοντέλο είναι το εξής:
# Δημιουργία τρίτου μοντέλου
m3<- lm(price ~ date + bedrooms + bathrooms + sqft_living +
waterfront + view + condition + grade + sqft_above +
yr_built + yr_renovated + zipcode + lat + long,
data = cData)
# Υπολογισμός SSE & RSME για πίνακα αποτελεσμάτων
SSE3 <- sum(m3$residuals^2)
RMSE3<- sqrt(SSE3/nrow(cData))
# Προβολή των αποτελεσμάτων του μοντέλου 3
summary(m3)##
## Call:
## lm(formula = price ~ date + bedrooms + bathrooms + sqft_living +
## waterfront + view + condition + grade + sqft_above + yr_built +
## yr_renovated + zipcode + lat + long, data = cData)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1234177 -98943 -8298 79465 4218764
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 4546170.071 3370887.944 1.349 0.177
## date 110.324 14.552 7.581 0.0000000000000362 ***
## bedrooms -36725.914 2236.095 -16.424 < 0.0000000000000002 ***
## bathrooms 45115.660 3760.099 11.999 < 0.0000000000000002 ***
## sqft_living 156.030 4.816 32.400 < 0.0000000000000002 ***
## waterfront 617138.432 20884.402 29.550 < 0.0000000000000002 ***
## view 54535.574 2552.627 21.364 < 0.0000000000000002 ***
## condition 26938.418 2814.585 9.571 < 0.0000000000000002 ***
## grade 97390.570 2479.367 39.280 < 0.0000000000000002 ***
## sqft_above 41.515 4.635 8.957 < 0.0000000000000002 ***
## yr_built -2673.723 84.732 -31.555 < 0.0000000000000002 ***
## yr_renovated 20.276 4.420 4.587 0.0000045301269927 ***
## zipcode -582.953 39.115 -14.903 < 0.0000000000000002 ***
## lat 610162.108 12754.929 47.837 < 0.0000000000000002 ***
## long -215905.186 15171.803 -14.231 < 0.0000000000000002 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 203800 on 15414 degrees of freedom
## Multiple R-squared: 0.7016, Adjusted R-squared: 0.7014
## F-statistic: 2589 on 14 and 15414 DF, p-value: < 0.00000000000000022
results <- data.frame(
Model = c(
"All variables",
"Date + Bedrooms + Bathrooms + Sqft_living + Waterfront + View + Condition + Grade + Sqft_above + Yr_built + Yr_renovated + Zipcode + Lat + Long + Sqft_living15 + Sqft_lot15",
"Date + Bedrooms + Bathrooms + Sqft_living + Waterfront + View + Condition + Grade + Sqft_above + Yr_built + Yr_renovated",
"Date + Bedrooms + Bathrooms + Sqft_living + Waterfront + View + Condition + Grade + Sqft_above + Yr_built + Yr_renovated + Zipcode + Lat + Long"
),
R_squared = c(
summary(allmodel)$r.squared,
summary(m1)$r.squared,
summary(m2)$r.squared,
summary(m3)$r.squared
),
SSE = c(
SSEall,
SSE1,
SSE2,
SSE3
),
RMSE = c(
RMSEall,
RMSE1,
RMSE2,
RMSE3
)
)
knitr::kable(results, digits = 4, caption = "Σύγκριση Μοντέλων: R-squared και SSE")| Model | R_squared | SSE | RMSE |
|---|---|---|---|
| All variables | 0.7024 | 638915871098484 | 203494.6 |
| Date + Bedrooms + Bathrooms + Sqft_living + Waterfront + View + Condition + Grade + Sqft_above + Yr_built + Yr_renovated + Zipcode + Lat + Long + Sqft_living15 + Sqft_lot15 | 0.7022 | 639226035046862 | 203544.0 |
| Date + Bedrooms + Bathrooms + Sqft_living + Waterfront + View + Condition + Grade + Sqft_above + Yr_built + Yr_renovated | 0.6546 | 741386477626054 | 219206.5 |
| Date + Bedrooms + Bathrooms + Sqft_living + Waterfront + View + Condition + Grade + Sqft_above + Yr_built + Yr_renovated + Zipcode + Lat + Long | 0.7016 | 640507248770261 | 203747.9 |
Ακολουθεί η εφαρμογή πρόβλεψης, όπου θα χρησιμοποιηθεί το τρίτο μοντέλο. Το Μοντέλο 3 επιτυγχάνει μια ισορροπία μεταξύ απλότητας και προβλεπτικής ισχύος. Παρά την ελαφρώς αυξημένη πολυπλοκότητα λόγω της προσθήκης γεωγραφικών μεταβλητών, παρατηρείται σημαντική βελτίωση στο R², η οποία πλησιάζει την απόδοση του πληρέστερου μοντέλου. Αυτό δικαιολογεί τη διατήρηση των συγκεκριμένων μεταβλητών, με αποτέλεσμα το τρίτο μοντέλο να θεωρείται το πλέον κατάλληλο για την πρόβλεψη της τιμής των κατοικιών.
Για την αξιολόγηση του μοντέλου m3, τα δεδομένα θα χωριστούν σε σύνολα εκπαίδευσης και δοκιμής με αναλογία 75% - 25%, ώστε να ελεγχθεί η ικανότητα πρόβλεψης σε νέα, άγνωστα δεδομένα. Θα προσαρμόσουμε το μοντέλο στο σύνολο εκπαίδευσης και στη συνέχεια θα γίνουν προβλέψεις για τις τιμές κατοικιών στο σύνολο δοκιμής.
Θα υπολογίσουμε το άθροισμα τετραγωνικών σφαλμάτων (SSE) μεταξύ προβλεπόμενων και πραγματικών τιμών καθώς και το RMSE (ρίζα μέσου τετραγωνικού σφάλματος) για να αξιολογήσουμε το μέγεθος του μέσου σφάλματος της πρόβλεψης, σε μονάδες τιμής κατοικίας. Με αυτόν τον τρόπο, θα εκτιμήσουμε την απόδοση του μοντέλου σε νέα δεδομένα, διασφαλίζοντας ότι δεν θα έχει γίνει υπερπροσαρμογή στα δεδομένα εκπαίδευσης.
#Σύμφωνα με το iis
set.seed(956)
split <- sample.split(cData$price,SplitRatio=0.75)
Train = subset(cData,split==TRUE)
Test = subset(cData,split==FALSE)
nrow(Test)## [1] 3338
## [1] 12091
Prediction <- predict(m3, newdata=Test)
SSEPred <- sum((Prediction - Test$price)^2)
SSTPred <- sum((mean(Train$price) - Test$price)^2)
R2Pred <- 1 - SSEPred/SSTPred
cat(R2Pred)## 0.6973713
## 184892.9
Το R² της τάξης του 0.697 σημαίνει ότι το μοντέλο εξηγεί περίπου το 69,7% της μεταβλητότητας των πραγματικών τιμών στο σύνολο δοκιμής, κάτι που είναι αρκετά ικανοποιητικό για δεδομένα με φυσική ποικιλότητα όπως οι τιμές ακινήτων.
Η τιμή του RMSE περίπου 184,893 υποδεικνύει το μέσο μέγεθος του σφάλματος πρόβλεψης στις ίδιες μονάδες με την τιμή ακινήτου. Αν συγκριθεί με το μέσο μέγεθος των τιμών στο dataset, το σφάλμα αυτό είναι αποδεκτό, αν και μπορεί να βελτιωθεί περαιτέρω με επιπλέον βελτιώσεις στο μοντέλο.
Συνολικά, το μοντέλο εμφανίζει ισορροπία μεταξύ ακρίβειας και απλότητας, καθιστώντας το κατάλληλο για πρακτική χρήση στην πρόβλεψη τιμών κατοικιών.