1 Εισαγωγή

1.1 Φόρτωση Βιβλιοθηκών

# Εγκατάσταση πακέτων (αν δεν υπάρχουν ήδη)
# install.packages(c("tidyverse", "corrplot", "scales", "knitr", "kableExtra"))

library(tidyverse)   # Περιλαμβάνει ggplot2, dplyr, readr κ.λπ.
library(corrplot)    # Πίνακας συσχετίσεων
library(scales)      # Μορφοποίηση αξόνων
library(knitr)       # Πίνακες σε Markdown
library(kableExtra)  # Βελτιωμένοι πίνακες

1.2 Φόρτωση Δεδομένων

# Φόρτωση του dataset — αλλάξτε το path ανάλογα με τη θέση του αρχείου σας
df <- read_csv("ks-projects-201801.csv")

# Πρώτη ματιά στα δεδομένα
glimpse(df)
## Rows: 378,661
## Columns: 15
## $ ID               <dbl> 1000002330, 1000003930, 1000004038, 1000007540, 10000…
## $ name             <chr> "The Songs of Adelaide & Abullah", "Greeting From Ear…
## $ category         <chr> "Poetry", "Narrative Film", "Narrative Film", "Music"…
## $ main_category    <chr> "Publishing", "Film & Video", "Film & Video", "Music"…
## $ currency         <chr> "GBP", "USD", "USD", "USD", "USD", "USD", "USD", "USD…
## $ deadline         <date> 2015-10-09, 2017-11-01, 2013-02-26, 2012-04-16, 2015…
## $ goal             <dbl> 1000, 30000, 45000, 5000, 19500, 50000, 1000, 25000, …
## $ launched         <dttm> 2015-08-11 12:12:28, 2017-09-02 04:43:57, 2013-01-12…
## $ pledged          <dbl> 0.00, 2421.00, 220.00, 1.00, 1283.00, 52375.00, 1205.…
## $ state            <chr> "failed", "failed", "failed", "failed", "canceled", "…
## $ backers          <dbl> 0, 15, 3, 1, 14, 224, 16, 40, 58, 43, 0, 100, 0, 0, 7…
## $ country          <chr> "GB", "US", "US", "US", "US", "US", "US", "US", "US",…
## $ `usd pledged`    <dbl> 0.00, 100.00, 220.00, 1.00, 1283.00, 52375.00, 1205.0…
## $ usd_pledged_real <dbl> 0.00, 2421.00, 220.00, 1.00, 1283.00, 52375.00, 1205.…
## $ usd_goal_real    <dbl> 1533.95, 30000.00, 45000.00, 5000.00, 19500.00, 50000…

2 Περιγραφή του Dataset και της Πηγής

2.1 Πηγή Δεδομένων

Το dataset “Kickstarter Projects” προέρχεται από την πλατφόρμα Kaggle και δημιουργήθηκε από τον χρήστη Mickaël Mouillé. Περιέχει πληροφορίες για περισσότερα από 378.000 projects που δημοσιεύθηκαν στην πλατφόρμα crowdfunding Kickstarter μέχρι τον Ιανουάριο 2018.

Το Kickstarter είναι μια από τις μεγαλύτερες πλατφόρμες crowdfunding παγκοσμίως. Οι δημιουργοί (creators) δημοσιεύουν projects με έναν στόχο χρηματοδότησης (goal) και μια προθεσμία (deadline). Αν το ποσό που συγκεντρώνεται από τους υποστηρικτές (backers) ξεπεράσει τον στόχο, το project θεωρείται επιτυχημένο — αλλιώς αποτυγχάνει (μοντέλο “all-or-nothing”).

2.2 Αιτιολόγηση Επιλογής

