---
title: "Experiența locuitorilor din București privind
spațiile verzi amenajate și neamenajate ale orașului "
author: "Cercetare sociologică realizată de către studenții de la Master “Cross-disciplinary perspectives on socio-ecological transformations” (Anul I, 2025-2026)"
format:
html:
code-fold: true
code-tools: true
df-print: paged
toc: true
fontsize: 0.9em
---
```{r setup, include=FALSE}
library(ggplot2)
library(dplyr)
library(tidyr)
library(summarytools)
library(readr)
library(corrplot)
theme_set(theme_minimal(base_size = 12))
data <- read_csv("data.csv")
print(data)
```
------------------------------------------------------------------------
### Introducere
Cercetarea examinează modul în care locuitorii Bucureștiului și ai zonei metropolitane interacționează cu două categorii de spații verzi: cele amenajate (parcuri) și cele neamenajate, caracterizate de o vegetație spontană sau o intervenție umană minimă (zone de natură sălbatică).
Relevanța acestei lucrări este dată de analiza specifică a percepției publicului din București asupra distincției dintre aceste două categorii de medii. Majoritatea studiilor existente se concentrează fie pe aspecte strict ecologice, fie pe spațiile verzi convenționale, fără să pună accent pe dimensiunea subiectivă a relației locuitorilor din București cu natura sălbatică urbană. Astfel, studiul completează literatura de specialitate și oferă date importante care pot sta la baza dezvoltării politicilor publice urbane.
Studiul este structurat pe următoarele obiective: relația natură - comunitate, cum înțeleg oamenii natura în mediul urban; frecventarea spațiilor verzi; accesibilitatea acestor spații; identificarea beneficiilor și riscurilor percepute; evaluarea modului în care sunt privite spațiile verzi cu intervenție umană minimă și a celor amenajate; responsabilitatea pentru spațiile verzi; disponibilitatea de a face voluntariat pentru mediu; nevoile speciale ale familiilor cu copii.
### Analiza literaturii de specialitate
Înțelegerea spațiilor verzi în mediul urban necesită o abordare interdisciplinară care poate începe cu cartografierea funcțională. Acest proces nu se limitează la simpla localizare geografică a parcurilor, ci identifică funcțiile sociale pe care acestea le îndeplinesc pentru comunitate (Florență, 2022). Baza acestei utilități o reprezintă accesul echitabil, principiul conform căruia toți locuitorii unui oraș, indiferent de zona de reședință, trebuie să beneficieze de o distribuție corectă a resurselor verzi, prevenind astfel inechitățile sociale ([Jennings, Larson, & Yun, 2016](https://www.mdpi.com/1660-4601/13/2/196)).
Odată asigurată prezența și accesibilitatea spațiilor verzi, atenția se mută asupra calității acestora, (curățenia, siguranța percepută, infrastructură, facilități). Acești factori au un impact direct asupra frecvenței și modului de utilizare a spațiilor verzi ([Li et al., 2020](https://www.mdpi.com/2071-1050/12/17/7204)). Un aspect important al calității spațiilor verzi este naturalitatea, un concept care descrie gradul în care vegetația este percepută ca fiind apropiată de stadiul său natural, nemodificat. Cercetările indică faptul că un nivel ridicat de naturalitate sporește valoarea estetică și beneficiile pentru sănătatea psihică ([Sang et al., 2016](https://www.sciencedirect.com/science/article/abs/pii/S1618866715300765)).
Această preferință pentru natural este însă amenințată de trendul de „parkificare”, prin care zonele verzi sălbatice sunt transformate în spații amenajate, proces care reduce biodiversitatea și alterează experiența autentică a naturii în oraș. În contrast cu această transformare a spațiilor verzi, contactul direct cu natura oferă beneficii non-materiale, denumite servicii ecosistemice culturale. Acestea se referă la simplul fapt de a fi în natură și de a te bucura de ceea ce natura îți oferă, la posibilitatea de a te recrea și de a-ți găsi echilibrul și starea de bine. ([Jennings, Larson, & Yun, 2016](https://www.mdpi.com/1660-4601/13/2/196); [Ramírez-Agudelo et al., 2022](https://doi.org/10.1016/j.nbsj.2022.100021)).
Totodată, este important de subliniat că legătura dintre comunitate și spațiile verzi este întărită de interacțiunea dintre accesibilitatea fizică și atașamentul emoțional față de loc. Legăturile emoționale și sociale pe care oamenii le dezvoltă față de cartierul lor influențează direct atașamentul pentru spațiile verzi. Acest atașament stimulează acțiunile de voluntariat pentru mediu, transformând beneficiarii în activiști pentru conservarea naturii. Implicarea civică în întreținerea și protejarea acestor spații verzi devine astfel o expresie a rezilienței comunitare și a dorinței de a menține un mediu urban sustenabil ([Ritchie et al., 2026](https://doi.org/10.1016/j.ufug.2026.129451)).
### **Analiza cantitativă**
#### Data
Procedura de colectare a datelor a constat într-un chestionar online, completat de către respondenți în mod independent, creat de studenții programului de master „Cross-disciplinary perspectives on socio-ecological transformations program”. Pentru colectarea datelor, am aplicat o metodă combinată între eșantionarea de conveniență (mai precis, metoda de eșantionare neprobabilistică) și tehnica „bulgărelui de zăpadă”.
Chestionarul a fost distribuit pe diferite platforme de socializare (WhatsApp, Teams, Facebook), iar fiecare respondent a fost invitat să distribuie chestionarul în propria rețea socială.
Pentru acest studiu, grupul țintă a fost format din persoane care locuiesc în București și în zonele învecinate, cu vârste cuprinse între categoriile sub 18 ani si peste 65 de ani.
Înainte de completarea chestionarului, participanții au fost asigurați de confidențialitatea răspunsurilor lor, fiind informați că datele vor fi utilizate exclusiv în scopuri de cercetare. Prin completarea chestionarului, respondenții și-au dat consimțământul de a participa la studiu.
#### Metoda de măsurare
Scopul acestui studiu este să ofere o înțelegere aprofundată a experiențelor locuitorilor cu privire la spațiile verzi amenajate și spațiile verzi naturale din București și din zona metropolitană, precum și a nevoilor și așteptărilor locuitorilor legate de aceste spații. Pentru aceasta, am creat nouă dimensiuni și, pentru fiecare dimensiune, am formulat întrebări care ne-au ajutat să colectăm date primare de la respondenți.
Răspunsurile participanților au fost evaluate folosind Scala Likert de 7 puncte (1 = Total dezacord, 7 = Complet acord), iar pentru o parte din întrebări, respondenții au avut opțiunea de a selecta răspunsul deschis „Altele”.
Analiza datelor a fost realizată în mediul R. Pentru identificarea corelațiilor între variabile, am folosit statistici descriptive și analize bivariate.
## Interpretarea rezultatelor
### Dimensiunea 1: Cunoașterea spațiilor verzi
*Analiză realizată de: Iulia*
#### 1.1 Ce reprezintă un spațiu verde? (CSV1 – răspuns multiplu)- Iulia
Pentru a determina cât de familiarizați sunt respondenții cu spațiile verzi din București, am încercat să aflăm ce reprezintă pentru ei un spațiu verde și am reprezentat grafic răspunsurile în ordine descrescătoare a frecvenței.
```{r}
library(ggplot2)
library(dplyr)
library(tidyr)
library(tidyverse)
library(readxl)
# ----------------------------------------------------------------------
#CUNOAȘTEREA SPAȚIILOR VERZI
# ----------------------------------------------------------------------
Spatiu_verde <- data %>%
select(CSV1_0, CSV1_1, CSV1_2, CSV1_3, CSV1_4, CSV1_5) %>%
summarise(across(everything(), ~sum(. == 1, na.rm = TRUE))) %>%
pivot_longer(cols = everything(), names_to = "Varianta", values_to = "Voturi") %>%
mutate(Denumire = case_when(
Varianta == "CSV1_0" ~ "Parcuri amenajate",
Varianta == "CSV1_1" ~ "Grădini dintre blocuri",
Varianta == "CSV1_2" ~ "Păduri",
Varianta == "CSV1_3" ~ "Parcuri naturale",
Varianta == "CSV1_4" ~ "Alveole",
Varianta == "CSV1_5" ~ "Altele"
)) %>%
mutate(Denumire = reorder(Denumire, Voturi))
ggplot(Spatiu_verde, aes(x = Voturi, y = Denumire, fill = Voturi)) +
geom_col() +
geom_text(aes(label = Voturi), hjust = -0.2, size = 4, fontface = "bold") +
scale_fill_gradient(low = "#A2CD5A", high = "#458B00") +
labs(title = "Ce reprezintă un spațiu verde pentru locuitorii din București?",
x = "Număr de alegeri", y = "Variante") +
theme_minimal() +
theme(legend.position = "none")
```
Locuitorii Bucureștiului asociază spațiile verzi în primul rând cu parcurile amenajate (infrastructură formală), dar recunosc și importanța grădinilor de proximitate și a zonelor naturale (parcuri naturale, păduri). Această diversitate de preferințe sugerează necesitatea unei abordări mixte în politicile de infrastructură verde: extinderea parcurilor mari, conservarea și îmbunătățirea grădinilor de cartier, protejarea zonelor naturale și valorificarea spațiilor mici intercalate (alveole).
#### 1.2 Satisfacția privind întinderea și calitatea spațiilor verzi (CSV2)- Iulia
```{r}
#----------------------------------------------------------------------
#CALITATEA SPAȚIILOR VERZI
# ----------------------------------------------------------------------
desc_CSV2 <- (data) %>%
summarise(
N = sum(!is.na(CSV2)),
Media = round(mean(CSV2, na.rm = TRUE), 2),
Mediana = median(CSV2, na.rm = TRUE),
SD = round(sd(CSV2, na.rm = TRUE), 2),
Min = min(CSV2, na.rm = TRUE),
Max = max(CSV2, na.rm = TRUE) )
print(desc_CSV2)
# ----------------------------------------------------------------------
# distribuție frecvențe
# ----------------------------------------------------------------------
freq_CSV2 <- (data) %>%
count(CSV2) %>%
mutate(Procent = round(n / sum(n) * 100, 1)) %>%
filter(!is.na(CSV2))
print(freq_CSV2)
# ----------------------------------------------------------------------
# grafic likert
# ----------------------------------------------------------------------
ggplot((data), aes(x = CSV2)) +
geom_histogram(aes(y = after_stat(density)),
binwidth = 1,
fill = "darkgreen",
color = "lightgreen",
alpha = 0.7) +
geom_density(color = "black", linewidth = 1.2) +
scale_x_continuous(breaks = 1:7) +
scale_y_continuous(
labels = scales::percent_format(accuracy = 1)
)+
labs(
title = "Cât de mulțumit/ă sunteți de întinderea și calitatea spațiilor verzi din oraș?",
subtitle = paste0("Media = ", desc_CSV2$Media,
" | SD = ", desc_CSV2$SD,
" | N = ", desc_CSV2$N),
x = "Scor (1 = Foarte nemulțumit/ă, 7 = Foarte mulțumit/ă)",
y = "Frecventa"
) +
theme_minimal(base_size = 13)
```
Locuitorii Bucureștiului se declară, în general, mai degrabă nemulțumiți de întinderea și calitatea spațiilor verzi din oraș, 59,6% dintre respondenți având o percepție preponderent negativă asupra acestui aspect. Evaluarea întinderii și calității spațiilor verzi indică un nivel general scăzut de acord sau satisfacție (media = 3,26), cu o concentrare accentuată a răspunsurilor la valori joase și moderate (scoruri 1–4: 84,2%) și o reprezentare redusă a scorurilor ridicate (5–7: 15,7%).
Distribuția răspunsurilor este asimetrică negativ, mediana situându-se la scorul 3 (32,0%), ceea ce reflectă o atitudine predominant rezervată sau nesatisfăcătoare față de dimensiunea analizată. Aceste rezultate evidențiază necesitatea unor intervenții și îmbunătățiri privind întinderea și calitatea spațiilor verzi din oraș, precum și oportunitatea de a analiza factorii care diferențiază subgrupurile cu percepții mai favorabile de cele cu percepții negative.
### **Relația dintre percepția asupra întindeii și a calitatii spațiilor verzi și caracteristicile vârstă și venit**
Analizele de corelație Pearson indică absența unor relații semnificative statistic între nivelul de satisfacție față de întinderea și calitatea spațiilor verzi (CSV2) și variabilele socio‑demografice analizate: vârstă și venit.
Variabile socio-demografice prezintă:
- coeficienți de corelație foarte mici (\|r\| \< 0.11),
- valori p \> 0.05 (nesemnificative statistic).
```{r}
# ----------------------------------------------------------------------
# corelatii socio demo
# ----------------------------------------------------------------------
cor.test(data$Varsta, data$CSV2, method = "pearson")
cor.test(data$Venit, data$CSV2, method = "pearson")
```
#### 1.3 Consider că sunt suficiente spații verzi în București pentru toți locuitorii. - Iulia
```{r}
# ----------------------------------------------------------------------
# SUFICIENȚA SPAȚIILOR VERZI
# ----------------------------------------------------------------------
desc_CSV3 <- (data) %>%
summarise(
N = sum(!is.na(CSV3)),
Media = round(mean(CSV3, na.rm = TRUE), 2),
Mediana = median(CSV3, na.rm = TRUE),
SD = round(sd(CSV3, na.rm = TRUE), 2),
Min = min(CSV3, na.rm = TRUE),
Max = max(CSV3, na.rm = TRUE) )
print(desc_CSV3)
# ----------------------------------------------------------------------
# distribuție frecvențe
# ----------------------------------------------------------------------
freq_CSV3 <- (data) %>%
count(CSV3) %>%
mutate(Procent = round(n / sum(n) * 100, 1)) %>%
filter(!is.na(CSV3))
print(freq_CSV3)
# ----------------------------------------------------------------------
# grafic likert
# ----------------------------------------------------------------------
ggplot((data), aes(x = CSV3)) +
geom_histogram(aes(y = after_stat(density)),
binwidth = 1,
fill = "darkgreen",
color = "lightgreen",
alpha = 0.7) +
geom_density(color = "black", linewidth = 1.2) +
scale_x_continuous(breaks = 1:7) +
scale_y_continuous(
labels = scales::percent_format(accuracy = 1)
)+
labs(
title = "Consider că sunt suficiente spații verzi în București pentru toți locuitorii",
subtitle = paste0("Media = ", desc_CSV3$Media,
" | SD = ", desc_CSV3$SD,
" | N = ", desc_CSV3$N),
x = "Scor (1 = Total dezacord , 7 = Complet de acord )",
y = "Frecventa"
) +
theme_minimal(base_size = 13)
# ----------------------------------------------------------------------
# corelatii socio demo
# ----------------------------------------------------------------------
cor.test(data$Varsta, data$CSV3, method = "pearson")
cor.test(data$Venit, data$CSV3, method = "pearson")
```
Locuitorii Bucureștiului consideră în mod covârșitor că spațiile verzi din oraș sunt insuficiente, cu 85,3% dintre respondenți exprimând dezacord (scoruri 1–3) față de afirmația că „sunt suficiente spații verzi în București pentru toți locuitorii". Consensul aproape unanim sugerează că această problemă este resimțită ca o realitate obiectivă, nu ca o simplă nemulțumire subiectivă, și impune prioritate maximă pentru politicile publice de urbanism și amenajare a spațiului urban.
### **Relația dintre suficiența spațiilor verzi și variabilele socio‑demografice**
Analizele de corelație Pearson indică absența unor relații semnificative statistic între percepția privind suficiența spațiilor verzi (CSV3) și variabilele socio‑demografice analizate: Vârstă (r = −0.026, p = 0.713) și Venit (r = −0.023, p = 0.742) . Valorile foarte mici ale coeficienților \|r\| indică efecte neglijabile, iar valorile p mult peste pragul de 0,05 confirmă că aceste asocieri nu sunt semnificative statistic.
### Dimensiunea 2: Frecventarea spațiilor verzi
*Analiză realizată de: Iulia (FSV1, FSV2) și Tina (FSV3, FSV4)*
#### 2.1 Ce spații verzi frecventați cel mai des? (FSV1 – răspuns multiplu) – Iulia
```{r}
# ----------------------------------------------------------------------
# FRECVENTAREA SPAȚIILOR VERZI
# ----------------------------------------------------------------------
Spatiu_verde_frecventat <- data %>%
select(FSV1_0, FSV1_1, FSV1_2, FSV1_3, FSV1_4) %>%
summarise(across(everything(), ~sum(. == 1, na.rm = TRUE))) %>%
pivot_longer(cols = everything(), names_to = "Varianta", values_to = "Voturi") %>%
mutate(Denumire = case_when(
Varianta == "FSV1_0" ~ "Parcuri amenajate",
Varianta == "FSV1_1" ~ "Grădini dintre blocuri",
Varianta == "FSV1_2" ~ "Păduri",
Varianta == "FSV1_3" ~ "Parcuri naturale",
Varianta == "FSV1_4" ~ "Altele"
)) %>%
mutate(Denumire = reorder(Denumire, Voturi))
ggplot(Spatiu_verde_frecventat, aes(x = Voturi, y = Denumire, fill = Voturi)) +
geom_col() +
geom_text(aes(label = Voturi), hjust = -0.2, size = 4, fontface = "bold") +
scale_fill_gradient(low = "#A2CD5A", high = "#458B00") +
labs(title = "Ce spații verzi frecventați cel mai des??",
x = "Număr de alegeri", y = "Variante") +
theme_minimal() +
theme(legend.position = "none")
```
Parcurile amenajate sunt, de departe, cele mai frecventate spații verzi, înregistrând cel mai mare număr de alegeri, mult peste celelalte categorii. La distanță considerabilă urmează grădinile dintre blocuri, apoi pădurile și parcurile naturale, care sunt frecventate într-o măsură mai redusă. Categoria „Altele” este marginală.
#### 2.2 Cât de des frecventați spațiile verzi? (FSV2 – Iulia)
```{r}
# ----------------------------------------------------------------------
# FRECVENTA FRECVENTĂRII SPAȚIILOR VERZI
# ----------------------------------------------------------------------
# ----------------------------------------------------------------------
# analiză descriptivă și statistică
# ----------------------------------------------------------------------
desc_FSV2 <- (data) %>%
summarise(
N = sum(!is.na(FSV2)),
Media = round(mean(FSV2, na.rm = TRUE), 2),
Mediana = median(FSV2, na.rm = TRUE),
SD = round(sd(FSV2, na.rm = TRUE), 2),
Min = min(FSV2, na.rm = TRUE),
Max = max(FSV2, na.rm = TRUE) )
print(desc_FSV2)
# ----------------------------------------------------------------------
# distribuție frecvențe + procente
# ----------------------------------------------------------------------
freq_FSV2 <- (data) %>%
count(FSV2) %>%
mutate(Procent = round(n / sum(n) * 100, 1)) %>%
filter(!is.na(FSV2))
print(freq_FSV2)
# ----------------------------------------------------------------------
# pie chart
# ----------------------------------------------------------------------
# Etichete FSV2
etichete_FSV2 <- c(
"0" = "Zilnic",
"1" = "Săptămânal",
"2" = "Lunar",
"3" = "De câteva ori pe an",
"4" = "Nu frecventez")
# ----------------------------------------------------------------------
# Pregătire date pentru pie chart
# ----------------------------------------------------------------------
freq_FSV2_plot <- freq_FSV2 %>%
mutate(
FSV2 = factor(FSV2,
levels = 0:4,
labels = etichete_FSV2) )
# ----------------------------------------------------------------------
# Pie chart
# ----------------------------------------------------------------------
ggplot(freq_FSV2_plot, aes(x = "", y = Procent, fill = FSV2)) +
geom_bar(stat = "identity", width = 1, color = "white") +
coord_polar("y") +
geom_text(
aes(label = paste0(Procent, "%")),
position = position_stack(vjust = 0.5),
size = 4
) +
labs(
title = "Cât de des frecventați spațiile verzi?",
fill = "Frecvență"
) +
theme_void() +
scale_fill_brewer(palette = "Greens")
# ----------------------------------------------------------
# Etichete pentru Rezidenta (axa X)
# ----------------------------------------------------------
data$Rezidenta <- factor(
data$Rezidenta,
levels = c(0, 1, 2, 3, 4, 5, 6),
labels = c(
"În afara Bucureștiului",
"Sector 1",
"Sector 2",
"Sector 3",
"Sector 4",
"Sector 5",
"Sector 6" ) )
# ----------------------------------------------------------
# Etichete pentru FSV2 (axa Y)
# ----------------------------------------------------------
etichete_FSV2 <- c(
"Zilnic",
"Săptămânal",
"Lunar",
"De câteva ori pe an",
"Nu frecventez")
```
Locuitorii Bucureștiului vizitează spațiile verzi cu o frecvență relativ ridicată, cu 79,8% dintre respondenți declarând că vizitează aceste spații cel puțin săptămânal (zilnic sau săptămânal).
```{r}
# ----------------------------------------------------------
# Boxplot FSV2 ~ Rezidenta
# ----------------------------------------------------------
ggplot(data, aes(x = Rezidenta, y = FSV2)) +
geom_boxplot(fill = "darkgreen", alpha = 0.7) +
scale_y_continuous(
breaks = 0:4,
labels = etichete_FSV2
) +
labs(
title = "Frecvența vizitării spațiilor verzi în funcție de rezidență",
x = "Zona de rezidență",
y = "Frecvența vizitării spațiilor verzi"
) +
theme_minimal(base_size = 13) +
theme(
axis.text.x = element_text(angle = 45, hjust = 1)
)
```
Graficul indică o utilizare frecventă și relativ uniformă a spațiilor verzi în toate zonele de rezidență, fără diferențe majore între sectoare. Această uniformitate sugerează că problema spațiilor verzi nu este una localizată teritorial, ci una structurală la nivel urban, afectând în mod similar locuitorii din toate zonele Bucureștiului și din împrejurimi.
#### 2.3 Unde se află spațiile verzi pe care le frecventați cel mai des? (FSV3 – Tina)
```{r}
library(knitr)
# Transformăm variabila
data_clean <- data %>%
filter(!is.na(FSV3)) %>%
mutate(FSV3_Cat = factor(FSV3, levels = c(0, 1, 2),
labels = c("În apropierea locuinței", "În alt sector", "La periferia Bucureștiului")))
# Tabel curat
tabel_FSV3 <- data_clean %>%
count(FSV3_Cat, name = "Frecvență") %>%
mutate(Procent = paste0(round(Frecvență / sum(Frecvență) * 100, 1), "%"))
kable(tabel_FSV3, col.names = c("Locație", "Frecvență", "Procent"), caption = "Frecvența locațiilor utilizate")
# Grafic
ggplot(data_clean, 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") +
scale_fill_manual(values = c("#A2CD5A", "#74A836", "#458B00"), guide = "none") +
labs(x = "Locație", y = "Număr de respondenți") +
theme_minimal()
```
#### 2.4 Ce activități desfășurați în spațiile verzi? (FSV4 – Tina, răspuns multiplu)
```{r}
activitati_multiplu <- data %>%
select(FSV4_0: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"
)) %>%
arrange(desc(Frecventa))
kable(activitati_multiplu, col.names = c("Cod", "Frecvență", "Activitate"))
ggplot(activitati_multiplu, aes(x = Frecventa, y = reorder(Activitate, Frecventa), fill = Frecventa)) +
geom_col() +
geom_text(aes(label = Frecventa), hjust = -0.2, size = 4, fontface = "bold") +
scale_fill_gradient(low = "#A2CD5A", high = "#458B00") +
labs(x = "Număr de selecții", y = "Activitate") +
theme_minimal() + theme(legend.position = "none")
```
### Dimensiunea 3: Accesibilitatea spațiilor verzi
*Analiză realizată de: Tina*
#### 3.1 Timpul de deplasare (ASV1)
```{r}
date_pie_ASV1 <- data %>%
filter(!is.na(ASV1)) %>%
mutate(ASV1_Cat = factor(ASV1, levels = 0:4, labels = c("< 10 min", "10-15 min", "16-30 min", "31-60 min", "> 1 oră"))) %>%
count(ASV1_Cat) %>%
mutate(Procent = n / sum(n) * 100)
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), fontface = "bold", color = "white") +
scale_fill_manual(values = c("#D9E699", "#B2D87B", "#85C155", "#58A330", "#2D701A")) +
theme_void() + labs(fill = "Timp")
```
#### 3.2 Mijloc de transport (ASV2, răspuns multiplu)
```{r}
transport_multiplu <- data %>%
select(ASV2_0: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șină", Cod == "ASV2_1" ~ "Bolt/Uber", Cod == "ASV2_2" ~ "Transport comun",
Cod == "ASV2_3" ~ "Jos", Cod == "ASV2_4" ~ "Bicicletă/Role", Cod == "ASV2_5" ~ "Altele"
))
kable(transport_multiplu, col.names = c("Cod", "Frecvență", "Transport"))
ggplot(transport_multiplu, aes(x = Frecventa, y = reorder(Transport, Frecventa), fill = Frecventa)) +
geom_col() +
scale_fill_gradient(low = "#A2CD5A", high = "#458B00") +
labs(x = "Număr", y = "Transport") +
theme_minimal() + theme(legend.position = "none")
```
### Dimensiunea 4: Opinii despre spațiile verzi amenajate
\*Analiză realizată de: Tina (OSVA1), Diana (OSVA2-OSVA5)\*
#### 4.1 Întreținerea spațiilor verzi (OSVA1 – Tina)
```{r}
ggplot(data %>% filter(!is.na(OSVA1)), aes(x = factor(OSVA1), fill = factor(OSVA1))) +
geom_bar() +
scale_fill_manual(values = c("#5E2B97", "#8A54C7", "#C4A7E6", "#D3D3D3", "#A2CD5A", "#74A836", "#458B00"), guide = "none") +
labs(x = "Scor Likert (1-7)", y = "Respondenți") +
theme_minimal()
```
### Dimensiunea 5: Opinii despre spațiile verzi neamenajate
*Analiză realizată de: Diana, Raluca, Denisa*
*(Aici vei adăuga codul pentru OSVN1–OSVN9, similar cu OSVA1)*
### Dimensiunea 6: Responsabilitatea pentru spațiile verzi
*Analiză realizată de: Denisa, Robert, Codruta*
*(Aici adaugi RSP1–RSP9)*
### Dimensiunea 7: Voluntariat în spațiile verzi
*Analiză realizată de: Codruta Colceriu*
*(Aici adaugi VSP1–VSP3)*
### Dimensiunea 8: Statut socio-economic
*Analiză realizată de: Cristina Popescu, Lucia Iscru*
**1.** **Funcția summary pentru Vârstă, Gen, Studii, Venit** (funcția oferă statistici descriptive de bază: Minim, Quartila1, Mediana, Media, Quartila3 și Maxim)
**1.1.** **Interpretarea funcției summary pentru vector Vârstă:**
```{r}
library(ggplot2)
library(dplyr)
library(tidyr)
library(summarytools)
library(ggrepel)
### SUMMARY
summary(data$Varsta)
```
Extremele (Min 0.000 și Max 6.000): Scala este acoperită complet. Există cel puțin un respondent la categoria 0 (sub 18 ani) și cel puțin unul la categoria 6 (65 de ani și peste).
Mediana (2.000): Indică faptul că 50% din respondenți au ales o valoare din categoria 2 (25-34 de ani) sau mai mică (adică 0, 1 sau 2). Respondentul "mediu" se situează la categoria 2.
Media (2.281): Este mai mare decât mediana (2.281 \> 2.000), iar acest lucru indică o asimetrie pozitivă. Deși majoritatea respondenților sunt concentrați în categoriile 1 (18-24 de ani), 2 (25-34 de ani) și 3 (35-44 de ani), există un număr suficient de răspunsuri mari (4, 5 și 6) care "trag" media în sus față de centru.
Prima Quartilă (1.000): 25% din totalul respondenților au vârsta codificată 1 (18-24 de ani) sau mai mică (sub 18 ani).
A treia Quartilă (3.000): 75% din respondenți au o valoare de 3 (35-44 de ani) sau mai mică.
În concluzie, distribuția vârstei este concentrată în zona inferioară-de mijloc. Respondenții nu sunt distribuiți uniform, evită extremele (0 și 6) și valorile mari (4, 5). Faptul că media (2.281) este apropiată de mediană (2.000), dar totuși diferită, indică un grup majoritar pe 1, 2, 3, cu o "coadă" lungă și subțire de respondenți spre 4, 5 și 6 care influențează calculul mediei.
**1.2.** **Interpretarea funcției summary pentru vector Gen:**
```{r}
summary(data$Gen)
```
Faptul că Mediana și Q1 sunt 0.0000 indică faptul că peste 50% din respondenți au ales categoria 0 (feminin). Faptul că Q3 este 1.0000 indică faptul că 75% din respondenți au ales categoria 0 (feminin) și 1 (masculin).
Media (0.4039), deși cei mai mulți respondenți fac parte din categoria 0 (feminin), media este ceva mai mare de 0, ceea ce indică prezența celorlalte categorii.
Max (2.000) confirmă prezența respondenților din categoria 2 (“altele”), însă media mică sugerează un număr foarte mic de răspunsuri. Dacă ar fi fost mai mulți respondenți din categoria 2, media ar fi fost ceva mai mare).
**1.3.** **Interpretarea funcției summary pentru vector Studii:**
```{r}
summary(data$Studii)
```
Mediana (3.000): Jumătate din respondenți (50%) au un nivel de studii de 3 (licență) sau mai mic, iar cealaltă jumătate are 3 sau mai mare. Respondentul tipic se situează exact la categoria 3.
Media (2.813): Fiind mai mică decât mediana (2.813 \< 3.000), acest lucru indică o ușoară asimetrie negativă, există un grup suficient de mare de respondenți cu valori mici (0-gimnazial, 1-liceal, 2-postliceal) care "trag" media în jos față de mediană.
Q1 (2.000): 25% din respondenți au studii de nivel 2 sau mai mic. Aceasta indică faptul că un sfert din eșantion are un nivel de educație scăzut (variantele 0, 1 sau 2).
Q3 (4.000): 75% din respondenți au studii de nivel 4 (master) sau mai mic.
Min 0.000 și Max 5.0000: Scala este complet acoperită. Există respondenți atât la nivelul cel mai de jos (0), cât și la cel mai înalt (5), ceea ce indică o diversitate a eșantionului, fără a exclude nicio categorie educațională.
În concluzie, eșantionul este dominat de respondenți cu studii medii (categoria 3), având, totodată, și o minoritate semnificativă cu studii scăzute (25% din categoria 2 sau mai mică) și o minoritate similară cu studii superioare (25% din categoria 4 sau mai mare).
**1.4.** **Interpretarea funcției summary pentru vector Venit:**
```{r}
summary(data$Venit)
```
Mediana (3.00): Respondentul "mediu" se află exact la mijlocul scalei (categoria 3 – 4001-6000 RON). 50% dintre respondenți au venituri din categoria 3 sau mai mici, iar 50% au venituri din categoria 3 sau mai mari.
Media (2.98): Este aproape identică cu mediana (2.98 ≈ 3.00). De obicei, acest lucru sugerează o distribuție simetrică (normală).
Q1 (1.00): 25% din respondenți au venituri foarte mici (0 sau 1).
Q3 (5.00): 75% din respondenți au venituri de 5 sau mai mici, ceea ce înseamnă că 25% din eșantion este concentrat la capătul superior (valorile 5 și 6).
Diferența mare dintre Q1 (1) și Q3 (5) indică faptul că doar 50% din populație este cuprinsă între categoriile 1 și 5. Restul de 50% este împărțit între extremele inferioare (0-1) și cele superioare (5-6).
**2.** **Pie chart pentru fiecare variabilă (Vârstă, Gen, Studii, Venit)**
**2.1. Vârstă**: Cei mai mulți respondenți (38%) au vârsta cuprinsă între 18-24 de ani. 23% au între 35-44 de ani, iar 21% între 25-34 de ani. Practic, eșantionul nostru este reprezentat de persoane cu vârsta cuprinsă între 18 – 44 de ani (în acest interval sunt cei mai mulți respondenți). Restul respondenților sunt distribuiți între 55-64 de ani (8%), 45-54 de ani (6%), 65 de ani și peste (2%) și 1% (sub 18 ani).
```{r}
### PIECHART
library(ggplot2)
data_summary_varsta <- data %>%
group_by(Varsta) %>%
summarise(n = n(), .groups = 'drop') %>%
mutate(prop = n / sum(n),
label_pos = cumsum(prop) - prop / 2,
Varsta_Categorii = factor(Varsta,
levels = c(0, 1, 2, 3, 4, 5, 6),
labels = c("Sub 18 ani",
"18-24 ani",
"25-34 ani",
"35-44 ani",
"45-54 ani",
"55-64 ani",
"65 ani și peste")))
data_label_varsta <- data_summary_varsta %>%
arrange(desc(Varsta_Categorii)) %>%
mutate(ypos = cumsum(prop) - prop / 2)
ggplot(data_label_varsta, aes(x = "", y = prop, fill = Varsta_Categorii)) +
geom_col(width = 1, color = "white") +
coord_polar(theta = "y", clip = "off") +
geom_label_repel(
aes(y = ypos, label = paste0(round(prop * 100), "%")),
nudge_x = 0.7,
direction = "y",
segment.color = "grey50",
segment.size = 0.5,
arrow = arrow(length = unit(0.03, "inches"), type = "closed"),
size = 5,
show.legend = FALSE
) +
scale_fill_brewer(palette = "Set3") +
theme_void() +
labs(title = "Distribuția respondenților pe categorii de Vârstă",
subtitle = "Structura eșantionului în funcție de grupele de vârstă",
)
```
```{r}
library(ggplot2)
library(dplyr)
library(tidyr)
library(summarytools)
library(ggrepel)
### SUMMARY
summary(data$Varsta)
summary(data$Gen)
summary(data$Studii)
summary(data$Venit)
### PIECHART
data_summary_varsta <- data %>%
group_by(Varsta) %>%
summarise(n = n(), .groups = 'drop') %>%
mutate(prop = n / sum(n),
label_pos = cumsum(prop) - prop / 2,
Varsta_Categorii = factor(Varsta,
levels = c(0, 1, 2, 3, 4, 5, 6),
labels = c("Sub 18 ani",
"18-24 ani",
"25-34 ani",
"35-44 ani",
"45-54 ani",
"55-64 ani",
"65 ani și peste")))
data_summary_gen <- data %>%
group_by(Gen) %>%
summarise(n = n(), .groups = 'drop') %>%
mutate(prop = n / sum(n),
label_pos = cumsum(prop) - prop / 2,
Gen_Categorii = factor(Gen,
levels = c(0, 1, 2),
labels = c("feminin",
"masculin",
"altele")))
data_summary_venituri <- data %>%
group_by(Venit) %>%
summarise(n = n(), .groups = 'drop') %>%
mutate(prop = n / sum(n),
label_pos = cumsum(prop) - prop / 2,
Venituri_Categorii = factor(Venit,
levels = c(0, 1, 2, 3, 4, 5, 6),
labels = c("nu am venit",
"sub 2500",
"2501-4000",
"4001-6000",
"6001-8000",
"8001-10000",
"prefer să nu raspund")))
data_summary_studii <- data %>%
group_by(Studii) %>%
summarise(n = n(), .groups = 'drop') %>%
mutate(prop = n / sum(n),
label_pos = cumsum(prop) - prop / 2,
Studii_Categorii = factor(Studii,
levels = c(0, 1, 2, 3, 4, 5),
labels = c("gimnaziale",
"liceale",
"postliceale",
"licenta",
"master",
"altele")))
data_label_varsta <- data_summary_varsta %>%
arrange(desc(Varsta_Categorii)) %>%
mutate(ypos = cumsum(prop) - prop / 2)
data_label_gen <- data_summary_gen %>%
arrange(desc(Gen_Categorii)) %>%
mutate(ypos = cumsum(prop) - prop / 2)
data_label_venituri <- data_summary_venituri %>%
arrange(desc(Venituri_Categorii)) %>%
mutate(ypos = cumsum(prop) - prop / 2)
data_label_studii <- data_summary_studii %>%
arrange(desc(Studii_Categorii)) %>%
mutate(ypos = cumsum(prop) - prop / 2)
ggplot(data_label_varsta, aes(x = "", y = prop, fill = Varsta_Categorii)) +
geom_col(width = 1, color = "white") +
coord_polar(theta = "y", clip = "off") +
geom_label_repel(
aes(y = ypos, label = paste0(round(prop * 100), "%")),
nudge_x = 0.7,
direction = "y",
segment.color = "grey50",
segment.size = 0.5,
arrow = arrow(length = unit(0.03, "inches"), type = "closed"),
size = 5,
show.legend = FALSE
) +
scale_fill_brewer(palette = "Set3") +
theme_void() +
labs(title = "Distribuția respondenților pe categorii de Vârstă",
subtitle = "Structura eșantionului în funcție de grupele de vârstă",
)
ggplot(data_label_gen, aes(x = "", y = prop, fill = Gen_Categorii)) +
geom_col(width = 1, color = "white") +
coord_polar(theta = "y", clip = "off") +
geom_label_repel(
aes(y = ypos, label = paste0(round(prop * 100), "%")),
nudge_x = 0.7,
direction = "y",
segment.color = "grey50",
segment.size = 0.5,
arrow = arrow(length = unit(0.03, "inches"), type = "closed"),
size = 5,
show.legend = FALSE
) +
scale_fill_brewer(palette = "Set3") +
theme_void() +
labs(title = "Distribuția respondenților pe categorii de Gen",
subtitle = "Structura eșantionului în funcție de gen",
)
ggplot(data_label_venituri, aes(x = "", y = prop, fill = Venituri_Categorii)) +
geom_col(width = 1, color = "white") +
coord_polar(theta = "y", clip = "off") +
geom_label_repel(
aes(y = ypos, label = paste0(round(prop * 100), "%")),
nudge_x = 0.7,
direction = "y",
segment.color = "grey50",
segment.size = 0.5,
arrow = arrow(length = unit(0.03, "inches"), type = "closed"),
size = 5,
show.legend = FALSE
) +
scale_fill_brewer(palette = "Set3") +
theme_void() +
labs(title = "Distribuția respondenților pe categorii de Venituri",
subtitle = "Structura eșantionului în funcție de grupele de venituri",
)
ggplot(data_label_studii, aes(x = "", y = prop, fill = Studii_Categorii)) +
geom_col(width = 1, color = "white") +
coord_polar(theta = "y", clip = "off") +
geom_label_repel(
aes(y = ypos, label = paste0(round(prop * 100), "%")),
nudge_x = 0.7,
direction = "y",
segment.color = "grey50",
segment.size = 0.5,
arrow = arrow(length = unit(0.03, "inches"), type = "closed"),
size = 5,
show.legend = FALSE
) +
scale_fill_brewer(palette = "Set3") +
theme_void() +
labs(title = "Distribuția respondenților pe categorii de Studii",
subtitle = "Structura eșantionului în funcție de grupele de studii",
)
### BAR CHART
data_demog <- data %>%
select(OSVA2, Varsta, Gen, Studii, Venit) %>%
mutate(Varsta_Categorii = factor(Varsta,
levels = c(0, 1, 2, 3, 4, 5, 6),
labels = c("Sub 18 ani",
"18-24 ani",
"25-34 ani",
"35-44 ani",
"45-54 ani",
"55-64 ani",
"65 ani și peste")),
Gen_Categorii = factor(Gen,
levels = c(0, 1, 2),
labels = c("feminin",
"masculin",
"altele")),
Studii_Categorii = factor(Studii,
levels = c(0, 1, 2, 3, 4, 5),
labels = c("gimnaziale",
"liceale",
"postliceale",
"licență",
"master",
"altele" )),
Venit_Categorii = factor(Venit,
levels = c(0, 1, 2, 3, 4, 5, 6),
labels = c("nu am venit",
"sub 2500",
"2501-4000",
"4001-6000",
"6001-8000",
"8001-10000",
"prefer să nu raspund"))
)
ggplot(data_demog, aes(x = Varsta_Categorii, fill = Varsta_Categorii)) +
geom_bar(color = "white", alpha = 0.85) +
geom_text(stat = 'count', aes(label = ..count..), vjust = -0.4, size = 4, fontface = "bold") +
scale_fill_viridis_d(option = "plasma", guide = "none") +
labs(title = "Distribuția respondenților pe categorii de Vârstă",
subtitle = "Structura eșantionului în funcție de grupele de vârstă",
x = "Interval de vârstă",
y = "Număr respondenți") +
theme_minimal() +
theme(
axis.text.x = element_text(angle = 30, hjust = 1, vjust = 1, size = 11),
plot.title = element_text(face = "bold", size = 14)
)
ggplot(data_demog, aes(x = Gen_Categorii, fill = Gen_Categorii)) +
geom_bar(color = "white", alpha = 0.85) +
geom_text(stat = 'count', aes(label = ..count..), vjust = -0.4, size = 4, fontface = "bold") +
scale_fill_viridis_d(option = "plasma", guide = "none") +
labs(title = "Distribuția respondenților pe categorii de Gen",
subtitle = "Structura eșantionului în funcție de gen",
x = "Gen",
y = "Număr respondenți") +
theme_minimal() +
theme(
axis.text.x = element_text(angle = 30, hjust = 1, vjust = 1, size = 11),
plot.title = element_text(face = "bold", size = 14)
)
ggplot(data_demog, aes(x = Studii_Categorii, fill = Studii_Categorii)) +
geom_bar(color = "white", alpha = 0.85) +
geom_text(stat = 'count', aes(label = ..count..), vjust = -0.4, size = 4, fontface = "bold") +
scale_fill_viridis_d(option = "plasma", guide = "none") +
labs(title = "Distribuția respondenților pe categorii de Studii",
subtitle = "Structura eșantionului în funcție de grupele de studii",
x = "Studii",
y = "Număr respondenți") +
theme_minimal() +
theme(
axis.text.x = element_text(angle = 30, hjust = 1, vjust = 1, size = 11),
plot.title = element_text(face = "bold", size = 14)
)
ggplot(data_demog, aes(x = Venit_Categorii, fill = Venit_Categorii)) +
geom_bar(color = "white", alpha = 0.85) +
geom_text(stat = 'count', aes(label = ..count..), vjust = -0.4, size = 4, fontface = "bold") +
scale_fill_viridis_d(option = "plasma", guide = "none") +
labs(title = "Distribuția respondenților pe categorii de Venit",
subtitle = "Structura eșantionului în funcție de grupele de venit",
x = "Venit",
y = "Număr respondenți") +
theme_minimal() +
theme(
axis.text.x = element_text(angle = 30, hjust = 1, vjust = 1, size = 11),
plot.title = element_text(face = "bold", size = 14)
)
### CORELATIE
cor.test(data_demog$OSVA2,data_demog$Varsta, method = "spearman", exact = F)
# Boxplot
ggplot(data_demog, aes(x = Varsta_Categorii, y = OSVA2, fill = Varsta_Categorii)) +
geom_boxplot(outlier.color = "gray50", outlier.shape = 16, outlier.size = 2) +
scale_y_continuous(
breaks = c(1, 2, 3, 4, 5, 6, 7),
labels = c(
"1-Total dezacord",
"2-Dezacord",
"3-Dezacord parțial",
"4-Neutru",
"5-Acord parțial",
"6-Acord",
"7-Complet acord"
),
limits = c(0.5, 7.5)
) +
labs(
title = "Distribuția pe Vârstă a variabilei Likert “Reducerea numărului de locuri de parcare\ndin București în favoarea spațiilor verzi este o măsură justificată”",
x = "Grupa de Vârstă",
y = "Nivel de Acord"
) +
scale_fill_brewer(palette = "Spectral", direction = -1) +
theme_minimal(base_size = 11) +
theme(
axis.text.x = element_text(angle = 45, hjust = 1, vjust = 1),
axis.text.y = element_text(size = 8, hjust = 1),
legend.position = "none",
panel.grid.major.y = element_line(color = "gray90"),
panel.grid.minor = element_blank(),
plot.margin = margin(10, 20, 10, 10),
plot.title = element_text(hjust = 0.5, face = "bold", lineheight = 1.2)
)
# Heatmap
heatmap_data_OSVA2_Varsta <- data_demog %>%
count(Varsta_Categorii, OSVA2, name = "Frecventa") %>%
mutate(
OSVA2 = factor(OSVA2),
text_color = ifelse(Frecventa > max(Frecventa) * 0.6, "white", "black")
)
heatmap_data_OSVA2_Varsta <- heatmap_data_OSVA2_Varsta %>%
mutate(OSVA2 = as.numeric(as.character(OSVA2)))
ggplot(heatmap_data_OSVA2_Varsta, aes(x = Varsta_Categorii, y = OSVA2, fill = Frecventa)) +
geom_tile(color = "white") +
geom_text(aes(label = Frecventa, color = text_color), fontface = "bold", size = 3.5) +
scale_fill_viridis_c(option = "plasma", direction = -1, name = "Frecvența") +
scale_color_identity() +
scale_y_continuous(
breaks = c(1, 2, 3, 4, 5, 6, 7),
labels = c(
"1-Total dezacord", "2-Dezacord", "3-Dezacord parțial",
"4-Neutru", "5-Acord parțial", "6-Acord", "7-Complet acord"
),
limits = c(0.5, 7.5),
expand = c(0, 0)
) +
labs(
title = "Frecvența răspunsurilor la variabila “Reducerea numărului de locuri de parcare\ndin București în favoarea spațiilor verzi este o măsură justificată” pe Vârstă",
x = "Grupa de Vârstă",
y = "Nivel de Acord"
) +
theme_minimal(base_size = 10) +
theme(
axis.text.x = element_text(angle = 45, hjust = 1, vjust = 1),
axis.text.y = element_text(size = 7.5, hjust = 1),
plot.margin = margin(10, 25, 10, 10)
)
```
### Dimensiunea 9: Opinia persoanelor cu copii
*Analiză realizată de: Lucia, Franci*
*(Aici adaugi SVC1–SVC7)*
```{r}
# 6. Corelații (opțional) – de exemplu, între OSVA1 și vârstă/venit
# -------------------------------------------------------------------
cor.test(data$OSVA1, data$Varsta, method = "spearman", exact = FALSE)
cor.test(data$OSVA1, data$Venit, method = "spearman", exact = FALSE)
```
*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
*(Concluziile generale ale tuturor – fiecare student poate contribui cu o frază)*
- **Tina:** Locuitorii din București sunt în general nemulțumiți de întreținerea spațiilor verzi (media = 3,59/7).
- **Iulia:** Majoritatea respondenților consideră că un spațiu verde înseamnă un parc amenajat.
- etc.