Εισαγωγή

Περιγραφή του Dataset

To Real Estate Price Prediction κοινοποιήθηκε στο Kaggle, ένα αποθετήριο βάσεων, συνόλων δεδομένων και θεωριών πεδίων. Το Dataset αποτελείται από συναλλαγές ακινήτων στην Ταϊβάν και έχει ως στόχο την πρόβλεψη των τιμών τους ανά τετραγωνικό μέτρο. Οι τιμές βασίζονται σε δεδομένα από τις 31 Αυγούστου 2012 έως και τις 2 Αυγούστου 2013.

Επιχειρηματική Αναλυτική

Η ανάλυση των δεδομένων του Dataset μπορεί να βοηθήσει στο data-driven decision-making (DDDM) στον κλάδο των ακινήτων. Ουσιαστικά συμβάλλει στην κατανόηση των παραγόντων που επηρεάζουν τις τιμές των ακινήτων, στην πρόβλεψη της αξίας τους και στη βελτιστοποίηση των επενδυτικών στρατηγικών.

Πιθανά Επιχειρηματικά Ερωτήματα

  • Ποιοι παράγοντες επηρεάζουν περισσότερο την τιμή των ακινήτων ανά τετραγωνικό μέτρο;
  • Μπορούμε να προβλέψουμε την τιμή ενός ακινήτου με βάση τα χαρακτηριστικά του;
  • Ποια είναι η καλύτερη περιοχή για επένδυση σε ακίνητα βάσει τιμής και υποδομών;

Περιγραφή των Μεταβλητών

Αναλυτικός πίνακας με τα στοιχεία των μεταβλητών:
Μεταβλητή Περιγραφή Τύπος Εύρος Μονάδα Μέτρησης
TransactionDate Ημερομηνία συναλλαγής Αριθμητική 2012-08-31 - 2013-08-02
HouseAge Ηλικία του ακινήτου Αριθμητική 0 - 43.8 Έτος
MRTdistance Απόσταση από τον κοντινότερο σταθμό μετρό Αριθμητική 23.38 - 6488.02 Meter(m)
NoConvinienceStores Πλήθος κοντινών καταστημάτων Αριθμητική 0 - 10
Latitude Γεωγραφικό πλάτος Αριθμητική 24.93207 - 25.01459
Longitude Γεωγραφικό μήκος Αριθμητική 121.47353 - 121.56627
SQMprice Τιμή ανά τετραγωνικό μέτρο Αριθμητική 7.6 - 117.5 Dollar($)

Έλεγχος εγκυρότητας του dataset

Ελλιπείς Τιμές

cat(sum(is.na(realEstate)))
## 0

Διπλότυπες Εγγραφές

cat(sum(duplicated(realEstate)))
## 0

Περιγραφικά Στατιστικά

summary(realEstate)
##  TransactionDate         HouseAge       MRTdistance      NoConvinienceStores
##  Min.   :2012-08-31   Min.   : 0.000   Min.   :  23.38   Min.   : 0.000     
##  1st Qu.:2012-12-01   1st Qu.: 9.025   1st Qu.: 289.32   1st Qu.: 1.000     
##  Median :2013-03-03   Median :16.100   Median : 492.23   Median : 4.000     
##  Mean   :2013-02-23   Mean   :17.713   Mean   :1083.89   Mean   : 4.094     
##  3rd Qu.:2013-06-02   3rd Qu.:28.150   3rd Qu.:1454.28   3rd Qu.: 6.000     
##  Max.   :2013-08-02   Max.   :43.800   Max.   :6488.02   Max.   :10.000     
##     Latitude       Longitude        SQMprice     
##  Min.   :24.93   Min.   :121.5   Min.   :  7.60  
##  1st Qu.:24.96   1st Qu.:121.5   1st Qu.: 27.70  
##  Median :24.97   Median :121.5   Median : 38.45  
##  Mean   :24.97   Mean   :121.5   Mean   : 37.98  
##  3rd Qu.:24.98   3rd Qu.:121.5   3rd Qu.: 46.60  
##  Max.   :25.01   Max.   :121.6   Max.   :117.50

Διαγράμματα Συσχετίσεων