Η επιλογή αυτού του dataset είναι ιδιαίτερα κατάλληλη για το μάθημα της Επιχειρηματικής Αναλυτικής για τους εξής λόγους:

  • Επιχειρηματική συνάφεια: Το crowdfunding αποτελεί σύγχρονο μοντέλο χρηματοδότησης νεοφυών επιχειρήσεων και δημιουργικών projects.
  • Πλούσιες μεταβλητές: Συνδυάζει αριθμητικά και κατηγορικά δεδομένα, κατάλληλα για πολύπλευρη ανάλυση.
  • Αποφάσεις βασισμένες σε δεδομένα: Η ανάλυση μπορεί να οδηγήσει σε πρακτικά συμπεράσματα για τη στρατηγική δημιουργίας ενός crowdfunding campaign.
  • Μεγάλο μέγεθος δείγματος: Πάνω από 378.000 εγγραφές εξασφαλίζουν στατιστικά αξιόπιστα αποτελέσματα.

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

  1. Ποιοι παράγοντες συμβάλλουν στην επιτυχία ενός Kickstarter project; (π.χ. κατηγορία, ύψος στόχου, χώρα προέλευσης)
  2. Ποια είναι η σχέση μεταξύ του στόχου χρηματοδότησης (goal) και του ποσού που συγκεντρώνεται (pledged);
  3. Ποιες κατηγορίες projects έχουν τα υψηλότερα ποσοστά επιτυχίας;
  4. Πώς επηρεάζει ο αριθμός των υποστηρικτών (backers) την τελική χρηματοδότηση;
  5. Υπάρχει βέλτιστο εύρος στόχου χρηματοδότησης που μεγιστοποιεί τις πιθανότητες επιτυχίας;

3 Προετοιμασία Δεδομένων

# Μετονομασία στηλών για ευκολία
colnames(df) <- c("ID", "name", "category", "main_category", "currency",
                   "deadline", "goal", "launched", "pledged", "state",
                   "backers", "country", "usd_pledged", "usd_pledged_real",
                   "usd_goal_real")

# Μετατροπή ημερομηνιών
# Η στήλη deadline είναι σε μορφή "YYYY-MM-DD" και η launched σε "YYYY-MM-DD HH:MM:SS"
df$deadline <- as.Date(df$deadline)
df$launched <- as.Date(as.character(df$launched))

# Υπολογισμός διάρκειας campaign σε ημέρες
df$duration_days <- as.numeric(df$deadline - df$launched)

# Υπολογισμός ποσοστού χρηματοδότησης (funding ratio)
df$funding_ratio <- ifelse(df$usd_goal_real > 0,
                           df$usd_pledged_real / df$usd_goal_real, NA)

# Δημιουργία δυαδικής μεταβλητής επιτυχίας
df$success <- ifelse(df$state == "successful", 1, 0)

# Αφαίρεση projects με κατάσταση "live" ή "undefined"
df_clean <- df %>%
  filter(state %in% c("successful", "failed", "canceled", "suspended"))

# Αφαίρεση πιθανών αρνητικών/μηδενικών διαρκειών
df_clean <- df_clean %>%
  filter(duration_days > 0)

# Εμφάνιση δομής καθαρισμένου dataset
cat("Διαστάσεις καθαρισμένου dataset:", dim(df_clean), "\n")
## Διαστάσεις καθαρισμένου dataset: 372300 18
head(df_clean) %>% kable(caption = "Πρώτες γραμμές του dataset") %>%
  kable_styling(bootstrap_options = c("striped", "hover"), full_width = FALSE)
Πρώτες γραμμές του dataset
ID name category main_category currency deadline goal launched pledged state backers country usd_pledged usd_pledged_real usd_goal_real duration_days funding_ratio success
1000002330 The Songs of Adelaide & Abullah Poetry Publishing GBP 2015-10-09 1000 2015-08-11 0 failed 0 GB 0 0 1533.95 59 0.0000000 0
1000003930 Greeting From Earth: ZGAC Arts Capsule For ET Narrative Film Film & Video USD 2017-11-01 30000 2017-09-02 2421 failed 15 US 100 2421 30000.00 60 0.0807000 0
1000004038 Where is Hank? Narrative Film Film & Video USD 2013-02-26 45000 2013-01-12 220 failed 3 US 220 220 45000.00 45 0.0048889 0
1000007540 ToshiCapital Rekordz Needs Help to Complete Album Music Music USD 2012-04-16 5000 2012-03-17 1 failed 1 US 1 1 5000.00 30 0.0002000 0
1000011046 Community Film Project: The Art of Neighborhood Filmmaking Film & Video Film & Video USD 2015-08-29 19500 2015-07-04 1283 canceled 14 US 1283 1283 19500.00 56 0.0657949 0
1000014025 Monarch Espresso Bar Restaurants Food USD 2016-04-01 50000 2016-02-26 52375 successful 224 US 52375 52375 50000.00 35 1.0475000 1

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

Ο παρακάτω πίνακας παρουσιάζει τις μεταβλητές του dataset μαζί με τον τύπο τους, το εύρος τιμών και τη μονάδα μέτρησης:

