The experiences of Bucharest residents regarding the city’s landscaped and natural green spaces

Author

By Master’s students in the Cross-disciplinary perspectives on socio-ecological transformations program


Introducere

Spațiile verzi urbane sunt esențiale pentru bunăstarea fizică și mentală, contribuind la reducerea poluării și la combaterea efectelor fenomenului de insulă de căldură. În București, percepția locuitorilor asupra calității și accesibilității acestor spații este critică pentru politicile publice de dezvoltare durabilă. Acest studiu analizează experiențele bucureștenilor în interacțiunea cu spațiile verzi amenajate și naturale.

Materiale și Metode

Colectarea datelor

Datele au fost colectate prin intermediul unui chestionar online, utilizând o combinație între eșantionarea prin conveniență și metoda “bulgărelui de zăpadă”. Respondenții au oferit consimțământul informat, iar anonimatul a fost garantat.

Măsurare și Metodă

Am utilizat o scară Likert (1-7) pentru evaluarea satisfacției, alături de întrebări cu răspuns unic și multiplu. Analiza a inclus statistici descriptive (frecvențe, medii), corelații de tip Spearman (pentru variabile ordinale) și reprezentări grafice.

Rezultate

Descrierea eșantionului

Aici vei insera tabelul cu frecvențele demografice (Gen, Vârstă, Venit, Studii) folosind summarytools::freq(data$Variabila).

Code
# ==============================================================================
# 1. FSV3: Unde se află spațiile verzi pe care le frecventați cel mai des?
# ==============================================================================

# Transformăm variabila din coduri în text (0, 1, 2)
data <- data %>%
  mutate(FSV3_Cat = factor(FSV3, 
                           levels = c(0, 1, 2),
                           labels = c("În apropierea locuinței", 
                                      "În alt sector", 
                                      "La periferia Bucureștiului")))

# Generare Tabel de frecvență
tabel_FSV3 <- data %>%
  filter(!is.na(FSV3_Cat)) %>%
  count(FSV3_Cat, name = "Frecvență") %>%
  mutate(Procent = paste0(round(Frecvență / sum(Frecvență) * 100, 1), "%"))

print("Tabel de frecvență: FSV3")
[1] "Tabel de frecvență: FSV3"
Code
print(tabel_FSV3)
# A tibble: 3 × 3
  FSV3_Cat                   Frecvență Procent
  <fct>                          <int> <chr>  
1 În apropierea locuinței          133 65.5%  
2 În alt sector                     55 27.1%  
3 La periferia Bucureștiului        15 7.4%   
Code
# Generare Bar chart
grafic_FSV3 <- ggplot(data %>% filter(!is.na(FSV3_Cat)), aes(x = FSV3_Cat, fill = FSV3_Cat)) +
  geom_bar(color = "white", alpha = 0.85) +
  geom_text(stat = 'count', aes(label = after_stat(count)), vjust = -0.5, size = 4, fontface = "bold") +
  # Paletă manuală de 3 nuanțe de verde
  scale_fill_manual(values = c("#A2CD5A", "#74A836", "#458B00"), guide = "none") +
  labs(title = "Unde se află spațiile verzi frecventate cel mai des?",
       x = "Locație", 
       y = "Număr de respondenți") +
  theme_minimal() +
  theme(plot.title = element_text(face = "bold", size = 14),
        axis.text.x = element_text(size = 11))

grafic_FSV3

Code
# 2. FSV4 - Activități desfășurate (răspuns multiplu)
# ---------------------------------------------------------
# Preluăm coloanele, le însumăm și le transformăm în text
activitati_multiplu <- data %>%
  select(FSV4_0, FSV4_1, FSV4_2, FSV4_3, FSV4_4, FSV4_5, FSV4_6, FSV4_7, FSV4_8) %>%
  summarise(across(everything(), ~sum(. == 1, na.rm = TRUE))) %>%
  pivot_longer(cols = everything(), names_to = "Cod", values_to = "Frecventa") %>%
  mutate(Activitate = case_when(
    Cod == "FSV4_0" ~ "Plimbare",
    Cod == "FSV4_1" ~ "Sport",
    Cod == "FSV4_2" ~ "Muncă remote",
    Cod == "FSV4_3" ~ "Studiat / Lectură",
    Cod == "FSV4_4" ~ "Socializare",
    Cod == "FSV4_5" ~ "Relaxare",
    Cod == "FSV4_6" ~ "Admirat natura",
    Cod == "FSV4_7" ~ "Doar pentru tranzit",
    Cod == "FSV4_8" ~ "Altele"
  )) %>%
  mutate(Activitate = reorder(Activitate, Frecventa)) # Ordonare pentru grafic