Γράφημα 1: Σχέση Τιμής ακινήτων ανά Τετραγωνικό Μέτρο και Απόστασης από την πλησιέστερη Στάση Μετρό

ggplot(realEstate, aes(MRTdistance, SQMprice)) +
  geom_point(color = "steelblue") +
  labs(title = "Τιμή ανά τ.μ. vs Απόσταση από σταθμό μετρό",
       x = "Απόσταση από σταθμό μετρό (m)",
       y = "Τιμή ανά τ.μ.($)") +
  theme_minimal()

Σχόλιο
Παρατηρείται αρνητική συσχέτιση μεταξύ των δύο μεταβλητών, δηλαδή όσο μεγαλύτερη είναι η απόσταση από τον πλησιέστερο σταθμό του μετρό, τόσο μικρότερη η τιμή του ακινήτου. Αυτό είναι λογικό, αφού η εύκολη πρόσβαση στις συγκοινωνίες αυξάνει την εμπορική αξία.

Γράφημα 2: Σχέση Τιμής ακινήτων ανά Τετραγωνικό Μέτρο με βάση τον αριθμό των κοντινών Εμπορικών Καταστημάτων

ggplot(realEstate, aes(as.factor(NoConvinienceStores), SQMprice)) +
  geom_boxplot(fill = "tomato") +
  labs(title = "Κατανομή Τιμής ανά τ.μ. vs Αριθμός Καταστημάτων",
       x = "Αριθμός Convenience Stores",
       y = "Τιμή ανά τ.μ.($)") +
  theme_minimal()

Σχόλιο
Βλέπουμε ότι σε περιοχές με περισσότερα καταστήματα, η τιμή των ακινήτων τείνει να είναι υψηλότερη. Η ύπαρξη υποδομών εξυπηρέτησης φαίνεται πως παίζει σημαντικό ρόλο στη διαμόρφωση των τιμών.

Γράφημα 3: Κατανομή ηλικίας των σπιτιών

ggplot(realEstate, aes(HouseAge)) +
  geom_histogram(binwidth = 1, fill = "darkgreen", color = "white") +
  labs(title = "Κατανομή ηλικίας ακινήτων",
       x = "Ηλικία (σε έτη)",
       y = "Πλήθος") +
  theme_minimal()

Σχόλιο
Η πλειοψηφία των σπιτιών δείχνει πως είναι σχετικά νεόκτιστα (0-20 ετών), κάτι που μπορεί να επηρεάζει αυξητικά την τιμή τους. Υπάρχει μικρότερος αριθμός παλαιότερων ακινήτων.

Γράφημα 4: Αριθμός συναλλαγών ανά ημερομηνία

ggplot(realEstate, aes(as.factor(TransactionDate))) +
  geom_bar(fill = "purple") +
  labs(title = "Αριθμός συναλλαγών ανά ημερομηνία",
       x = "Ημερομηνία συναλλαγής",
       y = "Πλήθος συναλλαγών") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 50, hjust = 1))

Σχόλιο
Οι συναλλαγές φαίνεται να συγκεντρώνονται σε συγκεκριμένες χρονικές περιόδους και πιθανόν να επηρεάζονται από οικονομικούς ή εποχικούς παράγοντες στην αγορά ακινήτων.

Γραμμική Παλινδρόμηση

Διαχωρισμός του dataset σε training και testing sets

Χωρίζουμε το dataset με τυχαίο τρόπο σε δύο ξεχωριστά αρχεία train και test. Το train αποτελεί το 70% της βάσης και ορίζουμε το seed σε 918 καθιστώντας τον τυχαίο διαχωρισμό train/test σταθερό σε κάθε εκτέλεση του κώδικα. Το train χρησιμοποιείται για τη δημιουργία του μοντέλου μας και το test για να μετρήσουμε πως αυτό λειτουργεί για δεδομένα εκτός του train.

library(caTools)

set.seed(918)  
spl = sample(1:nrow(realEstate), size=0.7 * nrow(realEstate))
realEstate_train = realEstate[spl,]
realEstate_test = realEstate[-spl,]