var_info <- data.frame(
  Μεταβλητή = c("ID", "name", "category", "main_category", "currency",
                 "deadline", "goal", "launched", "pledged", "state",
                 "backers", "country", "usd_pledged_real",
                 "usd_goal_real", "duration_days", "funding_ratio", "success"),
  Τύπος = c("Ακέραιος", "Κείμενο", "Κατηγορική", "Κατηγορική", "Κατηγορική",
             "Ημερομηνία", "Αριθμητική (συνεχής)", "Ημερομηνία",
             "Αριθμητική (συνεχής)", "Κατηγορική",
             "Ακέραιος (διακριτή)", "Κατηγορική", "Αριθμητική (συνεχής)",
             "Αριθμητική (συνεχής)", "Ακέραιος (διακριτή)",
             "Αριθμητική (συνεχής)", "Δυαδική (0/1)"),
  Μονάδα_Μέτρησης = c(
    "-", "-", "-", "-", "-",
    "YYYY-MM-DD", "Τοπικό νόμισμα", "YYYY-MM-DD", "Τοπικό νόμισμα", "-",
    "Άτομα", "-", "USD ($)",
    "USD ($)", "Ημέρες", "Αδιάστατος λόγος", "-"
  ),
  Περιγραφή = c(
    "Μοναδικό αναγνωριστικό project",
    "Όνομα του project",
    "Υποκατηγορία (π.χ. Documentary, Rock, Gadgets)",
    "Κύρια κατηγορία (π.χ. Film & Video, Music, Technology)",
    "Νόμισμα χρηματοδότησης (π.χ. USD, GBP, EUR)",
    "Προθεσμία χρηματοδότησης",
    "Στόχος χρηματοδότησης στο αρχικό νόμισμα",
    "Ημερομηνία εκκίνησης του campaign",
    "Ποσό που συγκεντρώθηκε στο αρχικό νόμισμα",
    "Κατάσταση: successful, failed, canceled, suspended",
    "Αριθμός υποστηρικτών (backers)",
    "Χώρα προέλευσης (π.χ. US, GB, CA)",
    "Ποσό σε USD (μετατροπή μέσω fixer.io API)",
    "Στόχος σε USD (μετατροπή μέσω fixer.io API)",
    "Διάρκεια campaign (deadline − launched)",
    "Λόγος χρηματοδότησης (pledged / goal σε USD)",
    "1 = Επιτυχές, 0 = Μη επιτυχές"
  )
)

var_info %>%
  kable(caption = "Περιγραφή μεταβλητών του dataset",
        col.names = c("Μεταβλητή", "Τύπος", "Μονάδα Μέτρησης", "Περιγραφή")) %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = TRUE) %>%
  column_spec(1, bold = TRUE)
Περιγραφή μεταβλητών του dataset
Μεταβλητή Τύπος Μονάδα Μέτρησης Περιγραφή
ID Ακέραιος
Μοναδικό αναγνωριστικό project
name Κείμενο
Όνομα του project
category Κατηγορική
Υποκατηγορία (π.χ. Documentary, Rock, Gadgets)
main_category Κατηγορική
Κύρια κατηγορία (π.χ. Film & Video, Music, Technology)
currency Κατηγορική
Νόμισμα χρηματοδότησης (π.χ. USD, GBP, EUR)
deadline Ημερομηνία YYYY-MM-DD Προθεσμία χρηματοδότησης
goal Αριθμητική (συνεχής) Τοπικό νόμισμα Στόχος χρηματοδότησης στο αρχικό νόμισμα
launched Ημερομηνία YYYY-MM-DD Ημερομηνία εκκίνησης του campaign
pledged Αριθμητική (συνεχής) Τοπικό νόμισμα Ποσό που συγκεντρώθηκε στο αρχικό νόμισμα
state Κατηγορική
Κατάσταση: successful, failed, canceled, suspended
backers Ακέραιος (διακριτή) Άτομα Αριθμός υποστηρικτών (backers)
country Κατηγορική
Χώρα προέλευσης (π.χ. US, GB, CA)
usd_pledged_real Αριθμητική (συνεχής) USD (\() </td> <td style="text-align:left;"> Ποσό σε USD (μετατροπή μέσω fixer.io API) </td> </tr> <tr> <td style="text-align:left;font-weight: bold;"> usd_goal_real </td> <td style="text-align:left;"> Αριθμητική (συνεχής) </td> <td style="text-align:left;"> USD (\)) Στόχος σε USD (μετατροπή μέσω fixer.io API)
duration_days Ακέραιος (διακριτή) Ημέρες Διάρκεια campaign (deadline − launched)
funding_ratio Αριθμητική (συνεχής) Αδιάστατος λόγος Λόγος χρηματοδότησης (pledged / goal σε USD)
success Δυαδική (0/1)
1 = Επιτυχές, 0 = Μη επιτυχές
# Σύνοψη αριθμητικών μεταβλητών
summary(df_clean %>%
          select(goal, pledged, backers, usd_pledged_real,
                 usd_goal_real, duration_days, funding_ratio))
