🔹 Περιγραφή του συνόλου δεδομένων

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

Link for the dataset(Kaggle.com)

🔹 Προετοιμασία του συνόλου δεδομένων

  1. Μετατροπή των Inches και RAM.
    Στο αρχικό Dataset, τα attributes Inches, Weight και RAM ήταν τύπου Categorical, παρά το γεγονός ότι ήταν νούμερα.
    Έγινε η μετατροπή τους σε Numeric για την καλύτερη ερμηνεία του συνόλου.

  2. Μετατροπή των τιμών.
    Οι τιμές των φορητών υπολογιστών ήταν εκφρασμένες σε Ρουπία Ινδίας.
    Αυτές μετατράπηκαν σε ευρώ και έγινε στρογγυλοποίηση των 2 δεκαδικών στοιχείων για καλύτερη κατανόηση του συνόλου.

  3. Έλεγχος και χειρισμός ελλιπών τιμών.
    Τα αντικείμενα του συνόλου δεδομένων ήταν 1303.
    Μετά τον έλεγχο για διπλότυπα και την αφαίρεση των ελλιπών τιμών,
    έμειναν 1273 αντικείμενα.

    Εικόνα 1: OpenRefine Preproccesing Steps
    Εικόνα 1: OpenRefine Preproccesing Steps

🔹 Χαρακτηριστικά του συνόλου δεδομένων

kable(df, format = "html", align = "c", escape = FALSE) %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive"),
                full_width = FALSE, position = "center") %>%
  column_spec(3, bold = TRUE)
Χαρακτηριστικό Περιγραφή Τύπος
Εταιρεία Η μάρκα του φορητού υπολογιστή (π.χ. Dell, HP, Apple). Categorical
TypeName Η κατηγορία/ο τύπος του φορητού υπολογιστή (π.χ. Gaming, Ultrabook, Notebook). Categorical
Inches Το μέγεθος της οθόνης του φορητού υπολογιστή σε ίντσες. Numeric
ScreenResolution Η ανάλυση της οθόνης (π.χ. 1920x1080, 4K). Categorical
CPU Τα στοιχεία του επεξεργαστή (π.χ. Intel Core i5, AMD Ryzen 7). Categorical
RAM Η ποσότητα της μνήμης τυχαίας προσπέλασης (RAM) σε gigabytes (GB). Numeric
Μνήμη Ο τύπος και το μέγεθος του αποθηκευτικού χώρου (π.χ. 256 GB SSD, 1 TB HDD). Categorical
GPU Η μονάδα επεξεργασίας γραφικών (π.χ. NVIDIA GTX 1650, Intel HD Graphics). Categorical
Βάρος Το βάρος του φορητού υπολογιστή σε κιλά(kg). Numeric
Λειτουργικό Σύστημα Το λειτουργικό σύστημα του φορητού υπολογιστή (π.χ. Windows, macOS, Linux). Categorical
Τιμή Η τιμή του φορητού υπολογιστή σε Ευρώ. Numeric

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

⦿ Γράφημα 1: Σύγκριση τιμής και εταιρίας παραγωγής λάπτοπ

#Price vs Company
ggplot(laptopData, aes(x = Company, y = Price, color = Company)) +
  geom_boxplot(alpha = 0.6) +
  labs(title = "Κατανομή Τιμών ανά Εταιρεία",
       x = "Εταιρεία",
       y = "Τιμή (€)") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

→ Οι Apple και Razer έχουν τις υψηλότερες μέσες τιμές, ενώ Acer και HP είναι πιο προσιτές.

→ Η Lenovo και Dell έχουν μεγάλο εύρος τιμών, καλύπτοντας διάφορα budget.

⦿ Γράφημα 2: Σύγκριση βάρους των φορητών υπολογιστών

#Histogram for Weight
ggplot(laptopData, aes(x = Weight)) +
  geom_histogram(binwidth = 0.5, fill = "dodgerblue",
                 color = "black", alpha = 0.7) +
  labs(title = "Distribution of Laptop Weights",
       x = "Weight (kg)",
       y = "Count") +
  theme_minimal()

→ Οι περισσότεροι φορητοί υπολογιστές είναι κάτω από 2 κιλά, αυτό δείχνει μια τάση προς ελαφριές και φορητές συσκευές.