cat("Train set:", nrow(realEstate_train), "καταχωρήσεις | Test set:", nrow(realEstate_test), "καταχωρήσεις")
## Train set: 289 καταχωρήσεις | Test set: 125 καταχωρήσεις

Διερεύνυση Συσχετίσεων

Ο παρακάτω πίνακας δείχνει τους συντελεστές γραμμικής συσχέτισης (Pearson) μεταξύ των διαφόρων μεταβλητών. Όσο πιο κοντά είναι οι τιμές στο +1 ή -1, τόσο ισχυρότερη είναι η θετική ή η αρνητική γραμμική σχέση αντιστοίχως. Για την κατασκευή των μοντέλων, εφαρμόζουμε τη μέθοδο πρόσθεσης μεταβλητών (forward), επιλέγοντας πρώτα τις μεταβλητές που εμφανίζουν τη μεγαλύτερη συσχέτιση (θετική ή αρνητική) με την εξαρτημένη μεταβλητή SQMprice, ταξινομώντας τις με φθίνουσα σειρά σύμφωνα με το μέγεθος της συσχέτισής τους.

Πίνακας Συσχετίσεων Μεταβλητών:
HouseAge MRTdistance NoConvinienceStores Latitude Longitude SQMprice
HouseAge 1.00 0.04 0.02 0.04 -0.05 -0.26
MRTdistance 0.04 1.00 -0.62 -0.60 -0.84 -0.69
NoConvinienceStores 0.02 -0.62 1.00 0.46 0.48 0.60
Latitude 0.04 -0.60 0.46 1.00 0.45 0.56
Longitude -0.05 -0.84 0.48 0.45 1.00 0.58
SQMprice -0.26 -0.69 0.60 0.56 0.58 1.00

Σχόλια
Την ισχυρότερη αρνητική συσχέτιση με την SQMprice έχει η MRTdistance (r = -0.67)

Τις ισχυρότερες θετικές συσχετίσεις με την τιμή SQMprice έχουν οι εξής μεταβλητές:

  • NoConvinienceStores (r = +0.57)

  • Latitude (r = +0.55)

  • Longitude (r = +0.52)

Η HouseAge έχει αδύναμη αρνητική συσχέτιση (-0.21) με την SQMprice και μπορεί να χρησιμοποιηθεί δευτερευόντως.

Μοντέλο 1 - Απόσταση από σταθμό μετρό

model1 <- lm(SQMprice ~ MRTdistance, data = realEstate_train)
summary(model1)
## 
## Call:
## lm(formula = SQMprice ~ MRTdistance, data = realEstate_train)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -35.268  -6.145  -1.026   5.943  33.978 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 45.6335262  0.7534803   60.56   <2e-16 ***
## MRTdistance -0.0070327  0.0004396  -16.00   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 9.743 on 287 degrees of freedom
## Multiple R-squared:  0.4714, Adjusted R-squared:  0.4696 
## F-statistic:   256 on 1 and 287 DF,  p-value: < 2.2e-16

Σχόλια

  • Όταν το ακίνητο βρίσκεται δίπλα σε σταθμό μετρό (απόσταση=0), τότε η εκτιμώμενη τιμή ανά τ.μ. είναι περίπου 45,63$ (Intercept Estimate). Για κάθε επιπλέον μέτρο απόστασης από τον σταθμό, η τιμή μειώνεται κατά 0,00703 (MRTdistance Estimate).

  • Το μοντέλο εξηγεί περίπου το 47.1% της διακύμανσης της τιμής ανά τ.μ. (Multiple R²), μόνο με 1 μεταβλητή.

  • Κατά μέσο όρο, οι πραγματικές τιμές διαφέρουν από τις προβλεπόμενες κατά περίπου 9.7 μονάδες (Residual standard error - RMSE).

  • Η μεταβλητή MRTdistance είναι στατιστικά σημαντική καθώς το t-value < 0.001 (***).

Μοντέλο 2 - Προσθήκη πλήθους κοντινών καταστημάτων