##       goal             pledged            backers         usd_pledged_real   
##  Min.   :0.00e+00   Min.   :       0   Min.   :     0.0   Min.   :0.000e+00  
##  1st Qu.:2.00e+03   1st Qu.:      31   1st Qu.:     2.0   1st Qu.:3.120e+01  
##  Median :5.50e+03   Median :     625   Median :    12.0   Median :6.280e+02  
##  Mean   :4.93e+04   Mean   :    9758   Mean   :   106.9   Mean   :9.148e+03  
##  3rd Qu.:1.65e+04   3rd Qu.:    4092   3rd Qu.:    57.0   3rd Qu.:4.066e+03  
##  Max.   :1.00e+08   Max.   :20338986   Max.   :219382.0   Max.   :2.034e+07  
##  usd_goal_real       duration_days      funding_ratio      
##  Min.   :        0   Min.   :    1.00   Min.   :0.000e+00  
##  1st Qu.:     2000   1st Qu.:   30.00   1st Qu.:5.000e-03  
##  Median :     5500   Median :   30.00   Median :1.350e-01  
##  Mean   :    45722   Mean   :   34.46   Mean   :3.264e+00  
##  3rd Qu.:    15985   3rd Qu.:   37.00   3rd Qu.:1.066e+00  
##  Max.   :166361391   Max.   :16739.00   Max.   :1.043e+05
# Κατανομή κατηγορικών μεταβλητών
cat("=== Κατανομή State ===\n")
## === Κατανομή State ===
table(df_clean$state)
## 
##   canceled     failed successful  suspended 
##      38779     197719     133956       1846
cat("\n=== Κατανομή Main Category (Top 10) ===\n")
## 
## === Κατανομή Main Category (Top 10) ===
sort(table(df_clean$main_category), decreasing = TRUE)[1:10]
## 
## Film & Video        Music   Publishing        Games   Technology       Design 
##        62399        49403        39113        34943        32189        29763 
##          Art         Food      Fashion      Theater 
##        27959        24418        22563        10871
cat("\n=== Κατανομή Country (Top 10) ===\n")
## 
## === Κατανομή Country (Top 10) ===
sort(table(df_clean$country), decreasing = TRUE)[1:10]
## 
##     US     GB     CA     AU     DE     FR     NL     IT     ES     SE 
## 290887  33393  14624   7769   4096   2887   2833   2802   2224   1737

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

5.1 Μέτρα Κεντρικής Τάσης

Υπολογίζουμε τον μέσο όρο, τη διάμεσο και την επικρατούσα τιμή (mode) για τις βασικές αριθμητικές μεταβλητές.

# Συνάρτηση υπολογισμού mode (η R δεν έχει ενσωματωμένη)
calc_mode <- function(x) {
  x <- na.omit(x)
  ux <- unique(x)
  ux[which.max(tabulate(match(x, ux)))]
}

# Επιλογή αριθμητικών μεταβλητών
numeric_vars <- c("usd_goal_real", "usd_pledged_real", "backers",
                   "duration_days", "funding_ratio")

central_stats <- data.frame(
  Μεταβλητή = numeric_vars,
  Μέσος_Όρος = sapply(numeric_vars, function(v)
    round(mean(df_clean[[v]], na.rm = TRUE), 2)),
  Διάμεσος = sapply(numeric_vars, function(v)
    round(median(df_clean[[v]], na.rm = TRUE), 2)),
  Επικρατούσα_Τιμή = sapply(numeric_vars, function(v)
    round(calc_mode(df_clean[[v]]), 2))
)
rownames(central_stats) <- NULL

central_stats %>%
  kable(caption = "Μέτρα Κεντρικής Τάσης",
        col.names = c("Μεταβλητή", "Μέσος Όρος", "Διάμεσος",
                       "Επικρατούσα Τιμή (Mode)")) %>%
  kable_styling(bootstrap_options = c("striped", "hover"), full_width = FALSE)