# Tabel de frecvență
print("Tabel de frecvență: Activități desfășurate (FSV4)")
[1] "Tabel de frecvență: Activități desfășurate (FSV4)"
Code
print(activitati_multiplu %>% select(Activitate, Frecventa) %>% arrange(desc(Frecventa)))
# A tibble: 9 × 2
  Activitate          Frecventa
  <fct>                   <int>
1 Plimbare                  192
2 Relaxare                  161
3 Admirat natura            126
4 Socializare               109
5 Sport                      61
6 Studiat / Lectură          48
7 Doar pentru tranzit        29
8 Muncă remote               13
9 Altele                      6
Code
# Generare Bar chart orizontal
grafic_FSV4 <- ggplot(activitati_multiplu, aes(x = Frecventa, y = Activitate, fill = Frecventa)) +
  geom_col() +
  geom_text(aes(label = Frecventa), hjust = -0.2, size = 4, fontface = "bold") +
  # Gradient fix între verdele deschis și cel închis cerut
  scale_fill_gradient(low = "#A2CD5A", high = "#458B00") +
  labs(title = "Ce activități desfășurați în spațiile verzi?",
       x = "Număr de selecții", 
       y = "Tip de activitate") +
  theme_minimal() +
  theme(legend.position = "none",
        plot.title = element_text(face = "bold", size = 14))

grafic_FSV4

Code
# ==============================================================================# 3. ASV1: În cât timp ajungeți la cel mai frecventat spațiu verde? (Pie Chart)# ==============================================================================# Transformăm variabila

data <- data %>%

  mutate(ASV1_Cat = factor(ASV1, 

                           levels = c(0, 1, 2, 3, 4),

                           labels = c("< 10 minute", 

                                      "10-15 minute", 

                                      "16-30 minute", 

                                      "31-60 minute", 

                                      "> o oră")))# Creăm o bază de date sumarizată special pentru Pie Chart

date_pie_ASV1 <- data %>%

  filter(!is.na(ASV1_Cat)) %>%

  count(ASV1_Cat) %>%

  mutate(Procent = n / sum(n) * 100)# Generare Pie Chart

grafic_ASV1 <- ggplot(date_pie_ASV1, aes(x = "", y = n, fill = ASV1_Cat)) +

  geom_bar(stat = "identity", width = 1, color = "white") +

  coord_polar("y", start = 0) +

  geom_text(aes(label = paste0(round(Procent, 1), "%")), 

            position = position_stack(vjust = 0.5), size = 4, fontface = "bold", color = "white") +

  # 4 nuanțe de verde + 1 nuanță de mov pentru ultima categorie

  scale_fill_manual(values = c("#D9E699", "#B2D87B", "#85C155", "#58A330", "#2D701A")) +
  labs(title = "Timpul de deplasare către cel mai frecventat spațiu verde",

       fill = "Interval de timp",

       x = NULL, y = NULL) +

  theme_void() + 

  theme(plot.title = element_text(face = "bold", size = 14, hjust = 0.5))



grafic_ASV1 

Code
#==============================================================================
# 4. ASV2: Ce modalitate de transport folosiți cel mai des? (Răspuns Multiplu)
# ==============================================================================

# Preluăm coloanele ASV2_0 până la ASV2_5
transport_multiplu <- data %>%
  select(ASV2_0, ASV2_1, ASV2_2, ASV2_3, ASV2_4, ASV2_5) %>%
  summarise(across(everything(), ~sum(. == 1, na.rm = TRUE))) %>%
  pivot_longer(cols = everything(), names_to = "Cod", values_to = "Frecventa") %>%
  mutate(Transport = case_when(
    Cod == "ASV2_0" ~ "Mașina personală",
    Cod == "ASV2_1" ~ "Bolt/Uber/Taxi/Altul",
    Cod == "ASV2_2" ~ "Transport în comun",
    Cod == "ASV2_3" ~ "Mersul pe jos",
    Cod == "ASV2_4" ~ "Bicicletă, role, trotinetă",
    Cod == "ASV2_5" ~ "Altele"
  )) %>%
  mutate(Transport = reorder(Transport, Frecventa))