model2 <- lm(SQMprice ~ MRTdistance + NoConvinienceStores, data = realEstate_train)
summary(model2)
## 
## Call:
## lm(formula = SQMprice ~ MRTdistance + NoConvinienceStores, data = realEstate_train)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -36.351  -5.924  -1.039   5.835  29.466 
## 
## Coefficients:
##                       Estimate Std. Error t value Pr(>|t|)    
## (Intercept)         38.4328292  1.5466494  24.849  < 2e-16 ***
## MRTdistance         -0.0052655  0.0005381  -9.784  < 2e-16 ***
## NoConvinienceStores  1.2648051  0.2403711   5.262  2.8e-07 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 9.32 on 286 degrees of freedom
## Multiple R-squared:  0.5181, Adjusted R-squared:  0.5147 
## F-statistic: 153.7 on 2 and 286 DF,  p-value: < 2.2e-16

Σχόλια

  • Με την προσθήκη της μεταβλητής NoConvinienceStores παρατηρούμε πως η εκτιμώμενη τιμή ανά τ.μ. είναι περίπου 38.43$ (Intercept Estimate) όταν MRTdistance=0 και NoConvinienceStores=0. Για κάθε επιπλέον κατάστημα κοντά στο ακίνητο, η τιμή αυξάνεται κατά περίπου 1.26 (NoConvinienceStores Estimate), ενώ για κάθε επιπλέον μέτρο απόστασης από σταθμό μετρό, η τιμή μειώνεται κατά 0,0053 (MRTdistance Estimate).

  • Το μοντέλο 2 εξηγεί περίπου το 51.8% της διακύμανσης της τιμής (Multiple R²) του ακινήτου, ποσοστό που είναι μεγαλύτερο από το προηγούμενο μοντέλο.

  • Παρατηρούμε ελαφρώς μικρότερο σφάλμα πρόβλεψης (9.32) σε σχέση με το προηγούμενο μοντέλο (Residual standard error - RMSE).

  • Η μεταβλητή NoConvinienceStores είναι στατιστικά σημαντική καθώς το t-value < 0.001 (***).

Μοντέλο 3 - Προσθήκη γεωγραφικών συντεταγμένων

model3 <- lm(SQMprice ~ MRTdistance + NoConvinienceStores + Latitude + Longitude, data = realEstate_train)
summary(model3)
## 
## Call:
## lm(formula = SQMprice ~ MRTdistance + NoConvinienceStores + Latitude + 
##     Longitude, data = realEstate_train)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -33.627  -5.637  -1.135   5.217  30.676 
## 
## Coefficients:
##                       Estimate Std. Error t value Pr(>|t|)    
## (Intercept)         -1.229e+04  8.028e+03  -1.531 0.126900    
## MRTdistance         -3.569e-03  9.207e-04  -3.876 0.000132 ***
## NoConvinienceStores  1.152e+00  2.374e-01   4.853 2.01e-06 ***
## Latitude             2.200e+02  5.321e+01   4.135 4.68e-05 ***
## Longitude            5.622e+01  6.401e+01   0.878 0.380512    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 9.08 on 284 degrees of freedom
## Multiple R-squared:  0.5457, Adjusted R-squared:  0.5393 
## F-statistic:  85.3 on 4 and 284 DF,  p-value: < 2.2e-16

Σχόλια

  • Το μοντέλο εξηγεί περίπου το 54.5% της διακύμανσης της τιμής (Multiple R²) του ακινήτου, ποσοστό που είναι μεγαλύτερο από το προηγούμενο μοντέλο.

  • Παρατηρούμε ελαφρώς μικρότερο σφάλμα πρόβλεψης (9.08) σε σχέση με το προηγούμενο μοντέλο (Residual standard error - RMSE).

  • Η μεταβλητή Latitude είναι στατιστικά σημαντική καθώς το t-value < 0.001 (***), σε αντίθεση με την μεταβλητή Longitude με t-value = 0.38.

Μοντέλο 4 - Αφαίρεση γεωφραφικού μήκους και προσθήκη ηλικίας ακινήτου