Μέτρα Κεντρικής Τάσης
Μεταβλητή Μέσος Όρος Διάμεσος Επικρατούσα Τιμή (Mode)
usd_goal_real 45721.62 5500.00 5000
usd_pledged_real 9148.41 628.00 0
backers 106.91 12.00 0
duration_days 34.46 30.00 30
funding_ratio 3.26 0.14 0

Σχολιασμός: Παρατηρούμε σημαντική διαφορά μεταξύ μέσου όρου και διαμέσου, ιδιαίτερα στις μεταβλητές usd_goal_real και usd_pledged_real. Αυτό υποδεικνύει ότι οι κατανομές είναι έντονα θετικά ασύμμετρες (right-skewed), με λίγα projects να έχουν πολύ υψηλούς στόχους ή χρηματοδοτήσεις που ανεβάζουν τον μέσο όρο. Η διάμεσος αποτελεί πιο αξιόπιστο μέτρο κεντρικής τάσης σε αυτή την περίπτωση.

5.2 Μέτρα Διασποράς

dispersion_stats <- data.frame(
  Μεταβλητή = numeric_vars,
  Τυπική_Απόκλιση = sapply(numeric_vars, function(v)
    format(round(sd(df_clean[[v]], na.rm = TRUE), 2),
           big.mark = ",", scientific = FALSE)),
  Διακύμανση = sapply(numeric_vars, function(v)
    format(round(var(df_clean[[v]], na.rm = TRUE), 2),
           big.mark = ",", scientific = FALSE)),
  Ελάχιστο = sapply(numeric_vars, function(v)
    round(min(df_clean[[v]], na.rm = TRUE), 2)),
  Μέγιστο = sapply(numeric_vars, function(v)
    format(round(max(df_clean[[v]], na.rm = TRUE), 2),
           big.mark = ",", scientific = FALSE)),
  Εύρος = sapply(numeric_vars, function(v)
    format(round(max(df_clean[[v]], na.rm = TRUE) -
                   min(df_clean[[v]], na.rm = TRUE), 2),
           big.mark = ",", scientific = FALSE))
)
rownames(dispersion_stats) <- NULL

dispersion_stats %>%
  kable(caption = "Μέτρα Διασποράς",
        col.names = c("Μεταβλητή", "Τυπική Απόκλιση", "Διακύμανση",
                       "Ελάχιστο", "Μέγιστο", "Εύρος")) %>%
  kable_styling(bootstrap_options = c("striped", "hover"), full_width = FALSE)
Μέτρα Διασποράς
Μεταβλητή Τυπική Απόκλιση Διακύμανση Ελάχιστο Μέγιστο Εύρος
usd_goal_real 1,151,326 1,325,552,342,251 0.01 166,361,391 166,361,391
usd_pledged_real 91,703.45 8,409,523,473 0.00 20,338,986 20,338,986
backers 914.24 835,827.1 0.00 219,382 219,382
duration_days 66.45 4,415.45 1.00 16,739 16,738
funding_ratio 269.08 72,403.5 0.00 104,277.9 104,277.9

Σχολιασμός: Η πολύ υψηλή τυπική απόκλιση σε σχέση με τον μέσο όρο (ιδιαίτερα στο usd_pledged_real και usd_goal_real) επιβεβαιώνει τη μεγάλη ετερογένεια των projects στην πλατφόρμα — από μικρά ατομικά projects μέχρι μεγάλα εγχειρήματα εκατομμυρίων δολαρίων. Ο υψηλός συντελεστής μεταβλητότητας (CV = SD / Mean) υποδεικνύει ότι οι τιμές διαφοροποιούνται δραματικά γύρω από τον μέσο.

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

6.1 Πίνακας Συσχετίσεων

# Επιλογή αριθμητικών μεταβλητών για τον πίνακα συσχετίσεων
cor_vars <- c("usd_goal_real", "usd_pledged_real", "backers",
              "duration_days", "funding_ratio", "success")

cor_matrix <- cor(df_clean[, cor_vars], use = "complete.obs")

# Εμφάνιση πίνακα
round(cor_matrix, 3) %>%
  kable(caption = "Πίνακας Συσχετίσεων (Pearson)") %>%
  kable_styling(bootstrap_options = c("striped", "hover"), full_width = FALSE)