→ Υπάρχουν ορισμένες ακραίες τιμές γύρω στα 6-10 kg, οι οποίες θα μπορούσαν να είναι σφάλματα καταχώρησης δεδομένων ή εξειδικευμένοι φορητοί υπολογιστές.

⦿ Γράφημα 3: Σύγκριση μέσου όρου τιμής ανά μέγεθος οθόνης

#Screen Size vs Average Price
# Group by screen size and calculate average price
avg_price_by_size <- laptopData %>%
  group_by(Inches) %>%
  summarise(AveragePrice = mean(Price, na.rm = TRUE))

# Bar chart 
ggplot(avg_price_by_size, aes(x = factor(Inches),
                              y = AveragePrice)) +
  geom_bar(stat = "identity", fill = "steelblue", color = "black", 
           alpha = 0.7) +
  labs(title = "Average Laptop Price by Screen Size",
       x = "Screen Size (Inches)",
       y = "Average Price ($)") +
  theme_minimal()

→ Οι φορητοί υπολογιστές με οθόνες 18,4’’ και 27,3’’ έχουν τις υψηλότερες μέσες τιμές. Πρόκειται πιθανότατα για gaming φορητούς υπολογιστές, high-end workstations ή εξειδικευμένες συσκευές.

→ Παρά το γεγονός ότι είναι ένα από τα πιο συνηθισμένα μεγέθη φορητών υπολογιστών, οι 15,6’’ έχουν μέση τιμή χαμηλότερη από πολλά άλλα μεγέθη.

🔹 Mοντέλα γραμμικής παλινδρόμησης

Με μία μεταβλητή

#Price vs RAM
model1_1 <- lm(laptopData$Price ~ laptopData$Ram, data = laptopData)
summary(model1_1)
## 
## Call:
## lm(formula = laptopData$Price ~ laptopData$Ram, data = laptopData)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -2814.23  -184.48   -57.16   141.87  1667.70 
## 
## Coefficients:
##                Estimate Std. Error t value Pr(>|t|)    
## (Intercept)     223.004     14.727   15.14   <2e-16 ***
## laptopData$Ram   48.946      1.454   33.66   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 288.6 on 1270 degrees of freedom
## Multiple R-squared:  0.4715, Adjusted R-squared:  0.4711 
## F-statistic:  1133 on 1 and 1270 DF,  p-value: < 2.2e-16
#Price vs Inches
model1_2 <- lm(laptopData$Price ~ laptopData$Inches, data = laptopData)
summary(model1_2)
## 
## Call:
## lm(formula = laptopData$Price ~ laptopData$Inches, data = laptopData)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -625.19 -300.30  -83.19  207.73 2800.04 
## 
## Coefficients:
##                   Estimate Std. Error t value Pr(>|t|)    
## (Intercept)        499.914     86.824   5.758 1.07e-08 ***
## laptopData$Inches    9.076      5.691   1.595    0.111    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 396.5 on 1270 degrees of freedom
## Multiple R-squared:  0.001998,   Adjusted R-squared:  0.001213 
## F-statistic: 2.543 on 1 and 1270 DF,  p-value: 0.111

Με περισσότερες μεταβλητές

#Price vs Ram and Inches
model2_1 <- lm(laptopData$Price ~ laptopData$Ram + laptopData$Inches, data = laptopData)
summary(model2_1)
## 
## Call:
## lm(formula = laptopData$Price ~ laptopData$Ram + laptopData$Inches, 
##     data = laptopData)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -2864.68  -182.82   -58.01   131.39  1678.60 
## 
## Coefficients:
##                   Estimate Std. Error t value Pr(>|t|)    
## (Intercept)        384.218     63.127   6.086 1.53e-09 ***
## laptopData$Ram      49.493      1.466  33.772  < 2e-16 ***
## laptopData$Inches  -10.961      4.174  -2.626  0.00875 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 287.9 on 1269 degrees of freedom
## Multiple R-squared:  0.4744, Adjusted R-squared:  0.4736 
## F-statistic: 572.7 on 2 and 1269 DF,  p-value: < 2.2e-16
#Price vs Ram and Inches and Weight
model2_2 <- lm(laptopData$Price ~ laptopData$Ram + laptopData$Inches + laptopData$Weight, data = laptopData)
summary(model2_2)
## 
## Call:
## lm(formula = laptopData$Price ~ laptopData$Ram + laptopData$Inches + 
##     laptopData$Weight, data = laptopData)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -2854.92  -182.65   -58.14   132.19  1677.47 
## 
## Coefficients:
##                   Estimate Std. Error t value Pr(>|t|)    
## (Intercept)        387.949     64.510   6.014 2.37e-09 ***
## laptopData$Ram      49.349      1.513  32.607  < 2e-16 ***
## laptopData$Inches  -11.758      4.759  -2.470   0.0136 *  
## laptopData$Weight    4.524     11.881   0.381   0.7034    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 288 on 1267 degrees of freedom
##   (1 observation deleted due to missingness)
## Multiple R-squared:  0.4745, Adjusted R-squared:  0.4733 
## F-statistic: 381.4 on 3 and 1267 DF,  p-value: < 2.2e-16