model4 <- lm(SQMprice ~ MRTdistance + NoConvinienceStores + Latitude + HouseAge, data = realEstate_train)
summary(model4)
## 
## Call:
## lm(formula = SQMprice ~ MRTdistance + NoConvinienceStores + Latitude + 
##     HouseAge, data = realEstate_train)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -34.494  -5.449  -1.214   5.105  34.870 
## 
## Coefficients:
##                       Estimate Std. Error t value Pr(>|t|)    
## (Intercept)         -5.963e+03  1.228e+03  -4.856 1.98e-06 ***
## MRTdistance         -3.844e-03  5.462e-04  -7.037 1.48e-11 ***
## NoConvinienceStores  1.206e+00  2.193e-01   5.500 8.49e-08 ***
## Latitude             2.405e+02  4.917e+01   4.891 1.68e-06 ***
## HouseAge            -3.017e-01  4.366e-02  -6.910 3.18e-11 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 8.413 on 284 degrees of freedom
## Multiple R-squared:  0.6101, Adjusted R-squared:  0.6046 
## F-statistic: 111.1 on 4 and 284 DF,  p-value: < 2.2e-16

Σχόλια

  • Το μοντέλο αυτό αποτελεί την πιο πλήρη και ακριβή εκδοχή γραμμικής παλινδρόμησης που έχουμε έως τώρα, ενσωματώνοντας τόσο δημογραφικές όσο και γεωγραφικές μεταβλητές. Εξηγεί το 61% της διακύμανσης της τιμής (Multiple R²) του ακινήτου, ποσοστό που είναι μεγαλύτερο από όλα τα προηγούμενα μοντέλα.

  • Παρατηρούμε μικρότερο σφάλμα πρόβλεψης (8.41) σε σχέση με τα προηγούμενα μοντέλα (Residual standard error - RMSE).

  • Η μεταβλητή HouseAge είναι στατιστικά σημαντική καθώς το t-value < 0.001 (***).

Σύγκριση Αποτελεσμάτων

Πίνακας RMSE και R² για τα Μοντέλα Γραμμικής Παλινδρόμησης
Model RMSE R_Squared
SQMprice ~ MRTdistance 9.71 0.4714
SQMprice ~ MRTdistance + NoConvinienceStores 9.27 0.5181
SQMprice ~ MRTdistance + NoConvinienceStores + Latitude + Longitude 9.00 0.5457
SQMprice ~ MRTdistance + NoConvinienceStores + Latitude + HouseAge 8.34 0.6101

Προβλέψεις Τιμών στο test set

Επιλέγουμε το μοντέλο 4 για τις προβλέψεις στο test set, καθώς αυτό έχει την μεγαλύτερη τιμή στο R² και το μικρότερο RMSE.

predictTest <- predict(model4, newdata = realEstate_test)
head(predictTest)
##       14       19       20       24       25       30 
## 29.85699 45.35872 50.17699 48.41746 34.70367 46.33334
cat("Μέση Τιμή: ", mean(predictTest), "\n", "Πραγματική Μέση Τιμή: ", mean(realEstate_test$SQMprice), "\n", "Εύρος Τιμών: ", range(predictTest))
## Μέση Τιμή:  38.50945 
##  Πραγματική Μέση Τιμή:  38.3776 
##  Εύρος Τιμών:  8.759522 54.51496
  • Η μέση προβλεπόμενη τιμή ανά τετραγωνικό μέτρο είναι 38.51, σχεδόν ίδια με τη πραγματική μέση τιμή των 38.38, κάτι που δείχνει την πολύ καλή ευθυγράμμιση του μοντέλου με τα πραγματικά δεδομένα.

  • Το μοντέλο προβλέπει τιμές από 8.76 έως 54.51 $/τ.μ., γεγονός που δείχνει καλή διακύμανση και ικανότητα του μοντέλου να ανταποκριθεί σε διαφορετικά προφίλ ακινήτων.

  • Οι τιμές όπως τα 50.18, 45.36, και 29.86 δείχνουν ότι το μοντέλο μπορεί να χειριστεί τόσο υψηλές όσο και πιο χαμηλές αξίες με σχετική ευελιξία.

SSE_test <- sum((predictTest - realEstate_test$SQMprice)^2)
SST_test <- sum((mean(realEstate_train$SQMprice) - realEstate_test$SQMprice)^2)
cat("R² = ", R2 <- 1 - SSE_test/SST_test, "\n", "RMSE = ", RMSE <- sqrt(SSE_test/nrow(realEstate_test)))
## R² =  0.4867067 
##  RMSE =  10.11759