Πίνακας Συσχετίσεων (Pearson)
usd_goal_real usd_pledged_real backers duration_days funding_ratio success
usd_goal_real 1.000 0.006 0.005 0.004 0.000 -0.024
usd_pledged_real 0.006 1.000 0.752 0.001 0.009 0.111
backers 0.005 0.752 1.000 -0.001 0.017 0.129
duration_days 0.004 0.001 -0.001 1.000 0.000 -0.026
funding_ratio 0.000 0.009 0.017 0.000 1.000 0.015
success -0.024 0.111 0.129 -0.026 0.015 1.000
corrplot(cor_matrix,
         method = "color",
         type = "upper",
         addCoef.col = "black",
         number.cex = 0.8,
         tl.col = "black",
         tl.srt = 45,
         col = colorRampPalette(c("#E74C3C", "white", "#2E86C1"))(200),
         title = "Πίνακας Συσχετίσεων Αριθμητικών Μεταβλητών",
         mar = c(0, 0, 2, 0))
Οπτικοποίηση πίνακα συσχετίσεων

Οπτικοποίηση πίνακα συσχετίσεων

6.2 Ερμηνεία Συσχετίσεων

# Εμφάνιση σημαντικότερων συσχετίσεων
cor_df <- as.data.frame(as.table(cor_matrix))
names(cor_df) <- c("Μεταβλητή_1", "Μεταβλητή_2", "Συσχέτιση")

# Φιλτράρισμα: χωρίς διαγώνια, μοναδικά ζεύγη, ταξινομημένα κατά |r|
cor_df <- cor_df %>%
  filter(as.character(Μεταβλητή_1) < as.character(Μεταβλητή_2)) %>%
  arrange(desc(abs(Συσχέτιση)))

cor_df %>%
  mutate(
    Συσχέτιση = round(Συσχέτιση, 3),
    Ένταση = case_when(
      abs(Συσχέτιση) >= 0.7 ~ "Ισχυρή",
      abs(Συσχέτιση) >= 0.4 ~ "Μέτρια",
      abs(Συσχέτιση) >= 0.2 ~ "Ασθενής",
      TRUE ~ "Αμελητέα"
    )
  ) %>%
  kable(caption = "Ζεύγη μεταβλητών ταξινομημένα κατά απόλυτη συσχέτιση") %>%
  kable_styling(bootstrap_options = c("striped", "hover"), full_width = FALSE)
Ζεύγη μεταβλητών ταξινομημένα κατά απόλυτη συσχέτιση
Μεταβλητή_1 Μεταβλητή_2 Συσχέτιση Ένταση
backers usd_pledged_real 0.752 Ισχυρή
backers success 0.129 Αμελητέα
success usd_pledged_real 0.111 Αμελητέα
duration_days success -0.026 Αμελητέα
success usd_goal_real -0.024 Αμελητέα
backers funding_ratio 0.017 Αμελητέα
funding_ratio success 0.015 Αμελητέα
funding_ratio usd_pledged_real 0.009 Αμελητέα
usd_goal_real usd_pledged_real 0.006 Αμελητέα
backers usd_goal_real 0.005 Αμελητέα
duration_days usd_goal_real 0.004 Αμελητέα
duration_days usd_pledged_real 0.001 Αμελητέα
backers duration_days -0.001 Αμελητέα
funding_ratio usd_goal_real 0.000 Αμελητέα
duration_days funding_ratio 0.000 Αμελητέα

Ερμηνεία:

  • backers ↔︎ usd_pledged_real: Αναμένεται ισχυρή θετική συσχέτιση — περισσότεροι υποστηρικτές σημαίνουν μεγαλύτερο ποσό χρηματοδότησης.
  • funding_ratio ↔︎ success: Θετική συσχέτιση — τα επιτυχημένα projects ξεπερνούν τον στόχο τους (ratio > 1).
  • backers ↔︎ success: Θετική συσχέτιση — τα επιτυχημένα projects προσελκύουν σημαντικά περισσότερους υποστηρικτές.
  • usd_goal_real ↔︎ success: Αναμένεται αρνητική συσχέτιση — projects με πολύ υψηλούς στόχους τείνουν να αποτυγχάνουν συχνότερα.
  • duration_days: Η διάρκεια του campaign δεν φαίνεται να σχετίζεται ισχυρά με καμία άλλη μεταβλητή.

7 Διαγράμματα

7.1 Scatterplot: Στόχος vs Χρηματοδότηση

# Χρησιμοποιούμε δείγμα και log scale λόγω μεγάλου εύρους τιμών
# Φιλτράρουμε τιμές > 0 αφού χρησιμοποιούμε λογαριθμική κλίμακα
set.seed(42)
df_sample <- df_clean %>%
  filter(usd_goal_real > 0, usd_pledged_real > 0) %>%
  slice_sample(n = 5000)