# Tabel de frecvență
print("Tabel de frecvență: Modalitate de transport (ASV2)")
[1] "Tabel de frecvență: Modalitate de transport (ASV2)"
Code
print(transport_multiplu %>% select(Transport, Frecventa) %>% arrange(desc(Frecventa)))
# A tibble: 6 × 2
  Transport                  Frecventa
  <fct>                          <int>
1 Mersul pe jos                    143
2 Transport în comun               105
3 Mașina personală                  42
4 Bicicletă, role, trotinetă        34
5 Bolt/Uber/Taxi/Altul              15
6 Altele                             0
Code
# Generare Bar chart orizontal
grafic_ASV2 <- ggplot(transport_multiplu, aes(x = Frecventa, y = Transport, fill = Frecventa)) +
  geom_col() +
  geom_text(aes(label = Frecventa), hjust = -0.2, size = 4, fontface = "bold") +
  # Același gradient de verde
  scale_fill_gradient(low = "#A2CD5A", high = "#458B00") +
  labs(title = "Mijlocul de transport preferat pentru a ajunge în spațiile verzi",
       x = "Număr de selecții", 
       y = "Mijloc de transport") +
  theme_minimal() +
  theme(legend.position = "none",
        plot.title = element_text(face = "bold", size = 14))

grafic_ASV2

Code
#==============================================================================
# 5. OSVA1: Spațiile verzi sunt întreținute corespunzător de autorități (Likert)
# ==============================================================================

# Generare Bar chart
grafic_OSVA1 <- ggplot(data %>% filter(!is.na(OSVA1)), aes(x = factor(OSVA1), fill = factor(OSVA1))) +
  geom_bar(color = "white", alpha = 0.85) +
  geom_text(stat = 'count', aes(label = after_stat(count)), vjust = -0.5, size = 4, fontface = "bold") +
  # Trecere logică: Mov (Dezacord) -> Gri (Neutru) -> Verde (Acord)
  scale_fill_manual(values = c("#5E2B97", "#8A54C7", "#C4A7E6", "#D3D3D3", "#A2CD5A", "#74A836", "#458B00"), guide = "none") +
  labs(title = "Percepția asupra întreținerii spațiilor verzi de către autorități",
       subtitle = "1 = Dezacord Total, 7 = Acord Total",
       x = "Scor Likert (1 - 7)", 
       y = "Număr de respondenți") +
  theme_minimal() +
  theme(plot.title = element_text(face = "bold", size = 14))

grafic_OSVA1

Code
# 6. Corelații (opțional) – de exemplu, între OSVA1 și vârstă/venit
# -------------------------------------------------------------------
cor.test(data$OSVA1, data$Varsta, method = "spearman", exact = FALSE)

    Spearman's rank correlation rho

data:  data$OSVA1 and data$Varsta
S = 1413387, p-value = 0.8455
alternative hypothesis: true rho is not equal to 0
sample estimates:
        rho 
-0.01375945 
Code
cor.test(data$OSVA1, data$Venit, method = "spearman", exact = FALSE)

    Spearman's rank correlation rho

data:  data$OSVA1 and data$Venit
S = 1349400, p-value = 0.649
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
0.03213555 

Nu există o corelație semnificativă între percepția întreținerii spațiilor verzi și vârstă (rho = -0.014, p = 0.845), nici între aceasta și venit (rho = 0.032, p = 0.649).

Concluzii și Recomandări

Studiul evidențiază o nevoie de îmbunătățire a managementului spațiilor verzi. Recomandăm autorităților publice:

  1. Prioritizarea igienizării spațiilor verzi curente.

  2. Dezvoltarea de noi zone verzi în cartierele deficitare pentru a reduce timpul de accesibilitate.

  3. Transparență sporită în gestionarea resurselor alocate întreținerii.