Σχόλια

  • Παρατηρούμε πτώση του R², από 0.6101 στο train set σε 0.487 στο test set, κάτι που σημαίνει πως το μοντέλο δεν μπορεί να προβλέψει με την ίδια ακρίβεια δεδομένα εκτός εκπαίδευσης.

  • Παρατηρούμε αύξηση του RMSE, από 8.34 στο train set σε 10.12 στο test set, πράγμα που δείχνει ότι το μοντέλο κάνει πιο ανακριβείς προβλέψεις και περισσότερα λάθη όταν αντιμετωπίζει νέα δεδομένα.

  • Η πιο σύνθετη μορφή του μοντέλου με τις επιπλέον μεταβλητές (Latitude, HouseAge) δείχνει την καλύτερη επίδοση στο training set, αλλά ενδέχεται να χρειάζεται περαιτέρω κανονικοποίηση για τη βελτίωση της απόδοσής του στο test set.

Συμπεράσματα Πρόβλεψης

realEstate_test$Predicted_SQMprice <- predictTest

ggplot(realEstate_test, aes(x = Predicted_SQMprice, y = SQMprice)) +
  geom_point(color = "steelblue", alpha = 0.7, size = 3) +
  geom_smooth(method = "lm", se = FALSE, color = "tomato", linewidth = 1) +  
  geom_abline(intercept = 0, slope = 1, linetype = "dashed", color = "gray30") + labs(
    title = "Μοντέλο 4: Προβλεπόμενη vs Πραγματική Τιμή ανά τ.μ.(Test Set)",
    x = "Προβλεπόμενη Τιμή ($/τ.μ.)",
    y = "Πραγματική Τιμή ($/τ.μ.)",
    caption = "Διακεκομμένη Γραμμή = Τέλεια Πρόβλεψη"
  ) +
  theme_minimal(base_size = 14) +
  theme(
    plot.title = element_text(face = "bold", hjust = 0.5),
    panel.grid.minor = element_blank()
  ) +
  scale_x_continuous(limits = c(0, 60)) +
  scale_y_continuous(limits = c(0, 60))

Σχόλια

  • Κάθε σημείο στο διάγραμμα αντιπροσωπεύει ένα ακίνητο από το dataset. Ο άξονας y δείχνει την πραγματική τιμή του ακινήτου, ενώ ο άξονας x δείχνει την προβλεπόμενη τιμή από το μοντέλο.

  • Η διακεκομμένη γραμμή είναι η γραμμή ταύτισης (y = x). Αν ένα σημείο βρίσκεται πάνω σε αυτήν, σημαίνει ότι η πρόβλεψη του μοντέλου ήταν ακριβής. Η κόκκινη γραμμή είναι η πραγματική γραμμή παλινδρόμησης, δηλαδή η καλύτερη γραμμική προσαρμογή των σημείων.

  • Τα περισσότερα σημεία βρίσκονται κοντά στην κόκκινη διαγώνιο, γεγονός που δείχνει ότι το μοντέλο προβλέπει ικανοποιητικά τις τιμές των ακινήτων. Ωστόσο, υπάρχει κάποια διασπορά γύρω από τη διαγώνιο, που δείχνει σφάλματα πρόβλεψης για ορισμένα ακίνητα, ειδικά σε ακραίες τιμές. Η γραμμή παλινδρόμησης τείνει να έχει μικρότερη κλίση από τη γραμμή ταύτισης, κάτι που δείχνει πως το μοντέλο υποτιμά υψηλές και υπερεκτιμά χαμηλές τιμές.

  • Οι άξονες περιορίζονται στο διάστημα [0, 60], εστιάζοντας στο εύρος όπου βρίσκονται οι περισσότερες παρατηρήσεις.

  • Το γράφημα δείχνει ότι το μοντέλο αντιλαμβάνεται επαρκώς, αλλά όχι στον μέγιστο βαθμό, την τάση των τιμών, γεγονός που επιβεβαιώνεται και από τα μέτρια αποτελέσματα σε R² και RMSE στο test set.