ggplot(df_sample, aes(x = usd_goal_real, y = usd_pledged_real, color = state)) +
  geom_point(alpha = 0.4, size = 1.5) +
  scale_x_log10(labels = dollar_format()) +
  scale_y_log10(labels = dollar_format()) +
  geom_abline(intercept = 0, slope = 1, linetype = "dashed",
              color = "gray40", linewidth = 0.8) +
  labs(
    title = "Σχέση Στόχου Χρηματοδότησης και Ποσού που Συγκεντρώθηκε",
    subtitle = "Η διακεκομμένη γραμμή δείχνει το σημείο ισορροπίας (goal = pledged)",
    x = "Στόχος Χρηματοδότησης (USD, log scale)",
    y = "Ποσό Χρηματοδότησης (USD, log scale)",
    color = "Κατάσταση"
  ) +
  scale_color_manual(values = c("successful" = "#27AE60", "failed" = "#E74C3C",
                                "canceled" = "#F39C12", "suspended" = "#8E44AD")) +
  theme_minimal(base_size = 13) +
  theme(legend.position = "bottom")
Scatterplot: Στόχος χρηματοδότησης vs Ποσό που συγκεντρώθηκε (σε USD)

Scatterplot: Στόχος χρηματοδότησης vs Ποσό που συγκεντρώθηκε (σε USD)

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

7.2 Boxplot: Αριθμός Υποστηρικτών ανά Κατηγορία

# Φιλτράρουμε μόνο επιτυχημένα projects για πιο ουσιαστική σύγκριση
df_successful <- df_clean %>%
  filter(state == "successful", backers > 0)

ggplot(df_successful, aes(x = reorder(main_category, backers, FUN = median),
                           y = backers, fill = main_category)) +
  geom_boxplot(outlier.alpha = 0.2, outlier.size = 0.5) +
  coord_flip() +
  scale_y_log10(labels = comma_format()) +
  labs(
    title = "Κατανομή Αριθμού Υποστηρικτών ανά Κατηγορία",
    subtitle = "Μόνο επιτυχημένα projects — Λογαριθμική κλίμακα στον άξονα X",
    x = "Κύρια Κατηγορία",
    y = "Αριθμός Υποστηρικτών (log scale)"
  ) +
  theme_minimal(base_size = 13) +
  theme(legend.position = "none")
Boxplot: Αριθμός υποστηρικτών ανά κύρια κατηγορία (μόνο επιτυχημένα projects)

Boxplot: Αριθμός υποστηρικτών ανά κύρια κατηγορία (μόνο επιτυχημένα projects)

Σχολιασμός: Κατηγορίες όπως Technology, Design και Games εμφανίζουν τη μεγαλύτερη διάμεσο αριθμού υποστηρικτών, υποδηλώνοντας ότι αυτά τα πεδία προσελκύουν ευρύ κοινό. Αντίθετα, κατηγορίες όπως Dance, Journalism και Crafts έχουν μικρότερο αριθμό υποστηρικτών. Τα πολλά outliers (ακραίες τιμές) σε όλες τις κατηγορίες δείχνουν ότι ορισμένα projects γίνονται viral ανεξάρτητα από τον κλάδο.

7.3 Histogram: Κατανομή Στόχου Χρηματοδότησης

# Φιλτράρουμε τιμές > 0 για τη λογαριθμική κλίμακα
df_hist <- df_clean %>% filter(usd_goal_real > 0)

median_goal <- median(df_hist$usd_goal_real, na.rm = TRUE)

ggplot(df_hist, aes(x = usd_goal_real)) +
  geom_histogram(bins = 60, fill = "#2E86C1", color = "white", alpha = 0.85) +
  scale_x_log10(labels = dollar_format(),
                breaks = c(100, 1000, 10000, 100000, 1000000)) +
  labs(
    title = "Κατανομή Στόχου Χρηματοδότησης (USD)",
    subtitle = "Λογαριθμική κλίμακα — η πλειονότητα των projects έχει στόχο $1K–$10K",
    x = "Στόχος Χρηματοδότησης (USD, log scale)",
    y = "Πλήθος Projects"
  ) +
  theme_minimal(base_size = 13) +
  geom_vline(xintercept = median_goal,
             color = "#E74C3C", linetype = "dashed", linewidth = 1) +
  annotate("text", x = median_goal * 2.5, y = Inf,
           label = paste0("Διάμεσος = $", comma(median_goal)),
           vjust = 2, color = "#E74C3C", size = 4.5, fontface = "bold")