🔹 Σύγκριση μοντέλων – Correlation, SSE και R-squared

# Choose only the numeric variables.
numeric_data <- laptopData %>%
  select(-"Unnamed..0") %>%
  select(where(is.numeric)) %>%
  drop_na()

# Correlation matrix
cor_matrix <- cor(numeric_data)
knitr::kable(
  cor_matrix,
  digits = 4,  # Round to 4 decimal places
  caption = "Correlation Matrix of Numeric Variables",
  align = c("l", "l", "l", "l", "l")
)
Correlation Matrix of Numeric Variables
Inches Ram Weight Price
Inches 1.0000 0.1421 0.4950 0.0451
Ram 0.1421 1.0000 0.2833 0.6868
Weight 0.4950 0.2833 1.0000 0.1767
Price 0.0451 0.6868 0.1767 1.0000
# Correlation Heatmap
corrplot(cor_matrix, method = "color", type = "upper", tl.cex = 0.8)

  1. Η τιμή συσχετίζεται έντονα με τη μνήμη RAM (0,69), υποδεικνύοντας ότι οι φορητοί υπολογιστές με μεγαλύτερη μνήμη RAM τείνουν να κοστίζουν περισσότερο.

  2. Οι ίντσες και το βάρος παρουσιάζουν μέτρια θετική συσχέτιση (0,49), υποδηλώνοντας ότι οι μεγαλύτερες οθόνες είναι βαρύτερες, ενώ άλλες σχέσεις (π.χ., τιμή έναντι ιντσών) είναι αδύναμες.

# Calculate SSE and R²
sse1_1 <- sum(model1_1$residuals^2)
sse1_2 <- sum(model1_2$residuals^2)
sse2_1 <- sum(model2_1$residuals^2)
sse2_2 <- sum(model2_2$residuals^2)

r1_1 <- summary(model1_1)$r.squared
r1_2 <- summary(model1_2)$r.squared
r2_1 <- summary(model2_1)$r.squared
r2_2 <- summary(model2_2)$r.squared


# Create a data frame with results
results_df <- data.frame(
 Model = c("Price ~ Ram", "Price ~ Inches", "Price ~ RAM + Inches", "Price ~ Ram + Inches + Weight"),
  SSE = c(round(sse1_1, 2), round(sse1_2, 2), round(sse2_1, 2), round(sse2_2, 2)),
  R_Squared = c(round(r1_1, 4), round(r1_2, 4), round(r2_1, 4), round(r2_2, 4))
)

# Display results as a markdown table
knitr::kable(results_df, 
             caption = "Comparison of Linear Regression Models",
             align = c("l", "l", "l"))
Comparison of Linear Regression Models
Model SSE R_Squared
Price ~ Ram 105743233 0.4715
Price ~ Inches 199695895 0.0020
Price ~ RAM + Inches 105171755 0.4744
Price ~ Ram + Inches + Weight 105124732 0.4745
  1. Το μοντέλο τιμή ~ Ram έχει την καλύτερη απόδοση (R² = 0,47), επαληθεύοντας ότι η RAM επηρεάζει έντονα την τιμή.

  2. Η προσθήκη ιντσών ή βάρους βελτιώνει ελάχιστα το μοντέλο (το R² αυξάνεται μόνο σε 0,4745), πράγμα που σημαίνει ότι αυτές οι μεταβλητές προσθέτουν ελάχιστη προβλεπτική δύναμη.

#Best model chart
ggplot(laptopData, aes(x = Ram, y = Price)) +
  geom_point() + 
  labs(x = "Ram + Inches + Weight", y = "Price") +
  geom_abline(aes(intercept = coef(model2_2)[1], 
                  slope = coef(model2_2)[2]), colour = "red")