Histogram: Κατανομή στόχου χρηματοδότησης σε USD

Histogram: Κατανομή στόχου χρηματοδότησης σε USD

Σχολιασμός: Το histogram (σε λογαριθμική κλίμακα) δείχνει ότι η πλειονότητα των Kickstarter projects θέτει στόχους χρηματοδότησης στην περιοχή $1.000–$10.000. Η κατανομή είναι θετικά ασύμμετρη: υπάρχει μια μακριά ουρά στα δεξιά που αντιπροσωπεύει projects με πολύ φιλόδοξους στόχους (>$100K). Η κόκκινη διακεκομμένη γραμμή υποδεικνύει τη διάμεσο.

7.4 Bar Chart: Ποσοστό Επιτυχίας ανά Κύρια Κατηγορία

success_rate <- df_clean %>%
  group_by(main_category) %>%
  summarise(
    total = n(),
    successful = sum(state == "successful"),
    rate = successful / total * 100,
    .groups = "drop"
  ) %>%
  arrange(desc(rate))

ggplot(success_rate, aes(x = reorder(main_category, rate),
                          y = rate, fill = rate)) +
  geom_col(width = 0.7) +
  geom_text(aes(label = paste0(round(rate, 1), "%")),
            hjust = -0.15, size = 3.5, fontface = "bold") +
  coord_flip() +
  scale_fill_gradient(low = "#E74C3C", high = "#27AE60") +
  labs(
    title = "Ποσοστό Επιτυχίας Kickstarter Projects ανά Κατηγορία",
    subtitle = "Ποσοστό projects που πέτυχαν τον στόχο χρηματοδότησής τους",
    x = "Κύρια Κατηγορία",
    y = "Ποσοστό Επιτυχίας (%)"
  ) +
  scale_y_continuous(limits = c(0, 75), expand = c(0, 0)) +
  theme_minimal(base_size = 13) +
  theme(legend.position = "none")
Bar Chart: Ποσοστό επιτυχίας ανά κύρια κατηγορία

Bar Chart: Ποσοστό επιτυχίας ανά κύρια κατηγορία

Σχολιασμός: Οι κατηγορίες Dance, Theater και Comics εμφανίζουν τα υψηλότερα ποσοστά επιτυχίας (>50%), ενώ οι κατηγορίες Technology, Journalism και Crafts βρίσκονται στο κάτω μέρος. Αυτό υποδεικνύει ότι projects με χαμηλότερο κόστος υλοποίησης (π.χ. τέχνες) πετυχαίνουν τον στόχο τους πιο εύκολα, ενώ κατηγορίες που απαιτούν μεγαλύτερη χρηματοδότηση (π.χ. τεχνολογία) δυσκολεύονται περισσότερο.

8 Συμπεράσματα

Η ανάλυση του Kickstarter Projects dataset ανέδειξε αρκετά σημαντικά ευρήματα:

  1. Η πλειονότητα των Kickstarter projects αποτυγχάνει: Περίπου 52% των projects δεν πετυχαίνει τον στόχο χρηματοδότησης.

  2. Ο στόχος χρηματοδότησης παίζει κρίσιμο ρόλο: Projects με χαμηλότερους και ρεαλιστικούς στόχους τείνουν να πετυχαίνουν συχνότερα. Υπάρχει αρνητική συσχέτιση μεταξύ ύψους στόχου και επιτυχίας.

  3. Ο αριθμός υποστηρικτών συνδέεται άμεσα με τη χρηματοδότηση: Ισχυρή θετική συσχέτιση μεταξύ backers και usd_pledged_real.

  4. Οι κατηγορίες τεχνών υπερέχουν: Dance, Theater, Comics και Music εμφανίζουν τα υψηλότερα ποσοστά επιτυχίας.

  5. Η διάρκεια του campaign δεν φαίνεται καθοριστική: Η μεταβλητή duration_days δεν εμφανίζει ισχυρή συσχέτιση με την επιτυχία.

  6. Ο λόγος χρηματοδότησης (funding ratio) διαφοροποιεί σαφώς τα επιτυχημένα projects: Τα successful projects έχουν ratio > 1, ενώ τα failed κινούνται κοντά στο 0.

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


Αυτή η αναφορά δημιουργήθηκε στο πλαίσιο του μαθήματος “Επιχειρηματική Αναλυτική” — Τμήμα Εφαρμοσμένης Πληροφορικής, Πανεπιστήμιο Μακεδονίας.