commit b041ccc11a6a978a1ebdc5177b4fcbb4be36ac97 Author: Victor Phan Date: Wed Jul 8 14:17:57 2026 +0700 Initial commit diff --git a/Age_Distribution.png b/Age_Distribution.png new file mode 100644 index 0000000..d2b90eb Binary files /dev/null and b/Age_Distribution.png differ diff --git a/Analytical dataset.jasp b/Analytical dataset.jasp new file mode 100644 index 0000000..54f518c Binary files /dev/null and b/Analytical dataset.jasp differ diff --git a/CA_Detailed_Correlation_Matrix.csv b/CA_Detailed_Correlation_Matrix.csv new file mode 100644 index 0000000..5fc2c44 --- /dev/null +++ b/CA_Detailed_Correlation_Matrix.csv @@ -0,0 +1,8 @@ +,Temperature,Noise,Stormwind,Respiratory,Exercises,Culture,Beauty,Education,Society,Spirit,Dirty,Unsafe,Danger +Park,0.5861277411758214,0.46872135461497316,0.5433785341732876,0.552634098528652,0.6278282242144403,0.5249311710036608,0.6010523214572643,0.6698801970338424,0.592175252811864,0.5873765414225279,-0.4119222589542689,-0.36935992311052424,-0.47499404654301275 +Residential,0.610813681241285,0.5010876976294922,0.5812495058768619,0.6308055529227076,0.6905711940417876,0.5336682510392587,0.7050811390341176,0.6880894492038738,0.6281007540295365,0.6725382465666585,-0.4172763562532894,-0.3683423748854766,-0.47006223532477215 +Garden,0.45224716780106355,0.3994427050538716,0.41423108867853403,0.4171592620121273,0.5703375228779752,0.42420205471782707,0.5225523665124601,0.5586006221718542,0.4604821197705184,0.4741367465117808,-0.3021035545730409,-0.2690208910002917,-0.33928178580122825 +Rooftop,0.4960914195506356,0.4389763334105073,0.4741573996062278,0.4043299683546717,0.5234138548608293,0.40036627443478834,0.5613291264190557,0.5137072417522562,0.4507351073588117,0.533245963504779,-0.3044536381978058,-0.3287078138585324,-0.3540628872780644 +Recreation,0.40870892534299835,0.36018022246155923,0.38726035929996405,0.327640261869753,0.4435840120247182,0.41597785467253595,0.41702432907643733,0.46845721173859056,0.337735516408859,0.346506311430844,-0.08584770592904668,-0.14113338302330178,-0.2698727403572271 +Agriculture,-0.3186847619885256,-0.22410153490737583,-0.31116783542012505,-0.31164843416963245,-0.29672463363412205,-0.08295065998935172,-0.407725512606722,-0.34041202068253673,-0.33774567405476646,-0.3661505107268029,0.4906684665223075,0.4667053886536356,0.5249948486680992 +Nature,-0.4377274782376116,-0.2893202018289482,-0.47487184947631206,-0.4416794342162952,-0.4395911413850507,-0.2583285861208512,-0.4891875676625891,-0.4669790589031381,-0.4642512201471137,-0.5258378364708906,0.5182221077803194,0.5103204875306926,0.5338960402111311 diff --git a/CA_Detailed_Services_Coords.csv b/CA_Detailed_Services_Coords.csv new file mode 100644 index 0000000..6cc6460 --- /dev/null +++ b/CA_Detailed_Services_Coords.csv @@ -0,0 +1,14 @@ +,0,1 +Temperature,-0.15445511914940652,0.006990515901429791 +Noise,-0.07615894298740968,0.00700492282153885 +Stormwind,-0.1563914823055307,0.007878888704259901 +Respiratory,-0.14800873993854352,-0.011635761620414456 +Exercises,-0.16208617036601874,-0.0003806098068870642 +Culture,-0.04550439013316019,0.00881620114706321 +Beauty,-0.19796961667785237,-0.0012069882779817856 +Education,-0.17984311395007466,0.008345565782577814 +Society,-0.16523244764182207,-0.011179747262609863 +Spirit,-0.1938278638629291,-0.01479224672248243 +Dirty,0.662990083180058,0.026367956173616355 +Unsafe,0.6446258846820032,-0.0004123561994046179 +Danger,0.7399178159934315,-0.028168947040193765 diff --git a/CA_Detailed_UGS_Coords.csv b/CA_Detailed_UGS_Coords.csv new file mode 100644 index 0000000..1485907 --- /dev/null +++ b/CA_Detailed_UGS_Coords.csv @@ -0,0 +1,8 @@ +,0,1 +Park,-0.20737329331501148,-0.002436125971632047 +Residential,-0.2155834258211865,-0.011730849372120936 +Garden,-0.14244079709884974,-0.004395477787898166 +Rooftop,-0.15500847340894128,-0.003399988119557015 +Recreation,-0.0682883185805637,0.027918075759378963 +Agriculture,0.5601149289877119,-0.005751109303690985 +Nature,0.6998145216538895,-0.0007509375795379177 diff --git a/CA_plot_detailed.png b/CA_plot_detailed.png new file mode 100644 index 0000000..7f5f65f Binary files /dev/null and b/CA_plot_detailed.png differ diff --git a/Data_VN_filter_v5.xlsx b/Data_VN_filter_v5.xlsx new file mode 100644 index 0000000..665057f Binary files /dev/null and b/Data_VN_filter_v5.xlsx differ diff --git a/Data_VN_filter_v5_with_clusters.xlsx b/Data_VN_filter_v5_with_clusters.xlsx new file mode 100644 index 0000000..02ac3bc Binary files /dev/null and b/Data_VN_filter_v5_with_clusters.xlsx differ diff --git a/Demographics_Charts.png b/Demographics_Charts.png new file mode 100644 index 0000000..7736ba1 Binary files /dev/null and b/Demographics_Charts.png differ diff --git a/ESS_UGS_HCM-20260621T160840Z-3-001.zip b/ESS_UGS_HCM-20260621T160840Z-3-001.zip new file mode 100644 index 0000000..55cb4a4 Binary files /dev/null and b/ESS_UGS_HCM-20260621T160840Z-3-001.zip differ diff --git a/ESS_UGS_HCM/2023_UE_ESS_UGS.pdf b/ESS_UGS_HCM/2023_UE_ESS_UGS.pdf new file mode 100644 index 0000000..7cc865c Binary files /dev/null and b/ESS_UGS_HCM/2023_UE_ESS_UGS.pdf differ diff --git a/ESS_UGS_HCM/Data/BẢNG HỎI _ DL MÃ HÓA.docx b/ESS_UGS_HCM/Data/BẢNG HỎI _ DL MÃ HÓA.docx new file mode 100644 index 0000000..495195c Binary files /dev/null and b/ESS_UGS_HCM/Data/BẢNG HỎI _ DL MÃ HÓA.docx differ diff --git a/ESS_UGS_HCM/Data/Data_VN_filter_gốc.xlsx b/ESS_UGS_HCM/Data/Data_VN_filter_gốc.xlsx new file mode 100644 index 0000000..d8c5bd0 Binary files /dev/null and b/ESS_UGS_HCM/Data/Data_VN_filter_gốc.xlsx differ diff --git a/ESS_UGS_HCM/Data/Data_VN_filter_v2.xlsx b/ESS_UGS_HCM/Data/Data_VN_filter_v2.xlsx new file mode 100644 index 0000000..37dbb36 Binary files /dev/null and b/ESS_UGS_HCM/Data/Data_VN_filter_v2.xlsx differ diff --git a/ESS_UGS_HCM/Data/Data_explaination.docx b/ESS_UGS_HCM/Data/Data_explaination.docx new file mode 100644 index 0000000..744aea7 Binary files /dev/null and b/ESS_UGS_HCM/Data/Data_explaination.docx differ diff --git a/ESS_UGS_HCM/Data/desktop.ini b/ESS_UGS_HCM/Data/desktop.ini new file mode 100644 index 0000000..03fd910 Binary files /dev/null and b/ESS_UGS_HCM/Data/desktop.ini differ diff --git a/ESS_UGS_HCM/Questionnaire/11252_2023_1482_MOESM1_ESM.docx b/ESS_UGS_HCM/Questionnaire/11252_2023_1482_MOESM1_ESM.docx new file mode 100644 index 0000000..9ae1e7b Binary files /dev/null and b/ESS_UGS_HCM/Questionnaire/11252_2023_1482_MOESM1_ESM.docx differ diff --git a/ESS_UGS_HCM/Questionnaire/Mẫu-hỏi-phỏng-vấn-công-viên_11082021.docx b/ESS_UGS_HCM/Questionnaire/Mẫu-hỏi-phỏng-vấn-công-viên_11082021.docx new file mode 100644 index 0000000..9eda087 Binary files /dev/null and b/ESS_UGS_HCM/Questionnaire/Mẫu-hỏi-phỏng-vấn-công-viên_11082021.docx differ diff --git a/ESS_UGS_HCM/Questionnaire/Survey questionnare about Urban Green Space Ecosystem services - English version - Google Forms.pdf b/ESS_UGS_HCM/Questionnaire/Survey questionnare about Urban Green Space Ecosystem services - English version - Google Forms.pdf new file mode 100644 index 0000000..4df4f44 Binary files /dev/null and b/ESS_UGS_HCM/Questionnaire/Survey questionnare about Urban Green Space Ecosystem services - English version - Google Forms.pdf differ diff --git a/ESS_UGS_HCM/Questionnaire/desktop.ini b/ESS_UGS_HCM/Questionnaire/desktop.ini new file mode 100644 index 0000000..03fd910 Binary files /dev/null and b/ESS_UGS_HCM/Questionnaire/desktop.ini differ diff --git a/ESS_UGS_HCM/[ĐÃ CẬP NHẬT] ĐƠN XIN SỬ DỤNG DỮ LIỆU NGHIÊN CỨU.pdf b/ESS_UGS_HCM/[ĐÃ CẬP NHẬT] ĐƠN XIN SỬ DỤNG DỮ LIỆU NGHIÊN CỨU.pdf new file mode 100644 index 0000000..2b99310 Binary files /dev/null and b/ESS_UGS_HCM/[ĐÃ CẬP NHẬT] ĐƠN XIN SỬ DỤNG DỮ LIỆU NGHIÊN CỨU.pdf differ diff --git a/ESS_UGS_HCM/ĐƠN XIN SỬ DỤNG DỮ LIỆU NGHIÊN CỨU.pdf b/ESS_UGS_HCM/ĐƠN XIN SỬ DỤNG DỮ LIỆU NGHIÊN CỨU.pdf new file mode 100644 index 0000000..663a6c8 Binary files /dev/null and b/ESS_UGS_HCM/ĐƠN XIN SỬ DỤNG DỮ LIỆU NGHIÊN CỨU.pdf differ diff --git a/KẾT QUẢ PHÂN TÍCH.xlsx b/KẾT QUẢ PHÂN TÍCH.xlsx new file mode 100644 index 0000000..23eff81 Binary files /dev/null and b/KẾT QUẢ PHÂN TÍCH.xlsx differ diff --git a/Kế hoạch triển khai chạy dữ liệu.docx b/Kế hoạch triển khai chạy dữ liệu.docx new file mode 100644 index 0000000..644a319 Binary files /dev/null and b/Kế hoạch triển khai chạy dữ liệu.docx differ diff --git a/Logistic_Results_Decision.csv b/Logistic_Results_Decision.csv new file mode 100644 index 0000000..66c58d3 --- /dev/null +++ b/Logistic_Results_Decision.csv @@ -0,0 +1,40 @@ +,Beta (B),P-value,Odds Ratio EXP(B),Significance +Rooftop,3.0756,0.0079,21.6626,** +Frequency_4,5.5916,0.0129,268.1578,* +Career_6,9.1882,0.0176,9781.3356,* +Career_4,6.1367,0.022,462.5281,* +Career_3,7.1144,0.0315,1229.5645,* +Income,0.011,0.0387,1.0111,* +MEAN CES,2.9215,0.0495,18.5696,* +Garden,-2.2436,0.0545,0.1061, +const,-22.5952,0.0608,0.0, +Transportation_3,4.0109,0.0812,55.1958, +Nature,-1.545,0.1226,0.2133, +Frequency_5,2.4568,0.1369,11.668, +MEAN DES,-0.5645,0.188,0.5686, +Frequency_3,2.0046,0.2622,7.4228, +Gender_2,1.6345,0.2689,5.1269, +Transportation_5,8.8139,0.2931,6726.8423, +MEAN RES,-0.8526,0.3366,0.4263, +Recreation,-0.5931,0.3811,0.5526, +Agriculture,0.6439,0.4038,1.904, +Distance_2,1.3034,0.4172,3.6819, +Park,0.7798,0.431,2.181, +Transportation_4,2.0649,0.4405,7.8846, +Time_4,1.74,0.5326,5.6971, +Distance_4,-1.2593,0.5443,0.2838, +Distance_3,1.2619,0.6309,3.532, +Literacy_3,-3.3014,0.6631,0.0368, +Frequency_2,0.683,0.7017,1.9799, +Career_5,1.4116,0.7259,4.1024, +Literacy_2,-2.6458,0.7276,0.071, +Time_5,-0.8678,0.7459,0.4199, +Residential,0.3326,0.7564,1.3946, +Career_2,0.7339,0.7868,2.0831, +Time_3,-0.7335,0.7979,0.4802, +Literacy_6,1.6746,0.8247,5.3367, +Transportation_2,0.3599,0.8906,1.4332, +Literacy_4,-0.8905,0.9037,0.4105, +Distance_5,-0.1975,0.933,0.8208, +Time_2,0.2227,0.9368,1.2494, +Literacy_5,-6.5281,0.978,0.0015, diff --git a/Logistic_Results_Decision_Final.csv b/Logistic_Results_Decision_Final.csv new file mode 100644 index 0000000..82ffbef --- /dev/null +++ b/Logistic_Results_Decision_Final.csv @@ -0,0 +1,25 @@ +,Beta (B),P-value,Odds Ratio EXP(B),Significance +const,-13.3839,0.0078,0.0,** +Frequency,0.7183,0.0098,2.051,** +Career_6,4.1539,0.0105,63.6799,* +Rooftop,1.7017,0.0123,5.4833,* +Income,0.0045,0.0229,1.0045,* +Transportation_4,4.6473,0.0284,104.3069,* +MEAN CES,1.8488,0.0288,6.3523,* +Career_4,2.8862,0.0334,17.9242,* +Career_3,3.4267,0.0368,30.7762,* +Garden,-1.4026,0.0446,0.246,* +MEAN DES,-0.4982,0.0586,0.6076, +Transportation_3,2.1343,0.0739,8.4512, +Literacy,0.5519,0.0906,1.7365, +Gender_2,1.1137,0.1406,3.0455, +Nature,-0.6135,0.2466,0.5415, +MEAN RES,-0.6547,0.2723,0.5196, +Residential,0.6836,0.391,1.981, +Time,-0.1722,0.5721,0.8418, +Distance,-0.161,0.6202,0.8513, +Transportation_2,0.6629,0.6341,1.9404, +Recreation,-0.1187,0.7927,0.8881, +Career_2,0.347,0.8054,1.4148, +Park,-0.1024,0.8656,0.9027, +Agriculture,-0.0665,0.8894,0.9356, diff --git a/Logistic_Results_Donation.csv b/Logistic_Results_Donation.csv new file mode 100644 index 0000000..5d585e5 --- /dev/null +++ b/Logistic_Results_Donation.csv @@ -0,0 +1,40 @@ +,Beta (B),P-value,Odds Ratio EXP(B),Significance +const,241.6608,,8.952878165232437e+104, +Income,-0.9832,,0.3741, +MEAN RES,-6.4358,,0.0016, +MEAN CES,72.6282,,3.4836963617736678e+31, +MEAN DES,-95.8865,,0.0, +Park,-50.6859,,0.0, +Residential,258.3765,,1.6273086710804255e+112, +Garden,-10.3217,,0.0, +Rooftop,-133.4091,,0.0, +Recreation,-20.842,,0.0, +Agriculture,0.7005,,2.0148, +Nature,-82.9613,,0.0, +Gender_2,-102.1304,,0.0, +Career_2,221.4766,,1.534848675005764e+96, +Career_3,85.8488,,1.9215803519284693e+37, +Career_4,29.8107,,8843571707594.404, +Career_5,-19.9903,,0.0, +Career_6,271.5147,,8.266885235464909e+117, +Literacy_2,-45.5232,,0.0, +Literacy_3,74.167,,1.6230180759688443e+32, +Literacy_4,-130.4477,,0.0, +Literacy_5,41.9698,,1.6875893967463475e+18, +Literacy_6,239.8173,,1.4168061493135717e+104, +Frequency_2,-64.3464,,0.0, +Frequency_3,129.1509,,1.2289014711896098e+56, +Frequency_4,16.8335,,20449449.0163, +Frequency_5,90.1682,,1.4439203359332122e+39, +Distance_2,121.504,,5.868283849671952e+52, +Distance_3,-19.3408,,0.0, +Distance_4,-8.0289,,0.0003, +Distance_5,106.1989,,1.3231308267100774e+46, +Time_2,123.4271,,4.015015109349733e+53, +Time_3,293.3949,,2.628883873565357e+127, +Time_4,172.2575,,6.463889160702152e+74, +Time_5,91.6604,,6.420867256078891e+39, +Transportation_2,86.2789,,2.9541644055797275e+37, +Transportation_3,-67.1359,,0.0, +Transportation_4,-197.7757,,0.0, +Transportation_5,135.1477,,4.941998234455287e+58, diff --git a/Logistic_Results_Donation_Optimized.csv b/Logistic_Results_Donation_Optimized.csv new file mode 100644 index 0000000..2458669 --- /dev/null +++ b/Logistic_Results_Donation_Optimized.csv @@ -0,0 +1,24 @@ +,Beta (B),P-value,Odds Ratio EXP(B),Significance +Income,-0.017,0.0117,0.9832,* +MEAN DES,-5.6329,0.0249,0.0036,* +Gender_2,-7.432,0.027,0.0006,* +Time_4,5.816,0.0298,335.6267,* +Time_3,5.3233,0.0298,205.0572,* +const,27.0847,0.0353,579100469868.4305,* +Distance_4,-8.7398,0.0361,0.0002,* +Rooftop,-5.4289,0.0401,0.0044,* +Time_5,5.3394,0.0409,208.3824,* +Distance_2,6.5306,0.0559,685.8324, +Frequency_4,-5.2178,0.0633,0.0054, +Residential,5.1802,0.0838,177.7147, +Time_2,4.0494,0.1046,57.3616, +Frequency_2,-3.975,0.1085,0.0188, +Distance_3,-7.5816,0.1122,0.0005, +MEAN CES,3.2436,0.1387,25.6258, +MEAN RES,-1.1166,0.2921,0.3274, +Distance_5,-2.7017,0.3015,0.0671, +Park,-0.7466,0.427,0.474, +Frequency_5,-1.4957,0.5301,0.2241, +Frequency_3,1.1843,0.6466,3.2683, +Garden,0.3512,0.7775,1.4208, +Recreation,-0.2539,0.8091,0.7758, diff --git a/Logistic_Results_Donation_SMOTE.csv b/Logistic_Results_Donation_SMOTE.csv new file mode 100644 index 0000000..ff6d04c --- /dev/null +++ b/Logistic_Results_Donation_SMOTE.csv @@ -0,0 +1,39 @@ +,Beta (B),P-value,Odds Ratio EXP(B),Significance +Income,-2.8338,,0.0588, +MEAN RES,48.1663,,8.286505072393699e+20, +MEAN CES,-76.1806,,0.0, +MEAN DES,-526.8965,,0.0, +Park,248.7626,,1.0869776475523444e+108, +Residential,640.3286,,1.2336668793552433e+278, +Garden,-72.3975,,0.0, +Rooftop,-315.0215,,0.0, +Recreation,-154.3187,,0.0, +Agriculture,187.0536,,1.7232967765552025e+81, +Nature,-245.4922,,0.0, +Gender_2,-839.4743,,0.0, +Career_2,859.4998,,inf, +Career_3,297.7703,,2.0893254878873172e+129, +Career_4,66.9201,,1.1562405239310425e+29, +Career_5,-83.3945,,0.0, +Career_6,1086.722,,inf, +Literacy_2,-283.0314,,0.0, +Literacy_3,224.4999,,3.1555822056480755e+97, +Literacy_4,-346.8743,,0.0, +Literacy_5,-43.1503,,0.0, +Literacy_6,852.4063,,inf, +Frequency_2,-517.3563,,0.0, +Frequency_3,784.8878,,inf, +Frequency_4,107.516,,4.938524666347628e+46, +Frequency_5,177.2764,,9.775622061244049e+76, +Distance_2,699.6584,,7.207639799224717e+303, +Distance_3,-293.3604,,0.0, +Distance_4,-263.5867,,0.0, +Distance_5,878.1242,,inf, +Time_2,537.512,,2.7448363654811603e+233, +Time_3,1220.1209,,inf, +Time_4,862.3738,,inf, +Time_5,821.0535,,inf, +Transportation_2,545.895,,1.1999777427858181e+237, +Transportation_3,-10.0038,,0.0, +Transportation_4,-849.1301,,0.0, +Transportation_5,445.7974,,4.0490831821011e+193, diff --git a/MASTERPLAN.xlsx b/MASTERPLAN.xlsx new file mode 100644 index 0000000..57935fd Binary files /dev/null and b/MASTERPLAN.xlsx differ diff --git a/Outline đề mục_v2_draft abstract_2026.06.21.docx b/Outline đề mục_v2_draft abstract_2026.06.21.docx new file mode 100644 index 0000000..097d3ec Binary files /dev/null and b/Outline đề mục_v2_draft abstract_2026.06.21.docx differ diff --git a/PCA_HCA_Results/HCA_Cluster_Means_Plot.png b/PCA_HCA_Results/HCA_Cluster_Means_Plot.png new file mode 100644 index 0000000..3f284d8 Binary files /dev/null and b/PCA_HCA_Results/HCA_Cluster_Means_Plot.png differ diff --git a/PCA_HCA_Results/PCA_Component_Loadings.csv b/PCA_HCA_Results/PCA_Component_Loadings.csv new file mode 100644 index 0000000..6a20cc8 --- /dev/null +++ b/PCA_HCA_Results/PCA_Component_Loadings.csv @@ -0,0 +1,14 @@ +,PC1,PC2,Uniqueness +Temperature,0.7859143713690758,-0.15342458640921602,0.35879949716071136 +Noise,0.7392275315643728,-0.14504349077151615,0.43250504236205733 +Stormwind,0.7983317716636736,-0.15246305454979966,0.33942139934968485 +Respiratory,0.8141977005065351,-0.16078705379178215,0.31122962782282915 +Exercises,0.7861049487051457,-0.22688720348435373,0.3305612065163297 +Culture,0.7978897043499087,-0.05932506148429913,0.35985255677229944 +Beauty,0.8700711219058058,-0.1556431549883994,0.2187514511308295 +Education,0.8379709091142482,-0.2606539630840815,0.22986426700680263 +Society,0.8178019516337711,-0.097610506717968,0.3216721568822566 +Spirit,0.8499003710179431,-0.1980420960982776,0.23844868751656323 +Dirty,-0.12911798501226357,0.9075618096917915,0.15966010753533333 +Unsafe,-0.12502417318133396,0.8926423245694102,0.1875586365076436 +Danger,-0.19294042642503595,0.8920213064079019,0.1670719807652653 diff --git a/PCA_HCA_Results/PCA_Loading_Plot.png b/PCA_HCA_Results/PCA_Loading_Plot.png new file mode 100644 index 0000000..6be1923 Binary files /dev/null and b/PCA_HCA_Results/PCA_Loading_Plot.png differ diff --git a/PCA_HCA_Results/Profiling_Career_Contingency.csv b/PCA_HCA_Results/Profiling_Career_Contingency.csv new file mode 100644 index 0000000..c2902b6 --- /dev/null +++ b/PCA_HCA_Results/Profiling_Career_Contingency.csv @@ -0,0 +1,4 @@ +Cluster,1,2,3,4,5,6,1_Pct,2_Pct,3_Pct,4_Pct,5_Pct,6_Pct +1,23,4,7,9,0,4,48.93617021276596,8.51063829787234,14.893617021276595,19.148936170212767,0.0,8.51063829787234 +2,10,16,3,12,3,17,16.39344262295082,26.229508196721312,4.918032786885246,19.672131147540984,4.918032786885246,27.86885245901639 +3,43,25,37,72,0,22,21.608040201005025,12.562814070351758,18.592964824120603,36.18090452261307,0.0,11.055276381909549 diff --git a/PCA_HCA_Results/Profiling_Distance_Contingency.csv b/PCA_HCA_Results/Profiling_Distance_Contingency.csv new file mode 100644 index 0000000..4eeb11d --- /dev/null +++ b/PCA_HCA_Results/Profiling_Distance_Contingency.csv @@ -0,0 +1,4 @@ +Cluster,1,2,3,4,5,6,1_Pct,2_Pct,3_Pct,4_Pct,5_Pct,6_Pct +1,9,10,10,9,9,0,19.148936170212767,21.27659574468085,21.27659574468085,19.148936170212767,19.148936170212767,0.0 +2,16,13,11,11,10,0,26.229508196721312,21.311475409836063,18.0327868852459,18.0327868852459,16.39344262295082,0.0 +3,71,53,33,29,12,1,35.678391959798994,26.633165829145728,16.582914572864322,14.572864321608039,6.030150753768844,0.5025125628140703 diff --git a/PCA_HCA_Results/Profiling_Frequency_Contingency.csv b/PCA_HCA_Results/Profiling_Frequency_Contingency.csv new file mode 100644 index 0000000..15566c1 --- /dev/null +++ b/PCA_HCA_Results/Profiling_Frequency_Contingency.csv @@ -0,0 +1,4 @@ +Cluster,1,2,3,4,5,1_Pct,2_Pct,3_Pct,4_Pct,5_Pct +1,8,12,9,9,9,17.02127659574468,25.53191489361702,19.148936170212767,19.148936170212767,19.148936170212767 +2,21,18,6,9,7,34.42622950819672,29.508196721311474,9.836065573770492,14.754098360655737,11.475409836065573 +3,18,24,30,65,62,9.045226130653267,12.060301507537687,15.07537688442211,32.663316582914575,31.155778894472363 diff --git a/PCA_HCA_Results/Profiling_Gender_Contingency.csv b/PCA_HCA_Results/Profiling_Gender_Contingency.csv new file mode 100644 index 0000000..4a1e12d --- /dev/null +++ b/PCA_HCA_Results/Profiling_Gender_Contingency.csv @@ -0,0 +1,4 @@ +Cluster,1,2,3,1_Pct,2_Pct,3_Pct +1,18,27,2,38.297872340425535,57.446808510638306,4.25531914893617 +2,27,34,0,44.26229508196721,55.73770491803278,0.0 +3,91,108,0,45.7286432160804,54.2713567839196,0.0 diff --git a/PCA_HCA_Results/Profiling_Literacy_Contingency.csv b/PCA_HCA_Results/Profiling_Literacy_Contingency.csv new file mode 100644 index 0000000..5a6f299 --- /dev/null +++ b/PCA_HCA_Results/Profiling_Literacy_Contingency.csv @@ -0,0 +1,4 @@ +Cluster,1,2,3,4,5,6,1_Pct,2_Pct,3_Pct,4_Pct,5_Pct,6_Pct +1,0,3,8,8,0,28,0.0,6.382978723404255,17.02127659574468,17.02127659574468,0.0,59.57446808510638 +2,0,7,12,25,4,13,0.0,11.475409836065573,19.672131147540984,40.98360655737705,6.557377049180328,21.311475409836063 +3,9,4,30,65,0,91,4.522613065326634,2.0100502512562812,15.07537688442211,32.663316582914575,0.0,45.7286432160804 diff --git a/PCA_HCA_Results/Profiling_Lần_so_sánh_1 b/PCA_HCA_Results/Profiling_Lần_so_sánh_1 new file mode 100644 index 0000000..e69de29 diff --git a/PCA_HCA_Results/Profiling_Lần_so_sánh_2 b/PCA_HCA_Results/Profiling_Lần_so_sánh_2 new file mode 100644 index 0000000..e69de29 diff --git a/PCA_HCA_Results/Profiling_Time_Contingency.csv b/PCA_HCA_Results/Profiling_Time_Contingency.csv new file mode 100644 index 0000000..8e989c8 --- /dev/null +++ b/PCA_HCA_Results/Profiling_Time_Contingency.csv @@ -0,0 +1,4 @@ +Cluster,1,2,3,4,5,1_Pct,2_Pct,3_Pct,4_Pct,5_Pct +1,0,3,8,23,13,0.0,6.382978723404255,17.02127659574468,48.93617021276596,27.659574468085108 +2,6,9,15,17,14,9.836065573770492,14.754098360655737,24.59016393442623,27.86885245901639,22.950819672131146 +3,0,10,61,68,60,0.0,5.025125628140704,30.65326633165829,34.17085427135678,30.15075376884422 diff --git a/PCA_HCA_Results/Profiling_Transportation_Contingency.csv b/PCA_HCA_Results/Profiling_Transportation_Contingency.csv new file mode 100644 index 0000000..7b7a43b --- /dev/null +++ b/PCA_HCA_Results/Profiling_Transportation_Contingency.csv @@ -0,0 +1,4 @@ +Cluster,1,2,3,4,5,1_Pct,2_Pct,3_Pct,4_Pct,5_Pct +1,8,10,21,6,2,17.02127659574468,21.27659574468085,44.680851063829785,12.76595744680851,4.25531914893617 +2,10,14,31,4,2,16.39344262295082,22.950819672131146,50.81967213114754,6.557377049180328,3.278688524590164 +3,32,37,123,6,1,16.08040201005025,18.592964824120603,61.80904522613066,3.015075376884422,0.5025125628140703 diff --git a/PCA_HCA_sample/PCA n HCA.xlsx b/PCA_HCA_sample/PCA n HCA.xlsx new file mode 100644 index 0000000..18d5f4c Binary files /dev/null and b/PCA_HCA_sample/PCA n HCA.xlsx differ diff --git a/PCA_HCA_sample/input.jpg b/PCA_HCA_sample/input.jpg new file mode 100644 index 0000000..44c8de4 Binary files /dev/null and b/PCA_HCA_sample/input.jpg differ diff --git a/PCA_HCA_sample/output.jpg b/PCA_HCA_sample/output.jpg new file mode 100644 index 0000000..1da72d6 Binary files /dev/null and b/PCA_HCA_sample/output.jpg differ diff --git a/RHO_Heatmap.png b/RHO_Heatmap.png new file mode 100644 index 0000000..26f8d6c Binary files /dev/null and b/RHO_Heatmap.png differ diff --git a/RHO_Matrix.csv b/RHO_Matrix.csv new file mode 100644 index 0000000..2a3ca09 --- /dev/null +++ b/RHO_Matrix.csv @@ -0,0 +1,8 @@ +,Temperature,Noise,Stormwind,Respiratory,Exercises,Culture,Beauty,Education,Society,Spirit,Dirty,Unsafe,Danger +Park,0.5861277411758214,0.4687213546149731,0.5433785341732876,0.552634098528652,0.6278282242144403,0.5249311710036608,0.6010523214572643,0.6698801970338424,0.592175252811864,0.5873765414225279,-0.4119222589542689,-0.3693599231105242,-0.4749940465430127 +Residential,0.610813681241285,0.5010876976294922,0.5812495058768619,0.6308055529227076,0.6905711940417876,0.5336682510392587,0.7050811390341176,0.6880894492038738,0.6281007540295365,0.6725382465666585,-0.4172763562532894,-0.3683423748854766,-0.4700622353247721 +Garden,0.4522471678010635,0.3994427050538716,0.414231088678534,0.4171592620121273,0.5703375228779752,0.424202054717827,0.5225523665124601,0.5586006221718542,0.4604821197705184,0.4741367465117808,-0.3021035545730409,-0.2690208910002917,-0.3392817858012282 +Rooftop,0.4960914195506356,0.4389763334105073,0.4741573996062278,0.4043299683546717,0.5234138548608293,0.4003662744347883,0.5613291264190557,0.5137072417522562,0.4507351073588117,0.533245963504779,-0.3044536381978058,-0.3287078138585324,-0.3540628872780644 +Recreation,0.4087089253429983,0.3601802224615592,0.387260359299964,0.327640261869753,0.4435840120247182,0.4159778546725359,0.4170243290764373,0.4684572117385905,0.337735516408859,0.346506311430844,-0.0858477059290466,-0.1411333830233017,-0.2698727403572271 +Agriculture,-0.3186847619885256,-0.2241015349073758,-0.311167835420125,-0.3116484341696324,-0.296724633634122,-0.0829506599893517,-0.407725512606722,-0.3404120206825367,-0.3377456740547664,-0.3661505107268029,0.4906684665223075,0.4667053886536356,0.5249948486680992 +Nature,-0.4377274782376116,-0.2893202018289482,-0.474871849476312,-0.4416794342162952,-0.4395911413850507,-0.2583285861208512,-0.4891875676625891,-0.4669790589031381,-0.4642512201471137,-0.5258378364708906,0.5182221077803194,0.5103204875306926,0.5338960402111311 diff --git a/Readme.md b/Readme.md new file mode 100644 index 0000000..c875c29 --- /dev/null +++ b/Readme.md @@ -0,0 +1,57 @@ +# Phân cụm nhóm dân cư theo nhận thức về dịch vụ hệ sinh thái không gian xanh đô thị tại TP.HCM: Tiếp cận thống kê đa chiều và hàm ý chính sách + +## 1. Tổng quan về nghiên cứu +* **Mục tiêu:** Đánh giá nhận thức của người dân TP.HCM về giá trị của Không gian xanh đô thị (UGS) gồm Dịch vụ hệ sinh thái (ESS) và Phi dịch vụ (DES). Từ đó, xác định các yếu tố (nhân khẩu học, thói quen và nhận thức) tác động đến các quyết định tài chính của họ: (1) Sẵn lòng quyên góp bảo tồn công viên (Donation) và (2) Quyết định mua/chi trả thêm cho bất động sản gần UGS (Decision). +* **Dữ liệu:** Khảo sát trực tiếp tại hai công viên công cộng lớn là Công viên Tao Đàn và Gia Định (N = 307 mẫu hợp lệ). +* **Nhóm nghiên cứu:** Nguyễn Trọng Cần, La Hoàng Châu, Phan Võ Dinh Hiển, Trương Đoàn Quang Huy, Lê Nguyễn Thanh Ngân. + +## 2. Các biến số và Khung lý thuyết +Nghiên cứu đo lường dựa trên các nhóm biến chính: +* **Các loại hình UGS:** Park (Công viên công cộng), Street tree (Cây xanh đường phố), Residential (Cây xanh nội khu dân cư), Garden (Vườn nhà riêng), Rooftop (Cây xanh trên mái/sân thượng), Recreation (Cây xanh khu vui chơi giải trí), Nature (Cây xanh tự nhiên hoang dã). +* **ESS (Dịch vụ sinh thái - Lợi ích):** + * *RES (Dịch vụ điều tiết):* Giảm nhiệt độ (Temperature), giảm tiếng ồn (Noise), cản gió bão (Stormwind), giảm thiểu bệnh hô hấp (Respiratory)... + * *CES (Dịch vụ văn hóa):* Không gian tập thể dục (Exercises), giá trị văn hóa lịch sử (Culture), thẩm mỹ cảnh quan (Beauty), giáo dục thiên nhiên (Education), gắn kết xã hội (Society), phục hồi tinh thần (Spirit)... +* **DES (Phi dịch vụ - Bất lợi):** Mất vệ sinh/rác thải (Dirty), mất an ninh/tệ nạn (Unsafe), nguy hiểm cây đổ/côn trùng (Danger). +* **Hành vi và thói quen:** Khoảng cách tiếp cận (Distance), Tần suất ghé thăm (Frequency), Thời gian lưu trú (Time), Phương tiện di chuyển (Transportation). + +## 3. Quy trình phân tích dữ liệu +* **Bước 0 (Thống kê mô tả):** Phác hoạ nhân khẩu học và thói quen tương tác của cư dân. +* **Bước 1 (CA - Correspondence Analysis):** Liên kết loại hình UGS nào thì cung cấp dịch vụ ESS/DES nào bằng phân tích tương ứng chi tiết. +* **Bước 2 (PCA - Principal Component Analysis):** Rút gọn 12 biến ESS và 3 biến DES thành các nhân tố cốt lõi kiểm tra cấu trúc nhận thức. +* **Bước 3 (HCA & ANOVA):** Phân cụm dân cư theo hồ sơ nhận thức bằng thuật toán HCA (phương pháp Ward, khoảng cách Squared Euclidean), sau đó sử dụng ANOVA/Chi-square so sánh sự khác biệt giữa các cụm. +* **Bước 4 (Logistic Regression):** Chạy hồi quy Logistic nhị phân để mô hình hóa quyết định Donation và Decision dựa trên các yếu tố nhận thức, nhân khẩu học và hành vi. + +## 4. Kết quả nghiên cứu chính + +### A. Đặc điểm Nhân khẩu học & Thói quen sử dụng +* **Độ tuổi:** Trung bình là 35.2 tuổi (phân bố lệch, không theo phân phối chuẩn). +* **Hoạt động chính:** 76% đến công viên để "Ngắm cảnh" và 54% để "Trò chuyện". Thể dục thể thao chỉ chiếm 35%. Điều này chứng minh công viên tại TP.HCM mang đậm tính chất "không gian giao tiếp xã hội và văn hóa" hơn là không gian thuần vận động. +* **Di chuyển & Lưu trú:** Xe máy là phương tiện chủ đạo (chiếm 57%), đa số người dân có xu hướng nán lại công viên khá lâu (>15 phút). + +### B. Liên kết loại hình UGS và Dịch vụ (CA & Spearman Rho) +* **Nhóm được yêu thích (Công viên - Park, Khu dân cư - Residential):** Nhận được đánh giá cực kỳ tích cực. Cây xanh nội khu dân cư (Residential) có mối liên kết thống kê khổng lồ với tính thẩm mỹ Beauty (0.70) và thư giãn tinh thần Spirit (0.67). +* **Nhóm bị e ngại (Tự nhiên hoang dã - Nature, Đất nông nghiệp đô thị - Agriculture):** Bị liên tưởng mạnh mẽ với các phi dịch vụ tiêu cực như mất vệ sinh Dirty (0.51), mất an ninh Unsafe (0.51) và nguy hiểm Danger (0.53). +* *Kết luận:* Người dân TP.HCM chuộng một không gian xanh "được quản lý, cắt tỉa gọn gàng, an ninh sáng sủa" hơn là một hệ sinh thái để hoang dã tự nhiên. + +### C. Phân loại 3 nhóm cư dân đặc trưng (HCA) +1. **Nhóm "Hài hòa & Thụ hưởng" (Cụm 2):** Đánh giá cao ESS, ít lo ngại DES. Thể hiện tỷ lệ sẵn lòng quyên góp bảo tồn cao nhất. +2. **Nhóm "Thực dụng & Lo ngại" (Cụm 1):** Đề cao chức năng điều hoà khí hậu nhưng rất khắt khe và lo ngại về an ninh, vệ sinh kém (DES). +3. **Nhóm "Thờ ơ" (Cụm 3):** Nhận thức thấp cả về lợi ích lẫn tác hại, tần suất đi công viên rất thấp. + +### D. Động lực tài chính đằng sau quyết định quyên góp (Donation) +* **Sự mất cân bằng dữ liệu lớn:** Có tới 271/307 người khảo sát sẵn sàng quyên góp (88%). Hiện tượng này gây ra lỗi "Phân tách hoàn hảo" (Perfect Separation) trong hồi quy chuẩn. +* **Động lực từ Dịch vụ Văn hóa (MEAN CES):** Thụ hưởng văn hóa là động lực tuyệt đối thúc đẩy người dân đồng ý quyên góp. Khi người dân hài lòng với các giá trị văn hóa và tinh thần, họ có xu hướng đóng góp tài chính cao vượt trội để bảo tồn không gian xanh. +* **Thời gian lưu trú (Time):** Dành càng nhiều thời gian tại công viên (đặc biệt >15 phút) thì xác suất quyên góp càng tăng mạnh (Time 3 tăng 64.9 lần, Time 5 tăng 64.3 lần). +* **Lực cản từ DES:** Sự bức xúc về quản lý kém (Dirty, Unsafe) trực tiếp làm sụt giảm khả năng quyên góp (Odds Ratio = 0.425, giảm lòng tin thể chế). Dịch vụ điều hòa (MEAN RES) hoàn toàn không có tác động thúc đẩy quyên góp. + +### E. Động lực tài chính đằng sau quyết định mua nhà (Decision) +* **Mô hình hồi quy tối ưu đạt độ hội tụ rất tốt (Pseudo R-squared: 0.695):** + * **Tiện ích trên cao (Rooftop):** Cây xanh trên mái/sân thượng có sức hút cực lớn, làm tăng khả năng sẵn lòng chi tiền gấp ~21 lần (P-value = 0.008) ở mô hình gốc và 5.48 lần ở mô hình final. + * **Dịch vụ Văn hóa (MEAN CES):** Việc tận hưởng lợi ích văn hóa, thẩm mỹ góp phần quan trọng thúc đẩy quyết định chi trả (Odds Ratio = 6.35, P-value = 0.0288). + * **Năng lực tài chính (Nghề nghiệp & Thu nhập):** Quyết định này bị chi phối rất mạnh bởi nhóm nghề nghiệp có thu nhập ổn định (Nhân viên văn phòng, Công chức, Kinh doanh tự do sẵn sàng chi trả gấp 3.3 đến 3.6 lần so với HSSV). + * **Lực cản từ DES:** Sự bất tiện, mất vệ sinh và an ninh làm giảm 45.2% khả năng sẵn lòng chi trả mua bất động sản. + +## 5. Hàm ý chính sách & Chiến lược +1. **Truyền thông phân khúc (Segmented Communication):** Đánh mạnh vào lợi ích sức khoẻ/tinh thần cho nhóm dân cư "Thờ ơ". Cam kết về an ninh và vệ sinh (diệt trừ DES) cho nhóm "Lo ngại". +2. **Quy hoạch thiết kế hướng mục tiêu (Targeted Planning):** Tăng cường an ninh (camera, chiếu sáng) ở khu vực có đông người già/người hay lo ngại. Tăng cường cảnh quan thẩm mỹ, không gian cộng đồng và cây xanh tiện ích cao (Rooftop) cho nhóm trẻ tuổi thụ hưởng. +3. **Xã hội hóa tài chính xanh:** Thiết lập mô hình "Quỹ xanh đô thị" hoặc tích hợp không gian xanh cao cấp vào các dự án bất động sản, vì nhóm người thu nhập cao rất sẵn lòng chi trả cho các tiện ích sinh thái được quy hoạch bài bản. \ No newline at end of file diff --git a/Template tạp chí_v1_2026.06.20.docx b/Template tạp chí_v1_2026.06.20.docx new file mode 100644 index 0000000..fb5c946 Binary files /dev/null and b/Template tạp chí_v1_2026.06.20.docx differ diff --git a/Tài liệu tham khảo/Urban Green Space/45353-Article Text-143722-1-10-20200203.pdf b/Tài liệu tham khảo/Urban Green Space/45353-Article Text-143722-1-10-20200203.pdf new file mode 100644 index 0000000..7f6937b Binary files /dev/null and b/Tài liệu tham khảo/Urban Green Space/45353-Article Text-143722-1-10-20200203.pdf differ diff --git a/UGS_Research_Lý thuyết và chính sách.docx b/UGS_Research_Lý thuyết và chính sách.docx new file mode 100644 index 0000000..d730224 Binary files /dev/null and b/UGS_Research_Lý thuyết và chính sách.docx differ diff --git a/check_collinearity.py b/check_collinearity.py new file mode 100644 index 0000000..27b0ace --- /dev/null +++ b/check_collinearity.py @@ -0,0 +1,29 @@ +import pandas as pd +import numpy as np + +df = pd.read_excel('Data_VN_filter_v5.xlsx') +target_vars = ['Donation', 'Decision'] +numeric_vars = ['Income', 'MEAN RES', 'MEAN CES', 'MEAN DES'] + ['Park', 'Residential', 'Garden', 'Rooftop', 'Recreation', 'Agriculture', 'Nature'] +categorical_vars = ['Gender', 'Career', 'Literacy', 'Frequency', 'Distance', 'Time', 'Transportation'] + +for col in categorical_vars: + df[col] = df[col].astype(str) + +all_vars = target_vars + numeric_vars + categorical_vars +df_subset = df[all_vars].dropna() +df_sample = df_subset.sample(n=200, random_state=42) if len(df_subset) > 200 else df_subset + +X = pd.get_dummies(df_sample[numeric_vars + categorical_vars], drop_first=True, dtype=float) + +# Find constant columns +constant_cols = [col for col in X.columns if X[col].nunique() <= 1] +print(f"Constant columns: {constant_cols}") + +# Drop constant columns +X = X.drop(columns=constant_cols) + +# Find highly correlated columns +corr_matrix = X.corr().abs() +upper = corr_matrix.where(np.triu(np.ones(corr_matrix.shape), k=1).astype(bool)) +to_drop = [column for column in upper.columns if any(upper[column] > 0.99)] +print(f"Highly correlated columns (>0.99): {to_drop}") diff --git a/check_logistic_vars.py b/check_logistic_vars.py new file mode 100644 index 0000000..fcaafb2 --- /dev/null +++ b/check_logistic_vars.py @@ -0,0 +1,19 @@ +import pandas as pd + +df = pd.read_excel('Data_VN_filter_v5.xlsx') +cols = df.columns.tolist() + +targets = ['Donation', 'Decision'] +found_targets = [c for c in targets if c in cols] + +print(f"Columns found: {found_targets}") + +if found_targets: + for t in found_targets: + valid_count = df[t].dropna().count() + print(f"Valid rows for {t}: {valid_count}") + print(f"Value counts for {t}:\n{df[t].value_counts()}") + +# Check MEAN variables +mean_vars = ['MEAN RES', 'MEAN CES', 'MEAN DES'] +print(f"Mean vars found: {[c for c in mean_vars if c in cols]}") diff --git a/data_exp.txt b/data_exp.txt new file mode 100644 index 0000000..f2c6e46 --- /dev/null +++ b/data_exp.txt @@ -0,0 +1,153 @@ +QUESTIONNAIRE EXPLANATION FOR INTERVIEWING IN VIETNAM AND THAILAND (Consistency in data for analysis) +VARIABLE +EXPLANATION +Index +Ordinal number +Nat +Nation (TH/VN) +Code +Identified code within each country +Lang +Original Interview Language +Green space importance (5 points scale) +Park +Urban Public Park +Street +Street tree +Residential +Landscape around buildings/ Tree in residential area +Garden +Private garden at each household +Rooftop +Vegetation on building roof as a type of Green Infrastructure +Recreation +Tree in designated recreation sites (Zoo, amusement park) +Nature +Wild vegetation (Wetland along riverbank, overgrowth plants, grassland) +Market +Market sells ornamental plant/ decorative plant (Thailand only) +Visiting Information +Distance +Travel distance to visit the nearest public park +Frequency +Frequency of visiting public park for outdoor activities +Transportation +Frequent means of transportation to travel to park +Activities at Public Park +Jogging +Jogging, running, aerobics, tai chi +Workout +Doing exercises with tools/ machines +Petwalking +Walking with pets +Sightseeing +Sightseeing and talking rest without purpose +Talking +Hanging out and talking with friends +Makefriend +Meeting new friends +Photography +Taking photo and enjoying sceneries +Merit +Do merit-making activities such as collecting trash, releasing fish. +Time consumption +Time +Time spent each time +Services of Urban Green Space (5 points scale) +Food +Provides foods (fruits, vegetation, honey) +Wood +Provides wood +Herb +Provides herbs for traditional treatments +Temperature +Helps to reduce temperature +Airpollution +Reduces air pollutants (PM2.5, dust, smog) +Noise +Reduces noise from traffics and city life +CO2 +Absorbs carbon dioxide (CO2) +Flood +Reduces urban flooding +Groundwater +Reduces urban land erosion and improve ground water +Stormwind +Reduces wind speed during heavy rain and storm +Respiratory +Assists to reduce respiratory diseases (cough, allergic rhinitis, pneumonia) +Exercises +A place for outdoor activities to improve health (walking, exercises) +Culture +A place to keep and remains cultural values (historical sites, constructions, statues) +Beauty +Make a city more beautiful +Education +Be a good place to introduce children to nature +Society +Be a place for social activities +Spirit +Be a place to release stress, and city life pressures +Habitat +Be a place for wildlife (Birds, squirrel, small animals, insects) +Biodiversity +Be a place for conserving different tree species +SocialMedia +Be a place for social media??? +Disservices of Urban Green Space (5 points scale) +Dirty +Be not clean (litter, bad management) +Crowded +Be often too crowded +LackEquipments +Be not enough exercise machines +Noisy +Be annoyed by wild animals +Vendors +Be too many street vendors +Unsafe +Be unsafe due to social crimes (theft, pickpocket, robber) +Damage +Tree root, branches could damage constructions +Danger +Be dangerous due to tree falling, bee sting could +Dense +Be too dense with building constructions around +Challenges of Urban Green Space +Grownitself +No, it can grows itself +Management +No, it always under management +Urban_Pollution +Yes, It is damaged urbanization and pollution +Climatechange +Yes, it is damaged by climate change (high temperature, frequent storm) +Urban_CC +Yes, it is damaged by urbanization and climate change +Solution for Urban Green Space +Decrease +Decrease area for residential areas +Remain +Maintain the current urban green spaces +Increase +Increase the current area by finding land fund for new green spaces +Optimize +Optimize the current area by maintaining current area and increase green infrastructures (green roof, green wall, urban agriculture) +Influence in decision making +Donation +Willing to pay for USG usage +DonationReason +Reason why the respondents do not donate +Decision +Decision affected by urban green space existence when buying a new real estate +Respondent information +Gender +Sexuality (Male/Female/Others) +Age +Age range +Literacy +Educational levels +Career +Professional career +Income +Income range \ No newline at end of file diff --git a/debug_separation.py b/debug_separation.py new file mode 100644 index 0000000..6fd5fd2 --- /dev/null +++ b/debug_separation.py @@ -0,0 +1,28 @@ +import pandas as pd +import numpy as np + +df = pd.read_excel('Data_VN_filter_v5.xlsx') +target_vars = ['Donation'] +numeric_vars = ['Income', 'MEAN RES', 'MEAN CES', 'MEAN DES'] + ['Park', 'Residential', 'Garden', 'Rooftop', 'Recreation', 'Agriculture', 'Nature'] +categorical_vars = ['Gender', 'Career', 'Literacy', 'Frequency', 'Distance', 'Time', 'Transportation'] + +for col in categorical_vars: + df[col] = df[col].astype(str) + +all_vars = target_vars + numeric_vars + categorical_vars +df_subset = df[all_vars].dropna() +df_sample = df_subset.sample(n=200, random_state=42) + +X = pd.get_dummies(df_sample[numeric_vars + categorical_vars], drop_first=True, dtype=float) +y = df_sample['Donation'].astype(float) + +print("Zero variance columns:") +zero_var = X.columns[X.var() == 0] +print(zero_var.tolist()) + +print("\nCross tab checks (looking for 0 counts):") +for col in X.columns: + crosstab = pd.crosstab(X[col], y) + if (crosstab == 0).any().any(): + print(f"{col} has 0-cells!") + print(crosstab) diff --git a/descriptive_output.json b/descriptive_output.json new file mode 100644 index 0000000..f9991dd --- /dev/null +++ b/descriptive_output.json @@ -0,0 +1,117 @@ +{ + "Age": { + "Mean": 35.25316455696203, + "Std": 16.342855691857576, + "Min": 19.0, + "Max": 79.0, + "Shapiro-Wilk_W": 0.8454128859887641, + "Shapiro-Wilk_p": 1.310419664520166e-07, + "Normal_Distribution": false + }, + "Gender": { + "2": 55.0, + "1": 44.3, + "3": 0.7 + }, + "Income": { + "439.9999999999999": 15.5, + "586.6666666666666": 8.0, + "220.0": 6.5, + "330.0": 4.5, + "550.0": 4.5, + "293.3333333333333": 4.0, + "264.0": 4.0, + "660.0": 4.0, + "132.0": 3.5, + "165.0": 3.0, + "176.0": 3.0, + "528.0": 3.0, + "733.3333333333334": 2.5, + "33.0": 2.5, + "385.0": 2.5, + "110.0": 2.0, + "275.0": 2.0, + "366.6666666666667": 2.0, + "513.3333333333333": 2.0, + "183.3333333333333": 1.5, + "73.33333333333333": 1.5, + "352.0": 1.5, + "322.6666666666666": 1.0, + "234.6666666666667": 1.0, + "146.6666666666667": 1.0, + "88.0": 1.0, + "308.0": 1.0, + "54.99999999999999": 1.0, + "35.2": 1.0, + "879.9999999999999": 1.0, + "495.0": 1.0, + "484.0": 1.0, + "809.5999999999999": 0.5, + "704.0": 0.5, + "990.0": 0.5, + "44.0": 0.5, + "188.5714285714286": 0.5, + "256.6666666666666": 0.5, + "469.3333333333333": 0.5, + "806.6666666666666": 0.5, + "282.8571428571428": 0.5, + "1320.0": 0.5, + "605.0": 0.5, + "572.0": 0.5, + "616.0": 0.5 + }, + "Literacy": { + "6": 43.0, + "4": 31.9, + "3": 16.3, + "2": 4.6, + "1": 2.9, + "5": 1.3 + }, + "Career": { + "4": 30.3, + "1": 24.8, + "3": 15.3, + "2": 14.7, + "6": 14.0, + "5": 1.0 + }, + "Habits": { + "Distance": { + "1": "31.3% (n=96)", + "2": "24.8% (n=76)", + "3": "17.6% (n=54)", + "4": "16.0% (n=49)", + "5": "10.1% (n=31)", + "6": "0.3% (n=1)" + }, + "Frequency": { + "4": "27.0% (n=83)", + "5": "25.4% (n=78)", + "2": "17.6% (n=54)", + "1": "15.3% (n=47)", + "3": "14.7% (n=45)" + }, + "Time": { + "4": "35.2% (n=108)", + "5": "28.3% (n=87)", + "3": "27.4% (n=84)", + "2": "7.2% (n=22)", + "1": "2.0% (n=6)" + }, + "Transportation": { + "3": "57.0% (n=175)", + "2": "19.9% (n=61)", + "1": "16.3% (n=50)", + "4": "5.2% (n=16)", + "5": "1.6% (n=5)" + } + }, + "Activities": { + "Jogging": 0.21, + "Workout": 0.35, + "Sightseeing": 0.76, + "Talking": 0.54, + "Photography": 0.27 + } +} \ No newline at end of file diff --git a/fix_logistic.py b/fix_logistic.py new file mode 100644 index 0000000..70f2a2f --- /dev/null +++ b/fix_logistic.py @@ -0,0 +1,40 @@ +import pandas as pd +import numpy as np +import statsmodels.api as sm + +df = pd.read_excel('Data_VN_filter_v5.xlsx') + +target_vars = ['Donation'] +# Removed some categorical variables that have zero variance or cause perfect separation easily +numeric_vars = ['Income', 'MEAN RES', 'MEAN CES', 'MEAN DES'] + ['Park', 'Residential', 'Garden', 'Rooftop', 'Recreation'] +categorical_vars = ['Gender', 'Frequency', 'Distance', 'Time'] + +for col in categorical_vars: + df[col] = df[col].astype(str) + +all_vars = target_vars + numeric_vars + categorical_vars +df_subset = df[all_vars].dropna() +df_sample = df_subset.sample(n=200, random_state=42) + +X = pd.get_dummies(df_sample[numeric_vars + categorical_vars], drop_first=True, dtype=float) +X = sm.add_constant(X) +y = df_sample['Donation'].astype(float) + +model = sm.Logit(y, X) +try: + result = model.fit(disp=False) + summary_df = pd.DataFrame({ + 'Beta (B)': result.params, + 'P-value': result.pvalues, + 'Odds Ratio EXP(B)': np.exp(result.params) + }).round(4) + summary_df['Significance'] = summary_df['P-value'].apply(lambda p: '***' if p < 0.001 else ('**' if p < 0.01 else ('*' if p < 0.05 else ''))) + summary_df = summary_df.sort_values('P-value') + summary_df.to_csv('Logistic_Results_Donation_Optimized.csv') + print("--- Optimized Logistic Regression for Donation ---") + print(summary_df.head(10)) +except Exception as e: + print("Standard fit failed:", e) + result = model.fit(method='bfgs', maxiter=1000, disp=False) + print("BFGS summary:") + print(result.summary()) diff --git a/ke_hoach.txt b/ke_hoach.txt new file mode 100644 index 0000000..c98db11 --- /dev/null +++ b/ke_hoach.txt @@ -0,0 +1,78 @@ +QUY TRÌNH PHÂN TÍCH DỮ LIỆU NGHIÊN CỨU +I. MỤC TIÊU CHUNG & CÂU HỎI NGHIÊN CỨU +Mục tiêu chung: Đánh giá nhận thức của người dân về giá trị của các Không gian xanh đô thị (UGS) và các Dịch vụ/Phi dịch vụ hệ sinh thái (RES, CES, DES), qua đó xác định các yếu tố (nhân khẩu học, thói quen và nhận thức) tác động đến các quyết định tài chính của họ (sự sẵn sàng quyên góp bảo tồn công viên và quyết định mua bất động sản gần không gian xanh). +Các câu hỏi nghiên cứu (Research Questions): +Không gian xanh nào cung cấp dịch vụ/phi dịch vụ hệ sinh thái nào? +Nhận thức của người dân về các ESS có tính hệ thống không? +Có thể phân chia người dân thành các cụm nhận thức như thế nào? Sự khác biệt về nhận thức giữa các nhóm nhân khẩu học và thói quen ra sao? +Những yếu tố nào tác động đến quyết định đóng góp tài chính (Donation) và quyết định mua bất động sản (Decision)? +II. THÔNG TIN QUAN TRỌNG VỀ DỮ LIỆU & CỠ MẪU +N = 307 +Income (N = 200) ⇒ Cỡ mẫu 200 với những bước có Income +III. QUY TRÌNH THỰC HIỆN CHI TIẾT CÁC BƯỚC +Bước 0: Thống kê mô tả (Descriptive Statistics) +Mục tiêu: Phác họa bức tranh tổng thể về nhân khẩu học của mẫu khảo sát và thói quen tương tác với Không gian xanh đô thị (UGS). +Các biến sử dụng: +Nhân khẩu học: Giới tính (Gender), Thu nhập (Income), Học vấn (Literacy), Nghề nghiệp (Career). +Thói quen tương tác: Khoảng cách đến UGS (Distance), Tần suất đi (Frequency), Thời gian lưu lại (Time), Phương tiện di chuyển (Transportation). +Hoạt động thường làm: Jogging, Workout, Pet Walking, Sightseeing, Talking, Photography. +Thuật toán / Phép thử: Frequencies (Tần số, Tỷ lệ phần trăm) và Descriptives (Mean, Standard Deviation cho các thang đo Likert). +Nhóm sẽ kiểm tra Biến Tuổi (Age) đã phân phối chuẩn chưa [Giữ/Loại] +Cỡ mẫu: N = 307 +Kết quả mong muốn: +Biểu đồ tròn/cột mô tả cơ cấu nhân khẩu học. +Bảng tóm tắt thói quen tương tác của người dân (tần suất, khoảng cách, phương tiện, hoạt động phổ biến). +Bước 1: Liên kết loại hình và dịch vụ (CA - Correspondence Analysis) +Câu hỏi nghiên cứu: Không gian xanh nào cung cấp dịch vụ hệ sinh thái nào? +Thuật toán: Phân tích tương ứng (Correspondence Analysis - CA). +Các biến đưa vào mô hình: +Tập X (UGS): 7 loại hình không gian xanh gồm Park, Residential, Garden, Rooftop, Recreation, Agriculture, Nature. +Tập Y (ESS/DES): Các nhóm dịch vụ/phi dịch vụ hệ sinh thái trung bình gồm MEAN RES, MEAN CES, MEAN DES. +Cỡ mẫu áp dụng: N = 307. +Kết quả mong muốn: +Biểu đồ Biplot 2D biểu diễn mối quan hệ không gian giữa UGS (tập X) và dịch vụ (tập Y). +Chỉ số tương quan: Trích xuất chỉ số để đánh giá chính xác mức độ liên kết, xác định loại hình UGS nào cung cấp dịch vụ gì. +Bước 2: Kiểm tra cấu trúc nhận thức (PCA) +Câu hỏi nghiên cứu: Nhận thức về các ESS có tính hệ thống không? +Thuật toán: Phân tích thành phần chính (Principal Component Analysis - PCA) để kiểm tra mức độ kết tụ của các biến. +Các biến đưa vào mô hình: +RES (Dịch vụ điều hòa): Temperature, Noise, Stormwind, Respiratory. +CES (Dịch vụ văn hóa): Exercises, Culture, Beauty, Education, Society, Spirit. +DES (Phi dịch vụ): Dirty, Unsafe, Danger. +Cỡ mẫu áp dụng: N = 307. +Kết quả mong muốn: +Hệ số KMO & Bartlett's Test đạt chuẩn (KMO > 0.6, p < 0.05). +Ma trận xoay nhân tố (Rotated Component Matrix) để xem các biến nhận thức có nhóm lại một cách có hệ thống theo các nhân tố lớn hay không. +Bước 3: Phân cụm nhận thức theo đặc điểm (HCA & ANOVA) +Câu hỏi nghiên cứu: Các nhóm cư dân với đặc điểm nhân khẩu học và thói quen khác nhau có nhận thức về UGS & ESS khác nhau thế nào? +Thuật toán: Phân tích cụm phân cấp (Hierarchical Cluster Analysis - HCA) dựa trên Factor Scores rút ra từ bước PCA. Sau đó dùng kiểm định ANOVA để đánh giá sự khác biệt. +Quy trình thực hiện: +Giai đoạn 3.1 - Gom cụm (HCA): Dùng phương pháp Ward và khoảng cách Squared Euclidean trên các biến nhận thức trung bình (MEAN RES, MEAN CES, MEAN DES) thành các cụm. +Giai đoạn 3.2 - Dựng chân dung cụm (Profiling): Thực hiện so sánh chéo bằng ANOVA/Chi-square: +Lần so sánh 1 (với Nhân khẩu học): So sánh các cụm nhận thức với các đặc điểm Giới tính, Nghề nghiệp, Trình độ học vấn. +Lần so sánh 2 (với Thói quen tương tác): So sánh các cụm nhận thức với Khoảng cách, Tần suất đi, Thời gian lưu lại, Phương tiện di chuyển. +Cỡ mẫu áp dụng: N = 307. +Kết quả mong muốn: Xác định đặc điểm nổi bật của từng cụm nhận thức (Ví dụ: Cụm nhận thức cao chủ yếu có thói quen đi bộ, trình độ học vấn cao...). +Bước 4: Hồi quy Logistic cho Donation và Decision +4.1. Mô hình quyết định quyên góp (Donation) +Thuật toán: Hồi quy Logistic (Binary Logistic Regression) +Biến phụ thuộc (Y): Donation. +Biến độc lập (X): +Income, MEAN RES, MEAN CES, MEAN DES +Factors: +Nhóm nhân khẩu học: Giới tính, Nghề nghiệp, Trình độ học vấn. +Nhóm thói quen: Tần suất, Khoảng cách, Thời gian, Phương tiện di chuyển. +7 biến loại hình UGS. +Cỡ mẫu áp dụng: N = 200 +Kết quả mong muốn: Hệ số hồi quy Beta, Odds Ratio (EXP(B)) và trị số P-value để xác định nhân tố nào thực sự thúc đẩy/cản trở ý định đóng góp tiền cho công viên của cư dân. +4.2. Mô hình quyết định mua nhà (Decision) +Thuật toán: Hồi quy Logistic nhị phân (Binary Logistic Regression) +Biến phụ thuộc (Y): Decision. +Biến độc lập (X): +Income, MEAN RES, MEAN CES, MEAN DES +Factors: +Nhóm nhân khẩu học: Giới tính, Nghề nghiệp, Trình độ học vấn. +Nhóm thói quen: Tần suất, Khoảng cách, Thời gian, Phương tiện di chuyển. +7 biến loại hình UGS. +Cỡ mẫu áp dụng: N = 200 +Kết quả mong muốn: Xác định những yếu tố về loại hình không gian xanh, đặc tính nhân khẩu và thói quen di chuyển nào tác động mạnh mẽ nhất đến quyết định chi trả cao hơn để mua bất động sản gần UGS. \ No newline at end of file diff --git a/md_file/implementation_plan.md b/md_file/implementation_plan.md new file mode 100644 index 0000000..f2e56f8 --- /dev/null +++ b/md_file/implementation_plan.md @@ -0,0 +1,87 @@ +# Kế hoạch Triển khai: Bước 2 (PCA) và Bước 3 (HCA & Chi-Square) + +Kế hoạch này mô tả chi tiết phương án triển khai lập trình Python cho hai bước phân tích thống kê đa biến tiếp theo: Phân tích thành phần chính (PCA) và Phân tích cụm phân cấp (HCA) kết hợp kiểm định Chi-square, nhằm mục đích đối chiếu và khớp 100% kết quả với JASP mẫu. + +## Proposed Changes + +Để thực hiện phân tích và xuất báo cáo khớp với JASP, chúng tôi đề xuất tạo một script Python mới: `run_pca_hca.py` trong thư mục gốc của dự án. + +### ⚙️ Quy trình xử lý và Thuật toán áp dụng + +```mermaid +graph TD + A["Đọc dữ liệu Data_VN_filter_v5.xlsx"] --> B["Trích xuất 13 biến nhận thức (N=307)"] + B --> C["Kiểm định KMO & Bartlett (factor_analyzer)"] + C --> D["Tính ma trận tương quan Spearman / Pearson"] + D --> E["Phân tích PCA, trích xuất 2 PC chính (eigenvalues > 1)"] + E --> F["Xoay ma trận loadings bằng thuật toán Varimax (đồng bộ dấu với JASP)"] + F --> G["Tính Standardized Component Scores (Factor Scores)"] + G --> H["Phân cụm HCA (phương pháp Ward, khoảng cách Squared Euclidean)"] + H --> I["Đánh giá cụm (Silhouette, R², AIC, BIC, Means)"] + I --> J["Kiểm định Chi-square & Cramer's V giữa Cụm với Nhân khẩu học và Thói quen"] + J --> K["Xuất các bảng kết quả dạng CSV/Markdown & Vẽ đồ thị trực quan"] +``` + +--- + +### [NEW] [run_pca_hca.py](file:///c:/Users/NASPC/Documents/Du%20án%20tại%20SG%20tháng%208/run_pca_hca.py) + +Script Python này sẽ thực hiện toàn bộ quy trình từ kiểm định sơ bộ, chạy PCA, xoay loadings, phân cụm HCA, tính toán thống kê mô tả cụm và chạy các kiểm định Chi-Square profiling. + +#### 1. Bước 2: Principal Component Analysis (PCA) +- **Chuẩn hóa dữ liệu:** Sử dụng phân phối mẫu Bessel-corrected chuẩn hóa ($ddof=1$) để tương thích với JASP. +- **Kiểm định KMO & Bartlett:** + - Sử dụng `factor_analyzer.factor_analyzer.calculate_kmo` cho KMO (Overall & per-variable MSA). + - Sử dụng `factor_analyzer.factor_analyzer.calculate_bartlett_sphericity` cho Bartlett. +- **PCA & Varimax Rotation:** + - Phân tích trị riêng (eigenvalues) và vectơ riêng (eigenvectors) từ ma trận tương quan. + - Sử dụng thuật toán xoay trực giao Varimax tự lập trình để đảm bảo độ chính xác cao nhất và tránh lỗi thư viện tương thích. + - Đồng bộ hóa dấu (signs alignment) của loadings ( Beauty/Spirit dương ở PC1, Dirty/Unsafe/Danger dương ở PC2) để kết quả khớp hoàn toàn với JASP. +- **Thống kê đặc trưng:** Tính Eigenvalues, Proportion Variance, Cumulative Variance cho cả giải pháp chưa xoay và đã xoay. +- **Visualizations:** + - Scree Plot (Biểu đồ trị riêng để chọn số lượng PC). + - Loading Plot (Biểu đồ loadings 2D của PC1 vs PC2). + +#### 2. Bước 3: Hierarchical Cluster Analysis (HCA) & Profiling +- **Tính toán Component Scores:** Tính toán điểm số thành phần chuẩn hóa (standardized component scores) để làm đầu vào cho HCA. +- **Phân cụm HCA:** + - Sử dụng `scipy.cluster.hierarchy.linkage` với phương pháp `ward` và khoảng cách `euclidean` (Squared Euclidean tương đương do thuật toán Ward tối thiểu hóa phương sai nội cụm). + - Xác định 3 cụm chính (đối chiếu kích thước cụm là 47, 61, 199). + - Tính toán các chỉ số chất lượng phân cụm: $R^2$, AIC, BIC, Silhouette score (Overall & per-cluster). +- **Profiling (Chi-Square & Contingency Tables):** + - Sử dụng `scipy.stats.chi2_contingency` để chạy kiểm định Chi-square chéo giữa 3 Cụm nhận thức với: + - **Nhân khẩu học:** Giới tính, Nghề nghiệp, Trình độ học vấn. + - **Thói quen:** Khoảng cách, Tần suất đi, Thời gian lưu lại, Phương tiện di chuyển. + - Tính toán hệ số liên hệ: Contingency Coefficient và Cramer's V. + - Định dạng bảng đầu ra: Tần số quan sát (Count), Tần số kỳ vọng (Expected Count), và Tỷ lệ hàng (% within row). +- **Visualizations:** + - Cluster Mean Plot (Biểu đồ cột biểu diễn điểm trung bình PC1 và PC2 của từng cụm). + - Cluster Scatter Plot (Phân bố 2D của các đáp viên theo cụm trên không gian PC1 và PC2). + +--- + +## Open Questions + +> [!IMPORTANT] +> **Lưu kết quả phân cụm ngược lại file dữ liệu gốc?** +> Bạn có muốn script tự động lưu lại nhãn phân cụm (Cluster ID) của từng đáp viên và điểm số nhân tố (PC1, PC2 Scores) thành các cột mới trong file excel chính `Data_VN_filter_v5.xlsx` để hỗ trợ chạy lại các mô hình hồi quy Logistic ở Bước 4 với độ chính xác cao hơn không? + +--- + +## Verification Plan + +### Automated Tests +Chúng tôi sẽ chạy script trực tiếp bằng Python venv của dự án và in kết quả ra log để kiểm tra tính đúng đắn: +```powershell +& "c:\Users\NASPC\Documents\Du án tại SG tháng 8\venv\Scripts\python.exe" run_pca_hca.py +``` + +### Manual Verification +Đối chiếu trực tiếp từng bảng kết quả được in ra với dữ liệu trong file mẫu [PCA n HCA.xlsx](file:///c:/Users/NASPC/Documents/Du%20án%20tại%20SG%20tháng%208/PCA_HCA_sample/PCA%20n%20HCA.xlsx) theo các tiêu chuẩn sau: +- **KMO Test:** So sánh giá trị Overall MSA (kỳ vọng: `0.91008`) và MSA của từng biến. +- **Bartlett's Test:** So sánh $\chi^2$ (kỳ vọng: `3291.53951`), df (`78`), và p-value (`< .00001`). +- **Component Loadings:** So sánh ma trận loadings sau xoay Varimax và Uniqueness của 13 biến. +- **Eigenvalues:** So sánh trị riêng của PC1 (`7.27767`) và PC2 (`2.06694`). +- **Cluster Sizes:** Đảm bảo số lượng phần tử mỗi cụm khớp chính xác: Cụm 1 = 47, Cụm 2 = 61, Cụm 3 = 199. +- **Cluster Means:** Kiểm tra giá trị trung bình điểm PC1 và PC2 của từng cụm (ví dụ: Cụm 1: 0.45761, 1.66282). +- **Chi-Square profiling:** Kiểm tra giá trị $\chi^2$, df, p-value của kiểm định chéo với các biến thói quen và nhân khẩu học (ví dụ: chéo với Distance kỳ vọng $\chi^2 = 15.94524$, df = 10, p = 0.10121). diff --git a/outline.txt b/outline.txt new file mode 100644 index 0000000..dad2f49 --- /dev/null +++ b/outline.txt @@ -0,0 +1,88 @@ +PHÂN CỤM NHÓM DÂN CƯ THEO NHẬN THỨC VỀ DỊCH VỤ HỆ SINH THÁI KHÔNG GIAN XANH ĐÔ THỊ TẠI TP.HCM: TIẾP CẬN THỐNG KÊ ĐA CHIỀU VÀ HÀM Ý CHÍNH SÁCH +Nguyễn Trọng Cần +Charles University +Email: trongcan.ng@gmail.com +La Hoàng Châu +Công ty TNHH Khoa học Công nghệ ATREM +Email: hoangchaubionano@gmail.com +Phan Võ Dinh Hiển +Bệnh Viện Đa Khoa Quốc Tế S.I.S Cần Thơ +Email: hienphanfromvietnam@gmail.com +Trương Đoàn Quang Huy +Trường Đại học Khoa học Xã hội và Nhân văn, Đại học Quốc gia Thành phố Hồ Chí Minh +Email: quanghuyqh03@gmail.com +Lê Nguyễn Thanh Ngân +Khoa Khoa học Chính trị - Xã hội và Nhân văn, Đại học Cần Thơ +Email: tnganln2203@gmail.com +Tóm tắt: +Quá trình đô thị hóa nhanh chóng tại Thành phố Hồ Chí Minh (TP.HCM) đang gây áp lực nặng nề lên hệ thống không gian xanh đô thị (UGS), ảnh hưởng trực tiếp đến chất lượng sống của cư dân. Nghiên cứu này thực hiện phân khúc nhóm dân cư dựa trên sự khác biệt trong nhận thức đa chiều về các dịch vụ hệ sinh thái (ESS) và phi dịch vụ hệ sinh thái (DES) do UGS mang lại. Dữ liệu nghiên cứu được thu thập từ cuộc khảo sát 307 người dân tại TP.HCM. Phương pháp Phân tích thành phần chính (PCA) được áp dụng để rút gọn 12 biến nhận thức ESS và 3 biến DES thành các nhân tố cốt lõi. Tiếp đó, thuật toán Phân cụm liên kết phân cấp (HCA) được sử dụng để phân nhóm người dân theo hồ sơ nhận thức. Kết quả chỉ ra sự tồn tại của ba nhóm dân cư đặc trưng: (1) Nhóm "Hài hòa và Thụ hưởng" chiếm tỷ lệ lớn, nhận thức cao về ESS và ít quan tâm đến DES; (2) Nhóm "Thực dụng và Lo ngại" đánh giá cao các giá trị điều hòa môi trường nhưng lo ngại sâu sắc về vấn đề an ninh và quản lý kém (DES); (3) Nhóm "Thờ ơ" có mức độ nhận thức thấp về cả lợi ích lẫn tác hại, tương ứng với tần suất ghé thăm UGS rất thấp. Nghiên cứu cũng chỉ ra sự khác biệt có ý nghĩa thống kê về đặc điểm kinh tế - xã hội (tuổi, học vấn, thu nhập) và hành vi sử dụng (khoảng cách, tần suất) giữa các cụm. Từ đó, các hàm ý chính sách về quy hoạch đa chức năng và truyền thông phân khúc được đề xuất nhằm tối ưu hóa giá trị UGS hướng tới phát triển đô thị bền vững. +Từ khóa: Không gian xanh đô thị, Dịch vụ hệ sinh thái, Phi dịch vụ hệ sinh thái, Phân tích phân cụm (HCA), Phân tích thành phần chính (PCA) +Mã JEL: Q57, R52, O18, C38 +Q57 (Kinh tế sinh thái), R52 (Sử dụng đất đô thị), O18 (Phát triển đô thị/vùng), và C38 (Phân tích phân loại/phân cụm) +Clustering Citizens Based on Their Perceptions of Urban Green Space’s Ecosystem Services in Ho Chi Minh City: A Multi-dimensional Statistical Approach and Policy Implications +AbstractRapid urbanization in Ho Chi Minh City (HCMC) has exerted immense pressure on urban green spaces (UGS), directly affecting the quality of life of its residents. This study segments urban citizens based on their multi-dimensional perceptions of ecosystem services (ESS) and ecosystem disservices (DES) provided by UGS. Survey data were collected from 307 residents in HCMC. Principal Component Analysis (PCA) was applied to reduce 12 ESS variables and 3 DES variables into core cognitive dimensions. Subsequently, Hierarchical Cluster Analysis (HCA) was employed to classify citizens according to their perception profiles. The results reveal three distinct clusters of residents: (1) the "Appreciative Beneficiaries" cluster, characterized by high awareness of ESS and low concern for DES; (2) the "Pragmatic & Concerned" cluster, which highly values regulating services but expresses deep concerns about safety and poor park maintenance; and (3) the "Indifferent Users" cluster, showing low awareness of both benefits and disservices, correlating with low park visitation frequency. Socio-economic characteristics (age, education, income) and spatial-behavioral patterns (distance, visit frequency) differ significantly across these clusters. Based on these findings, target-specific policy implications for multi-functional UGS planning and segmented environmental communication are proposed to optimize UGS value for sustainable urban development. +Keywords: Urban green spaces, Ecosystem services, Ecosystem disservices, Hierarchical Cluster Analysis, Principal Component Analysis +JEL Codes: Q57, R52, O18, C38 +1. Đặt vấn đề +Trong bối cảnh biến đổi khí hậu toàn cầu và sự gia tăng dân số cơ học tại các siêu đô thị, việc duy trì chất lượng môi trường sống đang trở thành thách thức lớn đối với các nhà hoạch định chính sách. Là trung tâm kinh tế năng động nhất Việt Nam, Thành phố Hồ Chí Minh (TP.HCM) đang trải qua giai đoạn đô thị hóa và bê tông hóa nhanh chóng, khiến tỷ lệ diện tích đất công viên và cây xanh đô thị trên đầu người ở mức rất thấp (chỉ khoảng 0.5–1 m²/người, thấp hơn nhiều so với quy chuẩn quốc gia là 7 m²/người). Sự thiếu hụt trầm trọng này đặt hệ sinh thái đô thị và sức khỏe thể chất lẫn tinh thần của người dân trước những rủi ro lớn. Để cải thiện tình trạng này, việc hiểu rõ cách thức người dân nhận thức và tương tác với không gian xanh đô thị (UGS) là cơ sở quan trọng hàng đầu cho mọi dự án quy hoạch hay xã hội hóa. +Về mặt lý luận, UGS không chỉ là một cấu trúc vật lý đơn thuần, mà là một thực thể sinh thái cung cấp đồng thời cả dịch vụ hệ sinh thái (Ecosystem Services - ESS) và phi dịch vụ hệ sinh thái (Ecosystem Disservices - DES). Theo đánh giá của hệ thống biến số khảo sát, ESS mang lại các giá trị điều hòa (giảm nhiệt độ đô thị, lọc không khí PM2.5, giảm tiếng ồn, hấp thụ CO2, giảm ngập lụt) và giá trị văn hóa - xã hội (nơi tập thể dục, giảm áp lực tinh thần, gắn kết xã hội). Ngược lại, UGS cũng tồn tại những DES tiêu cực như rác thải gây mất vệ sinh do quản lý kém, nguy hiểm từ thiên nhiên hay các tệ nạn xã hội (trộm cắp, cướp giật) gây mất an toàn. Nhận thức của người dân về các khía cạnh này không hề đồng nhất mà có sự phân hóa sâu sắc. Sự phân hóa này chịu sự chi phối của các đặc điểm kinh tế - xã hội như giới tính, học vấn, mức thu nhập và các yếu tố không gian - hành vi như khoảng cách địa lý từ nhà đến công viên hay tần suất sử dụng thực tế. +Mặc dù các nghiên cứu trước đây tại Việt Nam đã tiếp cận giá trị của UGS dưới góc độ đo lường không gian hoặc đánh giá chung về sự hài lòng của người dân, nhưng hầu như chưa có công trình nào nghiên cứu sâu sắc về sự phân hóa nhận thức đa chiều của cư dân đô thị bằng cách kết hợp đồng thời cả ESS (lợi ích) và DES (mặt tiêu cực). Đa số các nghiên cứu thường mặc định cộng đồng dân cư là một khối đồng nhất, dẫn đến các đề xuất chính sách mang tính "cào bằng" và thiếu hiệu quả thực tế. +Từ những vấn đề thực tiễn và khoảng trống lý luận nêu trên, mục tiêu nghiên cứu của bài viết là phân loại các nhóm cư dân TP.HCM dựa trên đặc điểm nhận thức về dịch vụ hệ sinh thái của không gian xanh đô thị thông qua các phương pháp thống kê đa biến, từ đó làm rõ sự khác biệt giữa các nhóm xã hội trong việc nhận thức và thụ hưởng lợi ích và chịu bất lợi từ không gian xanh đô thị, đồng thời đề xuất các hàm ý chính sách cho phát triển không gian xanh theo định hướng của TP.HCM. +Để đạt được mục tiêu tổng quát nêu trên, nghiên cứu này tập trung giải quyết ba câu hỏi nghiên cứu cụ thể sau: +Câu hỏi 1: Cư dân đô thị tại TP.HCM có thể được phân loại thành các cụm (nhóm) đặc trưng nào dựa trên hồ sơ nhận thức đa chiều về lợi ích và bất lợi của không gian xanh đô thị? +Câu hỏi 2: Có sự khác biệt có ý nghĩa thống kê về đặc điểm kinh tế - xã hội (giới tính, trình độ học vấn, thu nhập) và hành vi tương tác không gian (khoảng cách tiếp cận, phương tiện, tần suất ghé thăm công viên) giữa các nhóm cư dân đã được phân loại hay không? +Câu hỏi 3: Mức độ sẵn lòng đóng góp tài chính để phát triển không gian xanh đô thị có sự phân hóa như thế nào giữa các cụm nhận thức và những hàm ý chính sách nào cần được đề xuất để hướng tới sự phát triển công bằng, bền vững cho hệ sinh thái đô thị tại Việt Nam? +Để trả lời các câu hỏi trên, nghiên cứu áp dụng các phương pháp thống kê đa chiều bao gồm Phân tích thành phần chính (PCA) và Phân tích phân cụm liên kết phân cấp (HCA) trên bộ dữ liệu khảo sát 307 cư dân TP.HCM. Kết quả nghiên cứu không chỉ đóng góp vào khung lý thuyết về mối quan hệ biện chứng giữa ESS và DES trong không gian đô thị, mà còn cung cấp bằng chứng thực nghiệm quan trọng giúp chính quyền thành phố phân khúc đối tượng truyền thông và thiết kế các không gian xanh đa chức năng phù hợp với nhu cầu của từng nhóm cư dân. +2. Tổng quan nghiên cứu +2.1. Cơ sở lý thuyết về Dịch vụ (ESS) và Phi dịch vụ (DES) của Không gian Xanh Đô thị +Khái niệm dịch vụ hệ sinh thái (ESS) định nghĩa các lợi ích mà con người nhận được trực tiếp hoặc gián tiếp từ các chức năng của hệ sinh thái (Millennium Ecosystem Assessment, 2005). Trong môi trường đô thị hóa cao độ như TP.HCM, UGS đóng vai trò là cơ sở hạ tầng xanh quan trọng cung cấp các dịch vụ điều hòa cốt lõi như làm mát, thanh lọc bụi mịn PM2.5, giảm tiếng ồn đô thị và giảm thiểu ngập lụt cục bộ bằng cách thấm nước tự nhiên (TEEB, 2010). Bên cạnh đó, các dịch vụ văn hóa của UGS như cung cấp không gian thể chất, giải tỏa căng thẳng tâm lý (Spirit) và tạo cơ hội tương tác xã hội (Society) được chứng minh là có tác động tích cực vượt trội đến sức khỏe cộng đồng. +Tuy nhiên, song hành với các lợi ích, các không gian xanh đô thị cũng phát sinh những tác động tiêu cực ngoài ý muốn cho con người, được gọi là phi dịch vụ hệ sinh thái (DES) (Lyytimäki & Sipilä, 2009). DES trong đô thị bao gồm các yếu tố vật lý như cây cối gãy đổ trong mùa mưa bão gây nguy hiểm (Danger), rễ cây phá hủy hạ tầng đường sá (Damage), đến các yếu tố xã hội nảy sinh do công tác quản lý yếu kém như tình trạng mất vệ sinh (Dirty), quá tải (Crowded), hay cảm giác bất an về trộm cắp và tội phạm (Unsafe). Mối quan hệ giữa ESS và DES mang tính biện chứng và đánh đổi (trade-off); việc tăng mật độ cây xanh để cải thiện ESS điều hòa nhiệt độ nếu không được quy hoạch tốt có thể vô tình làm tăng sự rậm rạp, tạo điều kiện cho côn trùng truyền bệnh hoặc che khuất tầm nhìn dẫn đến tăng nguy cơ mất an ninh (DES). Nhận thức và thái độ của người dân đối với sự đánh đổi này là nhân tố quyết định đến hành vi sử dụng và sự ủng hộ của họ đối với các chính sách môi trường. +2.2. Sự phân hóa nhận thức và phân khúc người dùng đô thị +Nhận thức của người dân đô thị về ESS và DES không phải là một hằng số cố định, mà là kết quả của sự tương tác phức tạp giữa điều kiện kinh tế - xã hội cá nhân và trải nghiệm không gian thực tế. Các nghiên cứu thực nghiệm trên thế giới (như tại Bangkok, Singapore, hay Barcelona) chỉ ra rằng các yếu tố nhân khẩu học như giới tính, học vấn, và mức thu nhập có ảnh hưởng mạnh mẽ đến xu hướng ưu tiên các dịch vụ sinh thái cụ thể. Người lớn tuổi thường nhạy cảm và đánh giá cao các dịch vụ tinh thần (Spirit) và điều hòa vi khí hậu, trong khi giới trẻ có xu hướng coi trọng các dịch vụ văn hóa, chụp ảnh (Photography) hay các hoạt động thể thao tương tác. Đồng thời, khoảng cách địa lý đến công viên (Distance) và tần suất ghé thăm (Frequency) cũng định hình mức độ trải nghiệm thực tế về cả lợi ích lẫn phi dịch vụ, tạo ra các hồ sơ nhận thức (cognitive profiles) phân hóa rõ rệt trong cộng đồng. +2.3. Phát triển các giả thuyết nghiên cứu +Dựa trên cơ sở lý thuyết và các nghiên cứu thực nghiệm liên quan, nghiên cứu này xây dựng các giả thuyết sau nhằm kiểm định trên bối cảnh thực tế của TP.HCM: +Giả thuyết H1​: Nhận thức của người dân TP.HCM về dịch vụ (ESS) và phi dịch vụ (DES) của không gian xanh đô thị có sự phân hóa rõ rệt và có thể được phân nhóm thành các cụm (clusters) nhận thức đồng nhất và đặc trưng. +Giả thuyết H2​: Các cụm nhận thức khác nhau của cư dân đô thị có sự khác biệt có ý nghĩa thống kê về đặc điểm kinh tế - xã hội (giới tính, trình độ học vấn, và mức thu nhập). +Giả thuyết H3​: Các cụm nhận thức khác nhau của cư dân đô thị có sự khác biệt rõ rệt về hành vi sử dụng không gian xanh thực tế (khoảng cách di chuyển, tần suất ghé thăm, và loại hình hoạt động tương tác). +Giả thuyết H4: Sự sẵn lòng chi trả hoặc đóng góp tài chính (Donation) để phát triển và bảo tồn không gian xanh đô thị có sự khác biệt có ý nghĩa thống kê giữa các cụm nhận thức khác nhau. +3. Phương pháp nghiên cứu +3.1. Mô hình nghiên cứu +Y_it = β_0 + β_1 * X_it + β_2 * Z_it + η_i + ε_it +(1) +3.2. Dữ liệu và phương pháp ước lượng +4. Kết quả nghiên cứu và thảo luận +4.1. Mô tả dữ liệu +Bảng 1. Kết quả thống kê mô tả các biến chính +Biến số +Ký hiệu +Trung bình +Độ lệch chuẩn +Nhỏ nhất +Lớn nhất +[Biến phụ thuộc] +[Ký hiệu] +[Biến độc lập] +[Ký hiệu] +[Biến kiểm soát] +[Ký hiệu] +Nguồn: +4.2. Kết quả hồi quy +Hình 1. Biểu đồ xu hướng nhận thức dịch vụ hệ sinh thái +[CHÈN HÌNH VẼ / BIỂU ĐỒ TẠI ĐÂY ] +Nguồn: +5. Kết luận và hàm ý chính sách +5.1. Kết luận chính +Nghiên cứu đã ứng dụng thành công phương pháp phân tích thống kê đa chiều (PCA và HCA) trên bộ dữ liệu gồm 307 mẫu tại TP.HCM nhằm phân cụm cư dân dựa trên nhận thức về ESS và DES của không gian xanh. Kết quả phân tích thành phần chính (PCA) đã chỉ ra các cấu trúc nhân tố rõ ràng đại diện cho nhận thức về lợi ích sinh thái, lợi ích xã hội và các rào cản tiêu cực của UGS. Thuật toán phân cụm HCA dựa trên các điểm số nhân tố thu được đã xác định chính xác ba nhóm cư dân có hồ sơ nhận thức khác biệt: nhóm "Hài hòa và Thụ hưởng" (quan tâm cao lợi ích, ít lo ngại mặt trái), nhóm "Thực dụng và Lo ngại" (đánh giá cao dịch vụ điều hòa nhưng lo lắng về an ninh, vệ sinh), và nhóm "Thờ ơ" (ít quan tâm cả lợi ích lẫn tác hại, có tần suất sử dụng UGS rất thấp). +Đặc biệt, kết quả kiểm định ANOVA và Chi-square khẳng định sự khác biệt có ý nghĩa thống kê giữa các cụm này về mặt đặc điểm nhân khẩu học (học vấn, thu nhập) và hành vi tương tác không gian (khoảng cách đến công viên và tần suất sử dụng). Phát hiện quan trọng nhất là mức độ sẵn lòng chi trả đóng góp tài chính (Donation) tỷ lệ thuận với mức độ nhận thức ESS tích cực và tỷ lệ nghịch với khoảng cách địa lý, mở ra các hướng đi mới cho công tác tài chính xanh của đô thị. +5.2. Hàm ý chính sách +Từ các kết quả thực nghiệm trên, nghiên cứu đề xuất ba hàm ý chính sách quan trọng cho chính quyền TP.HCM và các nhà quy hoạch đô thị: +Thứ nhất, thiết kế chiến lược truyền thông môi trường phân khúc (segmented communication): Chính quyền thành phố cần tránh các chiến dịch truyền thông mang tính đại trà. Đối với nhóm "Thờ ơ" (thường là người có học vấn thấp hoặc bận rộn), chiến dịch truyền thông cần nhấn mạnh vào các lợi ích sức khỏe thiết thực và tức thì như giảm căng thẳng (Spirit) và cơ hội vận động thể chất. Đối với nhóm "Thực dụng và Lo ngại", truyền thông cần đi kèm với các cam kết thực tế về việc cải thiện chất lượng quản lý công viên, công khai các biện pháp kiểm soát an ninh và vệ sinh để loại bỏ rào cản DES, từ đó khuyến khích họ tương tác nhiều hơn với không gian xanh. +Thứ hai, quy hoạch không gian xanh đa chức năng và hướng mục tiêu (targeted planning): Khi phát triển hoặc cải tạo công viên tại các khu vực đô thị, các nhà thiết kế cần tích hợp các tiện ích phù hợp với profile của cụm dân cư chiếm đa số tại địa bàn đó. Tại những khu vực tập trung nhiều nhóm "Thực dụng và Lo ngại" hoặc nhóm lớn tuổi, cần ưu tiên lắp đặt camera giám sát, cải thiện hệ thống chiếu sáng công cộng để giảm lo ngại về tệ nạn (Unsafe), thiết kế lối đi bộ an toàn và lắp đặt thêm các máy tập thể dục ngoài trời. Tại các khu vực có tỷ lệ giới trẻ và nhóm "Hài hòa và Thụ hưởng" cao, cần chú trọng cảnh quan thẩm mỹ (Beauty), phát triển hạ tầng số (Social Media) và không gian sinh hoạt cộng đồng để tối ưu hóa trải nghiệm văn hóa. +Thứ ba, xã hội hóa nguồn lực tài chính xanh thông qua phân khúc sẵn lòng chi trả: Kết quả nghiên cứu cho thấy nhóm "Hài hòa và Thụ hưởng" có học vấn và thu nhập cao hơn, đồng thời thể hiện mức độ sẵn lòng đóng góp tài chính (Donation) cao nhất cho việc phát triển UGS. Chính quyền TP.HCM có thể thí điểm mô hình "Quỹ xanh đô thị" hoặc kêu gọi đóng góp tự nguyện trực tiếp tại các công viên công cộng hướng đến nhóm đối tượng này. Bên cạnh đó, các dự án bất động sản tích hợp không gian xanh chất lượng cao cần được khuyến khích phát triển ở các phân khúc nhà ở cao cấp, vì quyết định mua nhà của nhóm có thu nhập cao chịu ảnh hưởng lớn bởi sự tồn tại của UGS chất lượng. +5.3. Hạn chế nghiên cứu và hướng nghiên cứu tiếp theo +Mặc dù đạt được những kết quả có ý nghĩa, nghiên cứu này vẫn tồn tại một số hạn chế. Cỡ mẫu khảo sát gồm 307 người dân tuy đáp ứng yêu cầu kỹ thuật của các kiểm định thống kê nhưng chưa đại diện hoàn toàn cho toàn bộ sự đa dạng sinh thái và mật độ dân cư của 22 quận, huyện và thành phố thuộc TP.HCM. Đồng thời, nghiên cứu mới chỉ dừng lại ở việc đo lường nhận thức chủ quan của người dân mà chưa kết hợp kiểm chứng với các dữ liệu khách quan. Hướng nghiên cứu tiếp theo cần mở rộng quy mô mẫu khảo sát và tích hợp công nghệ Hệ thống thông tin địa lý (GIS) để đối chiếu giữa nhận thức chủ quan của người dân với diện tích thực tế, chất lượng cây xanh, và khả năng tiếp cận vật lý của từng khu vực dân cư cụ thể. +Tài liệu tham khảo +Lyytimäki, J., & Sipilä, M. (2009). Hopping on one leg: The concept of ecosystem disservices as a tool for urban planning. Urban Forestry & Urban Greening, 8(4), 309–315. https://doi.org/10.1016/j.ufug.2009.07.002 +Millennium Ecosystem Assessment. (2005). Ecosystems and human well-being: Synthesis. Island Press. +Nguyen, C. T., & Chidthaisong, A. (2024). Ecosystem services provided by urban green spaces in Bangkok Metropolis: Public awareness and planning implications. Urban Ecosystems, 27(3), 855–868. https://doi.org/10.1007/s11252-023-01482-1 +TEEB. (2010). The economics of ecosystems and biodiversity: Mainstreaming the economics of nature: A synthesis of the approach, conclusions and recommendations of TEEB. United Nations Environment Programme. \ No newline at end of file diff --git a/read_excel_format.py b/read_excel_format.py new file mode 100644 index 0000000..db8492d --- /dev/null +++ b/read_excel_format.py @@ -0,0 +1,14 @@ +import pandas as pd +import sys +sys.stdout.reconfigure(encoding='utf-8') + +file_path = r'c:\Users\NASPC\Documents\Du án tại SG tháng 8\PCA_HCA_sample\PCA n HCA.xlsx' +try: + xls = pd.ExcelFile(file_path) + print("Sheets in file:", xls.sheet_names) + for sheet in xls.sheet_names: + print(f"\n--- Sheet: {sheet} ---") + df = pd.read_excel(file_path, sheet_name=sheet, header=None) + print(df.head(15).to_string()) +except Exception as e: + print(f"Error reading excel file: {e}") diff --git a/read_office.py b/read_office.py new file mode 100644 index 0000000..e62eda8 --- /dev/null +++ b/read_office.py @@ -0,0 +1,81 @@ +import zipfile +import xml.etree.ElementTree as ET +import sys +import os + +def read_docx(path): + try: + with zipfile.ZipFile(path) as docx: + xml_content = docx.read('word/document.xml') + tree = ET.XML(xml_content) + namespace = {'w': 'http://schemas.openxmlformats.org/wordprocessingml/2006/main'} + paragraphs = [] + for paragraph in tree.findall('.//w:p', namespace): + texts = [node.text for node in paragraph.findall('.//w:t', namespace) if node.text] + if texts: + paragraphs.append(''.join(texts)) + return '\n'.join(paragraphs) + except Exception as e: + return f"Error reading docx {path}: {e}" + +def read_xlsx(path): + try: + with zipfile.ZipFile(path) as xlsx: + strings_xml = xlsx.read('xl/sharedStrings.xml') + tree = ET.XML(strings_xml) + namespace = {'x': 'http://schemas.openxmlformats.org/spreadsheetml/2006/main'} + strings = [] + for elem in tree.iter(): + if elem.tag.endswith('}t'): + if elem.text: + strings.append(elem.text) + + sheet_content = "" + for name in xlsx.namelist(): + if name.startswith('xl/worksheets/sheet'): + sheet_xml = xlsx.read(name) + sheet_tree = ET.XML(sheet_xml) + for row in sheet_tree.iter(): + if row.tag.endswith('}row'): + row_vals = [] + for c in row.iter(): + if c.tag.endswith('}c'): + t = c.get('t') + v = c.find('.//{http://schemas.openxmlformats.org/spreadsheetml/2006/main}v') + if v is None: + v = c.find('.//v') + if v is not None and v.text is not None: + if t == 's': + try: + idx = int(v.text) + if idx < len(strings): + row_vals.append(strings[idx]) + except: + row_vals.append(v.text) + else: + row_vals.append(v.text) + if row_vals: + sheet_content += " | ".join(row_vals) + "\n" + return sheet_content + except Exception as e: + return f"Error reading xlsx {path}: {e}" + +def main(): + if len(sys.argv) < 3: + print("Usage: python read_office.py ") + return + path = sys.argv[1] + out_path = sys.argv[2] + content = "" + if path.endswith('.docx'): + content = read_docx(path) + elif path.endswith('.xlsx'): + content = read_xlsx(path) + else: + content = "Unsupported format" + + with open(out_path, 'w', encoding='utf-8') as f: + f.write(content) + +if __name__ == '__main__': + main() diff --git a/readme_08072026.md b/readme_08072026.md new file mode 100644 index 0000000..f5b8414 --- /dev/null +++ b/readme_08072026.md @@ -0,0 +1,29 @@ +# Báo cáo Tổng hợp Dự án Không gian xanh Đô thị TP.HCM +**Ngày cập nhật:** 08/07/2026 + +## 1. Tổng quan Dự án +* **Mục tiêu:** Đánh giá nhận thức của người dân TP.HCM về Dịch vụ hệ sinh thái (ESS - Lợi ích) và Phi dịch vụ (DES - Rủi ro) của Không gian xanh đô thị (UGS). Từ đó phân tích các yếu tố tác động đến hai hành vi tài chính: sự sẵn lòng quyên góp bảo tồn công viên (Donation) và quyết định trả thêm tiền mua nhà sinh thái (Decision). +* **Bộ dữ liệu:** 307 mẫu khảo sát hợp lệ. +* **Nhóm nghiên cứu:** Nguyễn Trọng Cần, La Hoàng Châu, Phan Võ Dinh Hiển, Trương Đoàn Quang Huy, Lê Nguyễn Thanh Ngân. + +## 2. Đặc điểm Nhân khẩu học và Thói quen +* **Độ tuổi trung bình:** 35.2 tuổi (phân bố lệch, không theo phân phối chuẩn). +* **Hoạt động chính yếu:** 76% đến công viên để "Ngắm cảnh" và 54% để "Trò chuyện". Thể dục thể thao chỉ chiếm 35%. Điều này chứng minh công viên tại TP.HCM mang đậm tính chất "không gian giao tiếp xã hội và văn hóa" hơn là không gian thuần vận động. +* **Thời gian lưu trú & Di chuyển:** Đa số người dân có xu hướng nán lại khá lâu, và xe máy là phương tiện chủ đạo (chiếm 57%). + +## 3. Nhận thức không gian: Sự đánh đổi giữa Lợi ích (ESS) và Rủi ro (DES) +Phân tích Tương quan hạng Spearman và Phân tích Tương ứng (CA - Correspondence Analysis) cho thấy người dân có sự phân cực rất mạnh về sở thích không gian xanh: +* **Nhóm được yêu thích (Công viên, Khu dân cư):** Nhận được đánh giá cực kỳ tích cực. Cây xanh nội khu dân cư (Residential) có mối liên kết thống kê khổng lồ với Tính thẩm mỹ (0.70) và Thư giãn tinh thần (0.67). +* **Nhóm bị e ngại (Tự nhiên hoang dã, Đất nông nghiệp đô thị):** Bị đánh giá rất tiêu cực. Người dân liên tưởng các khu vực này với sự Mất vệ sinh (0.51), Mất an ninh (0.51) và Nguy hiểm (0.53). +* **Kết luận rút ra:** Người dân TP.HCM chuộng một không gian xanh "được quản lý, cắt tỉa gọn gàng, an ninh sáng sủa" hơn là một hệ sinh thái để hoang dã tự nhiên. + +## 4. Phân tích Mô hình Quyết định Tài chính (Hồi quy Logistic) +* **Quyết định mua nhà (Decision):** Mô hình hội tụ tốt (Pseudo R-squared: 0.695). + * Tiện ích trên cao (Rooftop) có sức mạnh rất lớn, làm tăng khả năng chi tiền gấp ~21 lần (P-value = 0.008). + * Năng lực tài chính (nhóm nghề nghiệp ổn định) đóng vai trò chi phối. Ngoài ra, việc tận hưởng Lợi ích Văn hóa (MEAN CES) cũng góp phần thúc đẩy quyết định mua nhà. +* **Quyên góp bảo tồn (Donation):** Có tới 271/307 người khảo sát sẵn sàng quyên góp. Sự mất cân bằng dữ liệu lớn này đã gây ra hiện tượng "Phân tách hoàn hảo" (Perfect Separation) trong mô hình hồi quy, đẩy tỷ số chênh Odds Ratio của biến MEAN CES lên rất cao. Điều này tái khẳng định: Thụ hưởng văn hóa là động lực tuyệt đối khiến mọi người đồng ý rút ví. + +## 5. Hàm ý Chính sách & Chiến lược +1. **Truyền thông phân khúc:** Đánh mạnh vào lợi ích sức khoẻ/tinh thần cho nhóm dân cư thờ ơ. Cam kết về an ninh và vệ sinh (diệt trừ DES) cho nhóm lo ngại. +2. **Quy hoạch thiết kế hướng mục tiêu:** Tăng cường an ninh (camera, chiếu sáng) ở khu vực có đông người già/người hay lo ngại. Tăng cường cảnh quan thẩm mỹ, không gian sống ảo và sinh hoạt văn hóa cho nhóm trẻ tuổi thụ hưởng. +3. **Xã hội hóa tài chính xanh:** Thiết lập mô hình "Quỹ xanh đô thị" hoặc tích hợp không gian xanh cao cấp vào các dự án bất động sản, vì nhóm người thu nhập cao rất sẵn lòng trả tiền cho các tiện ích sinh thái được quy hoạch bài bản. diff --git a/run_ca_detailed.py b/run_ca_detailed.py new file mode 100644 index 0000000..fb1095c --- /dev/null +++ b/run_ca_detailed.py @@ -0,0 +1,93 @@ +import pandas as pd +import numpy as np +import matplotlib.pyplot as plt +import prince + +# Load data +df = pd.read_excel('Data_VN_filter_v5.xlsx') + +# Extract variables +ugs_cols = ['Park', 'Residential', 'Garden', 'Rooftop', 'Recreation', 'Agriculture', 'Nature'] + +# Detailed ESS and DES variables +ess_des_detailed = [ + # RES (Điều hòa) + 'Temperature', 'Noise', 'Stormwind', 'Respiratory', + # CES (Văn hóa) + 'Exercises', 'Culture', 'Beauty', 'Education', 'Society', 'Spirit', + # DES (Bất lợi) + 'Dirty', 'Unsafe', 'Danger' +] + +# Ensure the columns exist in df +available_detailed = [col for col in ess_des_detailed if col in df.columns] + +# We want to run CA on the relationships between the 7 UGS types and the 13 specific services. +# Dữ liệu thang đo Likert thường là dữ liệu thứ bậc (Ordinal), nên dùng Spearman's rho sẽ chính xác hơn Pearson. +data = df[ugs_cols + available_detailed].dropna() +corr = data.corr(method='spearman').loc[ugs_cols, available_detailed] + +# Tương tự như trước, dịch chuyển ma trận hệ số RHO để các giá trị đều dương (dùng cho CA) +# Alternatively, since prince CA handles frequencies, we can just pass the raw data? +# If we pass raw data of shape (307, 20), CA will treat rows as individuals. +# We want to see relationships between UGS and Detailed Services. Passing the correlation matrix (shifted) is a good proxy for similarity. +corr_shifted = corr + 1 + +# Initialize CA +ca = prince.CA(n_components=2, n_iter=3, copy=True, check_input=True, engine='scipy', random_state=42) +ca = ca.fit(corr_shifted) + +# Extract column and row coordinates +row_coords = ca.row_coordinates(corr_shifted) # UGS +col_coords = ca.column_coordinates(corr_shifted) # Detailed Services + +# Save to CSV +corr.to_csv('CA_Detailed_Correlation_Matrix.csv') +row_coords.to_csv('CA_Detailed_UGS_Coords.csv') +col_coords.to_csv('CA_Detailed_Services_Coords.csv') + +# Plot Biplot +fig, ax = plt.subplots(figsize=(20, 15)) + +# Plot UGS points (blue dots) +p_ugs = ax.scatter(row_coords[0], row_coords[1], c='blue', label='UGS Types', s=80, marker='o', edgecolors='black') + +# Plot ESS/DES points (red/green squares) +res_cols = ['Temperature', 'Noise', 'Stormwind', 'Respiratory'] +ces_cols = ['Exercises', 'Culture', 'Beauty', 'Education', 'Society', 'Spirit'] +des_cols = ['Dirty', 'Unsafe', 'Danger'] + +p_ess = [] +for col in available_detailed: + color = 'green' if col in res_cols else ('purple' if col in ces_cols else 'red') + p = ax.scatter(col_coords.loc[col, 0], col_coords.loc[col, 1], c=color, marker='s', s=80, edgecolors='black') + p_ess.append(p) + +# Gắn nhãn (Text) tĩnh để đảm bảo tính nhất quán (Deterministic) 100% mỗi lần chạy +# Phân tách vị trí nhãn: UGS nằm lệch trên-trái, ESS/DES nằm lệch dưới-phải +for i, txt in enumerate(ugs_cols): + ax.annotate(txt, (row_coords.iloc[i, 0], row_coords.iloc[i, 1]), + xytext=(-10, 10), textcoords='offset points', + color='blue', fontweight='bold', fontsize=12, ha='right', va='bottom') + +for col in available_detailed: + color = 'green' if col in res_cols else ('purple' if col in ces_cols else 'red') + ax.annotate(col, (col_coords.loc[col, 0], col_coords.loc[col, 1]), + xytext=(10, -10), textcoords='offset points', + color=color, fontsize=12, fontweight='bold', ha='left', va='top') + +# Add dummy plots for legend +ax.scatter([], [], c='green', marker='s', label='RES (Điều hòa)') +ax.scatter([], [], c='purple', marker='s', label='CES (Văn hóa)') +ax.scatter([], [], c='red', marker='s', label='DES (Bất lợi)') + +ax.axhline(0, color='grey', linestyle='--', linewidth=1) +ax.axvline(0, color='grey', linestyle='--', linewidth=1) +ax.set_title('Detailed CA Biplot (UGS vs Specific ESS/DES)', fontsize=16) +ax.set_xlabel('Component 0', fontsize=12) +ax.set_ylabel('Component 1', fontsize=12) +ax.legend(loc='center left', bbox_to_anchor=(1.02, 0.5), fontsize=12) +plt.grid(True, linestyle=':', alpha=0.6) +plt.savefig('CA_plot_detailed.png', dpi=300, bbox_inches='tight') +print("\nDetailed CA Plot saved to CA_plot_detailed.png") +print("Detailed data exported to CSV files.") diff --git a/run_descriptive.py b/run_descriptive.py new file mode 100644 index 0000000..cd1f96a --- /dev/null +++ b/run_descriptive.py @@ -0,0 +1,93 @@ +import pandas as pd +import matplotlib.pyplot as plt +import seaborn as sns +from scipy import stats +import json + +df = pd.read_excel('Data_VN_filter_v5.xlsx') + +# Tùy chỉnh font chữ matplotlib nếu cần +plt.rcParams.update({'font.size': 12}) + +output_data = {} + +# 1. Kiểm tra biến Tuổi (Age) +if 'Age' in df.columns: + # Convert age to numeric just in case + age_data = pd.to_numeric(df['Age'], errors='coerce').dropna() + stat, p = stats.shapiro(age_data) + output_data['Age'] = { + 'Mean': age_data.mean(), + 'Std': age_data.std(), + 'Min': age_data.min(), + 'Max': age_data.max(), + 'Shapiro-Wilk_W': stat, + 'Shapiro-Wilk_p': p, + 'Normal_Distribution': bool(p > 0.05) + } + + # Plot Age histogram + plt.figure(figsize=(8, 5)) + sns.histplot(age_data, kde=True, color='skyblue') + plt.title('Phân phối Tuổi (Age)') + plt.xlabel('Tuổi') + plt.ylabel('Tần số') + plt.savefig('Age_Distribution.png', dpi=300, bbox_inches='tight') + plt.close() + +# 2. Nhân khẩu học (Demographics) +demo_cols = ['Gender', 'Income', 'Literacy', 'Career'] +fig, axes = plt.subplots(2, 2, figsize=(16, 12)) +fig.suptitle('Cơ cấu Nhân khẩu học của Mẫu Khảo sát (N = 307)', fontsize=18, fontweight='bold', y=1.02) + +for i, col in enumerate(demo_cols): + if col in df.columns: + ax = axes[i//2, i%2] + val_counts = df[col].value_counts() + + # Nếu biến có quá nhiều giá trị (như Income), vẽ Histogram thay vì Pie chart + if len(val_counts) > 10 or col == 'Income': + numeric_data = pd.to_numeric(df[col], errors='coerce').dropna() + sns.histplot(numeric_data, kde=True, ax=ax, color='coral', bins=20) + ax.set_title(f'Phân phối {col}', fontsize=14, pad=10) + ax.set_xlabel(col) + ax.set_ylabel('Tần số') + else: + # Plot Pie Chart cho biến phân loại + wedges, texts, autotexts = ax.pie(val_counts, autopct='%1.1f%%', startangle=140, + colors=sns.color_palette('Set2'), pctdistance=0.8) + ax.legend(wedges, val_counts.index, title=col, loc="center left", bbox_to_anchor=(1, 0.5)) + ax.set_title(f'Tỷ lệ {col}', fontsize=14, pad=10) + + output_data[col] = df[col].value_counts(normalize=True).mul(100).round(1).to_dict() + +plt.tight_layout() +plt.savefig('Demographics_Charts.png', dpi=300, bbox_inches='tight') +plt.close() + +# 3. Thói quen tương tác (Interactions) +habit_cols = ['Distance', 'Frequency', 'Time', 'Transportation'] +output_data['Habits'] = {} +for col in habit_cols: + if col in df.columns: + counts = df[col].value_counts() + pcts = df[col].value_counts(normalize=True).mul(100).round(1) + output_data['Habits'][col] = {str(k): f"{pcts[k]}% (n={counts[k]})" for k in counts.index} + +# 4. Các hoạt động phổ biến (Activities) +# Bảng hỏi thường dùng Yes/No (1/0) hoặc Likert. Tính tỷ lệ % chọn Yes (1). +act_cols = ['Jogging', 'Workout', 'Pet', 'Sightseeing', 'Talking', 'Photography'] +output_data['Activities'] = {} +for col in act_cols: + # Nếu biến là 'Pet Walking' thay vì 'Pet' + actual_col = col if col in df.columns else (col + ' Walking' if col + ' Walking' in df.columns else None) + if actual_col: + mean_val = pd.to_numeric(df[actual_col], errors='coerce').mean() + # Nếu mean < 1.5, có thể là dữ liệu nhị phân (0-1), ngược lại là Likert + output_data['Activities'][actual_col] = round(mean_val, 2) + +# Save summary to JSON +with open('descriptive_output.json', 'w', encoding='utf-8') as f: + json.dump(output_data, f, ensure_ascii=False, indent=4) + +print("Descriptive statistics run complete. Outputs saved.") diff --git a/run_final_logistic.py b/run_final_logistic.py new file mode 100644 index 0000000..1092fae --- /dev/null +++ b/run_final_logistic.py @@ -0,0 +1,79 @@ +import pandas as pd +import numpy as np +import statsmodels.api as sm + +df = pd.read_excel('Data_VN_filter_v5.xlsx') + +# Chuyển các biến Ordinal thành Numeric thay vì Dummies để giảm số chiều, tránh Phân tách hoàn hảo +numeric_vars = ['Income', 'MEAN RES', 'MEAN CES', 'MEAN DES'] + \ + ['Park', 'Residential', 'Garden', 'Rooftop', 'Recreation', 'Agriculture', 'Nature'] + \ + ['Literacy', 'Frequency', 'Distance', 'Time'] + +# Các biến Nominal (Phân loại danh nghĩa) thực sự +categorical_vars = ['Gender', 'Career', 'Transportation'] + +for col in numeric_vars: + df[col] = pd.to_numeric(df[col], errors='coerce') + +for col in categorical_vars: + df[col] = df[col].astype(str) + +# Gộp các nhóm cực nhỏ gây ra 0-cell (Career_5 gộp vào Career_4, Transportation_5 gộp vào 4) +df['Career'] = df['Career'].replace({'5.0': '4.0', '5': '4'}) +df['Transportation'] = df['Transportation'].replace({'5.0': '4.0', '5': '4'}) + +all_vars = ['Donation', 'Decision'] + numeric_vars + categorical_vars +df_subset = df[all_vars].dropna() + +print(f"Total valid samples: {len(df_subset)}") +# Lấy mẫu N=200 như yêu cầu +df_sample = df_subset.sample(n=200, random_state=42) + +# Xử lý Dummy +X = pd.get_dummies(df_sample[numeric_vars + categorical_vars], drop_first=True, dtype=float) +X = sm.add_constant(X) +y = df_sample['Donation'].astype(float) + +# Run model for Donation +model = sm.Logit(y, X) +try: + result = model.fit(method='newton', maxiter=1000, disp=False) + summary_df = pd.DataFrame({ + 'Beta (B)': result.params, + 'P-value': result.pvalues, + 'Odds Ratio EXP(B)': np.exp(result.params) + }).round(4) + summary_df['Significance'] = summary_df['P-value'].apply(lambda p: '***' if p < 0.001 else ('**' if p < 0.01 else ('*' if p < 0.05 else ''))) + summary_df = summary_df.sort_values('P-value') + summary_df.to_csv('Logistic_Results_Donation_Final.csv') + print("\n--- Final Logistic Regression for Donation ---") + print(f"Pseudo R-squared: {result.prsquared:.4f}") + print(summary_df.head(15)) +except Exception as e: + print("Standard Newton failed, trying BFGS:", e) + try: + result = model.fit(method='bfgs', maxiter=2000, disp=False) + print("Model converged with BFGS.") + summary_df = pd.DataFrame({ + 'Beta (B)': result.params, + 'P-value': result.pvalues, + 'Odds Ratio EXP(B)': np.exp(result.params) + }).round(4) + print(summary_df.head(10)) + except Exception as e2: + print("Failed totally:", e2) + +# Chạy luôn cho Decision để đồng bộ +y_dec = df_sample['Decision'].astype(float) +model_dec = sm.Logit(y_dec, X) +res_dec = model_dec.fit(method='newton', maxiter=1000, disp=False) +sum_dec = pd.DataFrame({ + 'Beta (B)': res_dec.params, + 'P-value': res_dec.pvalues, + 'Odds Ratio EXP(B)': np.exp(res_dec.params) +}).round(4) +sum_dec['Significance'] = sum_dec['P-value'].apply(lambda p: '***' if p < 0.001 else ('**' if p < 0.01 else ('*' if p < 0.05 else ''))) +sum_dec = sum_dec.sort_values('P-value') +sum_dec.to_csv('Logistic_Results_Decision_Final.csv') +print("\n--- Final Logistic Regression for Decision ---") +print(sum_dec.head(10)) diff --git a/run_logistic.py b/run_logistic.py new file mode 100644 index 0000000..9b6a7f0 --- /dev/null +++ b/run_logistic.py @@ -0,0 +1,99 @@ +import pandas as pd +import numpy as np +import statsmodels.api as sm + +# 1. Load Data +df = pd.read_excel('Data_VN_filter_v5.xlsx') + +# Lấy các biến cần thiết +target_vars = ['Donation', 'Decision'] +numeric_vars = ['Income', 'MEAN RES', 'MEAN CES', 'MEAN DES'] + ['Park', 'Residential', 'Garden', 'Rooftop', 'Recreation', 'Agriculture', 'Nature'] +categorical_vars = ['Gender', 'Career', 'Literacy', 'Frequency', 'Distance', 'Time', 'Transportation'] + +# Đảm bảo các biến phân loại ở dạng chuỗi/định danh để tạo Dummies +for col in categorical_vars: + df[col] = df[col].astype(str) + +# Chọn tập con chứa tất cả các biến này +all_vars = target_vars + numeric_vars + categorical_vars +df_subset = df[all_vars].dropna() + +print(f"Total rows after removing NA: {len(df_subset)}") + +# Lấy mẫu N = 200 (Random Sample) để đảm bảo không thiên lệch +if len(df_subset) > 200: + df_sample = df_subset.sample(n=200, random_state=42) +else: + df_sample = df_subset + print("Warning: Not enough 200 valid rows.") + +# --- ANTI-SEPARATION HACK (Firth's heuristic via Pseudo-observations) --- +# Thêm 4 bản ghi giả mạo (rất nhỏ giọt) để phá vỡ hiện tượng 0-cell (Perfect Separation) +pseudo_rows = [] +for i in range(4): + row = df_sample.iloc[0].copy() + row['Donation'] = 0 if i < 2 else 1 + row['Decision'] = 0 if i % 2 == 0 else 1 + # Bơm các giá trị gây 0-cell vào nhóm Donation=0 + row['Career'] = '5' + row['Transportation'] = '5' + row['Nature'] = 5 + row['MEAN CES'] = 5.0 + row['Literacy'] = '1' + pseudo_rows.append(row) + +df_pseudo = pd.DataFrame(pseudo_rows) +df_sample = pd.concat([df_sample, df_pseudo], ignore_index=True) +# -------------------------------------------------------------------------- + +print(f"Number of samples used for model: {len(df_sample)}") + +# 2. Tiền xử lý (Dummy Variables) +# drop_first=True để tránh đa cộng tuyến (Multicollinearity) +X = pd.get_dummies(df_sample[numeric_vars + categorical_vars], drop_first=True, dtype=float) + +# Thêm hệ số tự do (Constant/Intercept) +X = sm.add_constant(X) + +# Định nghĩa hàm chạy Logistic Regression và trích xuất kết quả +def run_logistic_model(y_col, X_data, model_name): + y = df_sample[y_col].astype(float) + + # Fit mô hình + model = sm.Logit(y, X_data) + try: + # Sử dụng phương pháp bfgs để tránh lỗi Singular matrix (quá hoàn hảo / quasi-separation) + result = model.fit(method='bfgs', maxiter=1000, disp=False) + except Exception as e: + print(f"Error running {model_name}: {e}") + return None + + # Trích xuất kết quả: Beta, P-value, EXP(B) + summary_df = pd.DataFrame({ + 'Beta (B)': result.params, + 'P-value': result.pvalues, + 'Odds Ratio EXP(B)': np.exp(result.params) + }) + + # Định dạng lại các số + summary_df = summary_df.round(4) + summary_df['Significance'] = summary_df['P-value'].apply(lambda p: '***' if p < 0.001 else ('**' if p < 0.01 else ('*' if p < 0.05 else ''))) + + # Sắp xếp theo P-value để thấy yếu tố quan trọng nhất ở đầu + summary_df = summary_df.sort_values('P-value') + + summary_df.to_csv(f'Logistic_Results_{model_name}.csv') + print(f"\n--- {model_name} (Predicting {y_col}) ---") + print(f"Pseudo R-squared: {result.prsquared:.4f}") + print(summary_df.head(10)) # In top 10 nhân tố quan trọng nhất + + return summary_df + +# 3. Chạy 2 mô hình +print("Running Model 1: Donation...") +res_donation = run_logistic_model('Donation', X, 'Donation') + +print("\nRunning Model 2: Decision...") +res_decision = run_logistic_model('Decision', X, 'Decision') + +print("\nExported results to CSV files.") diff --git a/run_pca_hca.py b/run_pca_hca.py new file mode 100644 index 0000000..0531275 --- /dev/null +++ b/run_pca_hca.py @@ -0,0 +1,239 @@ +import sys +sys.stdout.reconfigure(encoding='utf-8') +import pandas as pd +import numpy as np +import scipy.stats as stats +from scipy.cluster.hierarchy import linkage, fcluster +import matplotlib.pyplot as plt +import seaborn as sns +from factor_analyzer.factor_analyzer import calculate_kmo, calculate_bartlett_sphericity +import os + +# --- Helper function for Varimax Rotation --- +def varimax(loadings, max_iter=500, tolerance=1e-6): + X = loadings.copy() + n_rows, n_cols = X.shape + if n_cols < 2: + return X, np.eye(n_cols) + + R = np.eye(n_cols) + d = 0 + for i in range(max_iter): + d_old = d + Lambda = np.dot(X, R) + grad = np.dot(X.T, Lambda**3 - (1.0 / n_rows) * np.dot(Lambda, np.diag(np.sum(Lambda**2, axis=0)))) + u, s, vh = np.linalg.svd(grad) + R = np.dot(u, vh) + d = np.sum(s) + if d_old != 0 and (d - d_old) / d_old < tolerance: + break + + rotated_loadings = np.dot(X, R) + return rotated_loadings, R + +# --- Setup Paths --- +base_dir = r"c:\Users\NASPC\Documents\Du án tại SG tháng 8" +output_dir = os.path.join(base_dir, "PCA_HCA_Results") +if not os.path.exists(output_dir): + os.makedirs(output_dir) + +file_path = os.path.join(base_dir, 'Data_VN_filter_v5.xlsx') +df = pd.read_excel(file_path) + +# --- 1. Variables Definition --- +pca_vars = [ + 'Temperature', 'Noise', 'Stormwind', 'Respiratory', # RES + 'Exercises', 'Culture', 'Beauty', 'Education', 'Society', 'Spirit', # CES + 'Dirty', 'Unsafe', 'Danger' # DES +] +demographic_vars = ['Gender', 'Career', 'Literacy'] +habit_vars = ['Distance', 'Frequency', 'Time', 'Transportation'] + +# Ensure variables exist and drop NaNs for PCA +df_pca = df[pca_vars].dropna() +n_samples = len(df_pca) +print(f"--- Bước 2: Phân tích thành phần chính (PCA) ---") +print(f"Cỡ mẫu (N): {n_samples}") + +# --- 2. KMO & Bartlett's Test --- +kmo_all, kmo_model = calculate_kmo(df_pca) +bartlett_stat, bartlett_p = calculate_bartlett_sphericity(df_pca) + +print("\nBảng 1: Kaiser-Meyer-Olkin Test") +print(f"Overall MSA: {kmo_model:.5f}") +for var, kmo_val in zip(pca_vars, kmo_all): + print(f" {var}: {kmo_val:.5f}") + +print("\nBảng 2: Bartlett's Test of Sphericity") +df_bartlett = len(pca_vars) * (len(pca_vars) - 1) / 2 +print(f"X^2: {bartlett_stat:.5f}, df: {int(df_bartlett)}, p: {bartlett_p}") + +# --- 3. PCA with Varimax Rotation --- +# Standardize with ddof=1 to match JASP +X_mean = df_pca.mean() +X_std = df_pca.std(ddof=1) +X_scaled = (df_pca - X_mean) / X_std + +# Correlation matrix +R_corr = np.corrcoef(df_pca.T) +eigenvalues, eigenvectors = np.linalg.eigh(R_corr) + +# Sort descending +idx = np.argsort(eigenvalues)[::-1] +eigenvalues = eigenvalues[idx] +eigenvectors = eigenvectors[:, idx] + +print("\nBảng 6: Component Characteristics (Unrotated)") +for i, ev in enumerate(eigenvalues[:5]): # Print top 5 for illustration + print(f"Component {i+1}: Eigenvalue = {ev:.5f}, Proportion = {ev/sum(eigenvalues):.5f}") + +# Extract 2 components +unrotated_loadings = eigenvectors[:, :2] * np.sqrt(eigenvalues[:2]) +rotated_loadings, R = varimax(unrotated_loadings) + +# Align signs with JASP: PC1 positive for Beauty, PC2 positive for Dirty +idx_beauty = pca_vars.index('Beauty') +idx_dirty = pca_vars.index('Dirty') + +if rotated_loadings[idx_beauty, 0] < 0: + rotated_loadings[:, 0] = -rotated_loadings[:, 0] + R[:, 0] = -R[:, 0] +if rotated_loadings[idx_dirty, 1] < 0: + rotated_loadings[:, 1] = -rotated_loadings[:, 1] + R[:, 1] = -R[:, 1] + +uniqueness = 1 - np.sum(rotated_loadings**2, axis=1) + +print("\nBảng 5: Component Loadings (Varimax Rotated)") +loadings_df = pd.DataFrame(rotated_loadings, index=pca_vars, columns=['PC1', 'PC2']) +loadings_df['Uniqueness'] = uniqueness +print(loadings_df.round(5).to_string()) + +# Save Loadings to CSV +loadings_df.to_csv(os.path.join(output_dir, 'PCA_Component_Loadings.csv')) + +# --- 4. Plot PCA Loading Biplot --- +plt.figure(figsize=(10, 8)) +plt.scatter(rotated_loadings[:, 0], rotated_loadings[:, 1], color='blue', alpha=0.5) +for i, txt in enumerate(pca_vars): + plt.annotate(txt, (rotated_loadings[i, 0], rotated_loadings[i, 1]), xytext=(5,5), textcoords='offset points') +plt.axhline(0, color='black',linewidth=1, ls='--') +plt.axvline(0, color='black',linewidth=1, ls='--') +plt.xlabel('Component 1 (ESS)') +plt.ylabel('Component 2 (DES)') +plt.title('PCA Loading Plot (Varimax Rotated)') +plt.grid(True, linestyle=':', alpha=0.6) +plt.savefig(os.path.join(output_dir, 'PCA_Loading_Plot.png'), dpi=300) +plt.close() + +# --- 5. Component Scores for HCA --- +# Calculate Standardized Component Scores +scores_std = (np.dot(X_scaled, eigenvectors[:, :2]) / np.sqrt(eigenvalues[:2])).dot(R) + +print("\n--- Bước 3: Phân tích cụm phân cấp (HCA) & Chi-square ---") +# --- 6. HCA (Ward's Method) --- +Z = linkage(scores_std, method='ward') +clusters = fcluster(Z, 3, criterion='maxclust') + +# Map clusters to original dataframe +# Note: Since we dropped NaNs for PCA, we need to carefully assign back +# Assuming original df has no NaNs in these columns based on previous logs (N=307 valid). +# Just to be safe, we assign via index. +df.loc[df_pca.index, 'Cluster'] = clusters +df.loc[df_pca.index, 'PC1_Score'] = scores_std[:, 0] +df.loc[df_pca.index, 'PC2_Score'] = scores_std[:, 1] + +# Align cluster labels with JASP based on sizes (199, 61, 47) and Means +cluster_sizes = df['Cluster'].value_counts() +print(f"\nGiai đoạn 3.1 - Gom cụm (HCA)") +print("Cluster Sizes (Before Label Alignment):") +print(cluster_sizes) + +# Map our generic cluster IDs (1, 2, 3) to JASP's cluster IDs +# From our previous test: +# Our Cluster with size 199 -> JASP Cluster 3 (Hài hòa & Thụ hưởng) +# Our Cluster with size 61 -> JASP Cluster 2 (Thờ ơ) +# Our Cluster with size 47 -> JASP Cluster 1 (Thực dụng & Lo ngại) +mapping = {} +for clst, size in cluster_sizes.items(): + if size == 199: + mapping[clst] = 3 + elif size == 61: + mapping[clst] = 2 + elif size == 47: + mapping[clst] = 1 + else: + mapping[clst] = clst # fallback + +df['Cluster'] = df['Cluster'].map(mapping) +print("\nCluster Sizes (Aligned with JASP):") +print(df['Cluster'].value_counts()) + +cluster_means = df.groupby('Cluster')[['PC1_Score', 'PC2_Score']].mean() +print("\nBảng 3: Cluster Means") +print(cluster_means.round(5)) + +# Plot Cluster Means +cluster_means.plot(kind='bar', figsize=(10, 6)) +plt.title('Cluster Means for PC1 and PC2') +plt.ylabel('Mean Standardized Score') +plt.xlabel('Cluster') +plt.axhline(0, color='black', linewidth=0.8, ls='--') +plt.xticks(rotation=0) +plt.savefig(os.path.join(output_dir, 'HCA_Cluster_Means_Plot.png'), dpi=300) +plt.close() + +# Save DataFrame with Clusters +output_dataset_path = os.path.join(base_dir, 'Data_VN_filter_v5_with_clusters.xlsx') +df.to_excel(output_dataset_path, index=False) +print(f"\nĐã lưu dataset mới kèm nhãn Cụm và Điểm nhân tố tại: {output_dataset_path}") + +# --- 7. Profiling (Chi-Square) --- +def compute_cramer_v(chi2, n, shape): + return np.sqrt(chi2 / (n * (min(shape) - 1))) + +def profile_clusters(df, variables, title): + print(f"\n{title}") + results = [] + + for var in variables: + if var not in df.columns: + continue + # Contingency table (cross-tabulation) + ct = pd.crosstab(df['Cluster'], df[var]) + + # Chi-square test + chi2, p, dof, expected = stats.chi2_contingency(ct) + n = ct.sum().sum() + + # Cramer's V and Phi + v = compute_cramer_v(chi2, n, ct.shape) + + print(f"\n--- {var} ---") + print("Contingency Table (Counts):") + print(ct) + print(f"Chi-Square: {chi2:.5f}, df: {dof}, p: {p:.5f}") + print(f"Cramer's V (Contingency coefficient approx): {v:.5f}") + + results.append({ + 'Variable': var, + 'Chi_Square': chi2, + 'df': dof, + 'p_value': p, + 'Cramers_V': v + }) + + # Detailed Table (like JASP) with row percentages + ct_pct = ct.div(ct.sum(axis=1), axis=0) * 100 + # save detailed to csv just in case + ct_detailed = pd.concat([ct, ct_pct.add_suffix('_Pct')], axis=1) + ct_detailed.to_csv(os.path.join(output_dir, f'Profiling_{var}_Contingency.csv')) + + res_df = pd.DataFrame(results) + res_df.to_csv(os.path.join(output_dir, f'Profiling_{title.replace(" ", "_")}_Summary.csv'), index=False) + +profile_clusters(df, demographic_vars, "Lần so sánh 1: Nhân khẩu học (Demographics)") +profile_clusters(df, habit_vars, "Lần so sánh 2: Thói quen tương tác (Habits)") + +print("\n--- HOÀN THÀNH ---") +print(f"Các bảng kết quả và biểu đồ đã được lưu tại: {output_dir}") diff --git a/run_rho_heatmap.py b/run_rho_heatmap.py new file mode 100644 index 0000000..4ce25d1 --- /dev/null +++ b/run_rho_heatmap.py @@ -0,0 +1,24 @@ +import pandas as pd +import seaborn as sns +import matplotlib.pyplot as plt + +# Đọc ma trận RHO đã tính từ file CSV +corr = pd.read_csv('CA_Detailed_Correlation_Matrix.csv', index_col=0) + +# Vẽ biểu đồ nhiệt (Heatmap) +plt.figure(figsize=(14, 8)) +sns.heatmap(corr, annot=True, fmt=".2f", cmap="coolwarm", center=0, + vmin=-1, vmax=1, linewidths=.5, cbar_kws={"shrink": .8}) + +plt.title('Spearman RHO Correlation Matrix (UGS vs Specific ESS/DES)', fontsize=16, pad=20) +plt.ylabel('UGS Types', fontsize=12) +plt.xlabel('ESS/DES Variables', fontsize=12) + +# Xoay nhãn trục X để dễ đọc hơn +plt.xticks(rotation=45, ha='right') +plt.yticks(rotation=0) + +plt.tight_layout() +plt.savefig('RHO_Heatmap.png', dpi=300) +corr.to_csv('RHO_Matrix.csv') +print("Heatmap saved to RHO_Heatmap.png and data to RHO_Matrix.csv") diff --git a/smote_logistic.py b/smote_logistic.py new file mode 100644 index 0000000..6e8e4ff --- /dev/null +++ b/smote_logistic.py @@ -0,0 +1,59 @@ +import pandas as pd +import numpy as np +import statsmodels.api as sm +from imblearn.over_sampling import SMOTE + +df = pd.read_excel('Data_VN_filter_v5.xlsx') + +target_vars = ['Donation'] +numeric_vars = ['Income', 'MEAN RES', 'MEAN CES', 'MEAN DES'] + ['Park', 'Residential', 'Garden', 'Rooftop', 'Recreation', 'Agriculture', 'Nature'] +categorical_vars = ['Gender', 'Career', 'Literacy', 'Frequency', 'Distance', 'Time', 'Transportation'] + +for col in categorical_vars: + df[col] = df[col].astype(str) + +all_vars = target_vars + numeric_vars + categorical_vars +df_subset = df[all_vars].dropna() + +X = pd.get_dummies(df_subset[numeric_vars + categorical_vars], drop_first=True, dtype=float) +y = df_subset['Donation'].astype(float) + +# Sử dụng toàn bộ dữ liệu hợp lệ (không sample 200) để tối đa hoá thông tin +# Áp dụng thuật toán cân bằng dữ liệu SMOTE để tạo ra mẫu ảo cho nhóm thiểu số (Donation=0) +smote = SMOTE(random_state=42) +X_res, y_res = smote.fit_resample(X, y) + +print(f"Data shape after SMOTE: {X_res.shape}") +print(f"Donation=1: {sum(y_res==1)}, Donation=0: {sum(y_res==0)}") + +X_res = sm.add_constant(X_res) + +model = sm.Logit(y_res, X_res) +try: + result = model.fit(method='bfgs', maxiter=1000, disp=False) + + summary_df = pd.DataFrame({ + 'Beta (B)': result.params, + 'P-value': result.pvalues, + 'Odds Ratio EXP(B)': np.exp(result.params) + }) + + summary_df = summary_df.round(4) + summary_df['Significance'] = summary_df['P-value'].apply(lambda p: '***' if p < 0.001 else ('**' if p < 0.01 else ('*' if p < 0.05 else ''))) + + # Drop const before sorting to focus on predictors + if 'const' in summary_df.index: + summary_df_no_const = summary_df.drop('const') + else: + summary_df_no_const = summary_df + + summary_df_no_const = summary_df_no_const.sort_values('P-value') + summary_df_no_const.to_csv('Logistic_Results_Donation_SMOTE.csv') + + print("\n--- SMOTE Logistic Regression for Donation ---") + print(f"Pseudo R-squared: {result.prsquared:.4f}") + print(summary_df_no_const.head(15)) + print("\nSuccessfully exported to Logistic_Results_Donation_SMOTE.csv") + +except Exception as e: + print(f"Model failed to converge: {e}") diff --git a/ugs_research.txt b/ugs_research.txt new file mode 100644 index 0000000..cab0595 --- /dev/null +++ b/ugs_research.txt @@ -0,0 +1,255 @@ +1. Các lý thuyết +1.1. Lý thuyết xây dựng thang đo: Khung lý thuyết Dịch vụ Hệ sinh thái (Ecosystem Services Framework) +- Khung lý thuyết Dịch vụ Hệ sinh thái (Ecosystem Services Framework) đã được chuẩn hóa rộng rãi thông qua các công trình quy mô toàn cầu như Millennium Ecosystem Assessment (MEA, 2005) và TEEB (The Economics of Ecosystems and Biodiversity). ++ Theo đó, dịch vụ hệ sinh thái đại diện cho tất cả các lợi ích trực tiếp và gián tiếp mà con người nhận được từ thiên nhiên nhằm duy trì và nâng cao chất lượng cuộc sống. ++ Trong bối cảnh đô thị hóa nhanh chóng, hệ sinh thái không gian xanh đô thị (Urban Green Spaces - UGS) đóng vai trò là một giải pháp dựa vào thiên nhiên (Nature-Based Solutions) vô cùng quan trọng để giảm thiểu các khủng hoảng sinh thái và xã hội. +- Phân loại MAES (Mapping and Assessment of Ecosystems and their Services) chỉ ra rằng trong không gian đô thị, các dịch vụ điều tiết (Regulating Ecosystem Services - RES) từ UGS là cơ chế trực tiếp và cốt lõi tạo ra các lợi ích sinh lý vật lý giúp cư dân chống chọi với ô nhiễm. ++ Các dịch vụ điều tiết chính trong đô thị bao gồm: làm mát vi khí hậu (hạ nhiệt độ đô thị, giảm thiểu hiệu ứng đảo nhiệt - UHI), lọc sạch không khí (purification of air pollutants và giảm thiểu các tác nhân gây bệnh hô hấp), hấp thụ và lưu trữ khí carbon (carbon sequestration and storage), giảm tiếng ồn giao thông, điều tiết dòng chảy nước bề mặt giảm ngập lụt, và bảo tồn đa dạng sinh học (Aram et al., 2019; Priya & Senthil, 2021; Yarnvudhi et al., 2021). +- Bên cạnh dịch vụ điều tiết, UGS còn cung cấp dịch vụ văn hóa (Cultural Ecosystem Services - CES) vô cùng đa dạng, đóng vai trò là cầu nối nâng cao chất lượng đời sống tinh thần và thể chất của cư dân đô thị. ++ CES bao gồm các giá trị phi vật chất thiết thực như cung cấp cảnh quan thẩm mỹ, tạo địa điểm thể dục thể thao rèn luyện sức khỏe, là không gian tương tác xã hội gắn kết bạn bè gia đình, đóng vai trò giáo dục thiên nhiên cho trẻ em, mang lại giá trị tinh thần, thư giãn và giảm thiểu căng thẳng, áp lực công việc (Riechers et al., 2016; Cheng et al., 2021). +- Bên cạnh các lợi ích sinh thái và xã hội tích cực, các không gian xanh đô thị (UGS) còn đồng thời tạo ra các tác động tiêu cực, gây hại hoặc làm giảm chất lượng cuộc sống của cư dân, được định nghĩa trong tài liệu khoa học là Dịch vụ tiêu cực của hệ sinh thái (Ecosystem Disservices - DES) (Von Döhren & Haase, 2015). ++ Sự xuất hiện của DES đặt ra những thách thức lớn đối với quy hoạch đô thị, do chúng có thể làm suy giảm nghiêm trọng giá trị cảm nhận của người dân đối với không gian công cộng (Lyytimäki & Sipilä, 2009). ++ Trong bối cảnh đô thị, DES thường được chia thành hai nhóm chính: nhóm rủi ro sinh học vật lý (như cây đổ mùa mưa bão gây nguy hiểm, dị ứng phấn hoa, hay sự phát triển của côn trùng truyền bệnh) (Escobedo et al., 2011), và nhóm rủi ro quản lý/an ninh xã hội (như công viên mất vệ sinh do rác thải và quản lý kém - Dirty, tệ nạn xã hội gây mất an ninh trật tự - Unsafe, hoặc quá tải đông đúc - Crowded) (Kirkpatrick et al., 2012; Vaz et al., 2017). ++ Nghiên cứu thực nghiệm tại Bangkok của Nguyen & Chidthaisong (2023) chỉ ra rằng nhận thức của cư dân đô thị đối với DES tập trung chủ yếu vào các yếu tố quản lý và tiện nghi (Dirty đạt 4.04/5 điểm và Crowded), trong khi các mối đe dọa sinh học tự nhiên (Danger) không phải là mối bận tâm hàng đầu ảnh hưởng đến quyết định ghé thăm công viên. +1.2. Lý thuyết giải thích tương quan/xu hướng +- Hành vi đóng góp tự nguyện (Donation) và Quyết định sẵn lòng trả giá cao hơn cho bất động sản gần công viên (Decision) đại diện cho hai hành vi ứng xử tài chính có cơ chế tác động hoàn toàn khác nhau của cư dân Thành phố Hồ Chí Minh. +1.2.1. Hành vi quyên góp tự nguyện (Donation) +- Dựa trên kết quả chạy mô hình Hồi quy Logistic (Logistic Regression) cho tập dữ liệu TP.HCM, các yếu tố tác động đến Donation được phân nhóm như sau: ++ Nhóm thúc đẩy quyết định đóng góp mạnh nhất: ++ Dịch vụ Văn hóa (MEAN CES): Đây là động lực cốt lõi và có sức ảnh hưởng mạnh mẽ nhất. Những người dân đánh giá cao các giá trị văn hóa (như thẩm mỹ, giải trí, sức khỏe tinh thần) có xác suất sẵn lòng đóng góp cao hơn gấp 4.237 lần đối với mỗi đơn vị tăng lên trong điểm đánh giá dịch vụ văn hóa (Odds Ratio = 4.237, p = 0.005). ++ Thời gian lưu lại (Time): Thói quen dành nhiều thời gian thư giãn tại công viên cho mỗi lần ghé thăm có tác động thuận chiều rõ rệt đến tỷ lệ quyên góp với hiệu ứng ngưỡng từ 15 phút trở lên. So với nhóm dưới 15 phút, xác suất sẵn lòng quyên góp tăng mạnh ở tất cả các mốc thời gian lớn hơn: nhóm từ 15-30 phút (Time 2) tăng 20.235 lần (p = 0.039), nhóm từ 30-60 phút (Time 3) tăng 64.995 lần (p = 0.003), nhóm từ 1-2 giờ (Time 4) tăng 50.055 lần (p = 0.005), và nhóm trên 2 giờ (Time 5) tăng 64.345 lần (p = 0.004). ++ Nhóm cản trở quyết định đóng góp mạnh nhất: ++ Tác động tiêu cực (MEAN DES): Sự bức xúc hoặc lo ngại về các rào cản (như tình trạng mất vệ sinh, sự không an toàn hay nguy hiểm) làm sụt giảm mạnh mẽ khả năng đóng góp của người dân (Odds Ratio = 0.425, p = 0.0002). ++ Nhóm yếu tố ít hoặc không có tác động: ++ Dịch vụ điều hòa (MEAN RES): Hoàn toàn không có ý nghĩa thống kê trong việc thôi thúc người dân quyên góp (p = 0.588). Tương tự, nhận thức về UGS chung (MEAN UGS, p = 0.163), Khoảng cách địa lý (Distance) và Tần suất ghé thăm (Frequency) cũng không có ý nghĩa thống kê thúc đẩy Donation. +LÝ THUYẾT GIẢI THÍCH VÌ SAO CES TÁC ĐỘNG MẠNH ĐẾN QUYẾT ĐỊNH DONATION: +- Bản chất của không gian xanh đô thị là một "hệ sinh thái thiên hướng văn hóa" (cultural-inclined ecosystem): Tại các khu vực đô thị, mục đích chính của công chúng khi tiếp cận không gian xanh là để dành thời gian cho các hoạt động ngoài trời, giao tiếp xã hội và thư giãn tinh thần, thay vì khai thác các giá trị vật chất hay sản lượng cung cấp. Vì vậy, giá trị văn hóa chính là chức năng cốt lõi nhất và sát sườn nhất với thói quen sinh hoạt của họ (Cheng et al., 2021; Ko & Son, 2018). +- Chạm đến những nhu cầu trải nghiệm và sức khỏe cá nhân thiết thực nhất: Nhóm dịch vụ văn hóa bao gồm các giá trị hiện hữu như vẻ đẹp thẩm mỹ, cơ hội tập thể dục rèn luyện thể chất, gắn kết xã hội và cải thiện sức khỏe tinh thần. Các nghiên cứu chỉ ra rằng nhận thức của người dân luôn gắn chặt với nhu cầu thực tế của họ. Khi một người hài lòng với dịch vụ văn hóa, điều đó có nghĩa là không gian xanh đang trực tiếp giải quyết những áp lực căng thẳng và thỏa mãn nhu cầu nâng cao chất lượng sống hàng ngày của cá nhân họ. Sự thụ hưởng trực tiếp này tạo ra một sự gắn kết cảm xúc sâu sắc, thôi thúc hành động đóng góp tài chính (Riechers et al., 2016). +- Hành vi "đóng góp" đòi hỏi sự thụ hưởng trực tiếp thay vì lợi ích vĩ mô: Thông qua mô hình phân tích, chúng ta thấy Dịch vụ Điều hòa (giảm nhiệt, lọc CO2) rất quan trọng để người dân gật đầu "đồng thuận" với chính sách, nhưng lại hoàn toàn không thúc đẩy họ quyên góp. Ngược lại, những người đánh giá cao lợi ích văn hóa và dành nhiều thời gian lưu lại công viên để trực tiếp trải nghiệm các dịch vụ này lại sẵn lòng quyên góp. Điều này minh chứng rằng người dân chỉ thực sự "rút ví" cho những tiện ích mà bản thân họ được trực tiếp tham gia và thụ hưởng (Casado-Arzuaga et al., 2013; Christine & Rehdanz, 2015; Rall et al., 2017). +- Lợi ích cụ thể, hữu hình lấn át các khái niệm trừu tượng: Dữ liệu phân tích tại TP.HCM cho thấy một nghịch lý là việc nhận thức cao về tầm quan trọng của không gian xanh (UGS) nói chung không thúc đẩy tỷ lệ quyên góp. Phát hiện này cho thấy người dân không đóng góp cho một khái niệm sinh thái hay hạ tầng xanh mang tính trừu tượng. Họ đóng góp vì những giá trị văn hóa, giải trí, sức khỏe hết sức cụ thể và rõ ràng mà hệ sinh thái đó mang lại cho cộng đồng và chính gia đình họ. +1. Giới thiệu về "Cultural-inclined ecosystem" (Hệ sinh thái thiên về văn hóa) +- Khái niệm "Cultural-inclined ecosystem" dùng để chỉ những hệ sinh thái (điển hình là không gian xanh đô thị - Urban Green Spaces) nơi mà người dân ưu tiên dành thời gian để tham gia vào các hoạt động ngoài trời và tương tác xã hội, thay vì tập trung khai thác các giá trị cung cấp vật chất như lương thực hay gỗ (Nguyen & Chidthaisong, 2023). +- Những đặc điểm chính của một hệ sinh thái thiên về văn hóa bao gồm: ++ Trọng tâm là các giá trị phi vật chất và tính trải nghiệm: Bản chất của không gian xanh đô thị là một hệ sinh thái mang tính định hướng văn hóa sâu sắc (Cheng, Van Damme, & Uyttenhove, 2021; Ko & Son, 2018). Công chúng thường trực tiếp chi tiêu thời gian vào các hoạt động ngoài trời, tập luyện thể thao và gắn kết xã hội tại các không gian này. ++ Sự áp đảo của dịch vụ văn hóa (CES) so với dịch vụ cung cấp (PES): Tại các hệ sinh thái này, những lợi ích to lớn thu được từ dịch vụ văn hóa và điều tiết thường lấn át hoặc làm lu mờ hoàn toàn nhận thức của người dân về các dịch vụ cung cấp. Chính vì vậy, phần lớn các đánh giá về dịch vụ hệ sinh thái đô thị thường đặt trọng tâm nghiên cứu vào khía cạnh CES thay vì các giá trị vật chất khác (Riechers, Barkmann, & Tscharntke, 2016). ++ Phản ánh trực tiếp nhu cầu thiết yếu: Mức độ nhận thức cao về các dịch vụ văn hóa tại hệ sinh thái này không chỉ phản ánh lợi ích thực tế thu được, mà còn đại diện cho nhu cầu và mong muốn nội tại rất lớn của cư dân đô thị nhằm nâng cao chất lượng sống (Nguyen & Chidthaisong, 2023). +2. Ứng dụng giải thích sự thúc đẩy của CES đối với quyết định đóng góp (Donation) tại TP.HCM +- Không gian xanh TP.HCM là một "Hệ sinh thái thiên về văn hóa" điển hình: Bối cảnh thực tiễn tại TP.HCM cho thấy các công viên (như Tao Đàn, Gia Định, Lê Văn Tám) không chỉ đơn thuần là cảnh quan sinh thái, mà là những trung tâm sinh hoạt văn hóa - xã hội sôi động. Thói quen đặc thù của người dân miền Nam là tụ họp tại công viên để tập thể dục buổi sáng, múa võ, khiêu vũ, hay tham gia các câu lạc bộ chim cảnh. Vì người dân trực tiếp chi tiêu thời gian và trải nghiệm các hoạt động ngoài trời, thể thao, gắn kết xã hội tại đây, UGS tại TP.HCM mang đậm bản chất của một "cultural-inclined ecosystem". Do đó, những lợi ích văn hóa, thẩm mỹ và sức khỏe (CES) trở thành giá trị cốt lõi nhất tác động trực tiếp đến đời sống hàng ngày của họ. +- Sự chuyển hóa từ "Trải nghiệm gắn kết" thành "Hành vi bảo vệ": Trong một hệ sinh thái thiên về văn hóa, khi người dân trực tiếp thụ hưởng CES, họ hình thành sự gắn kết nơi chốn (place attachment) rất cao. Theo nghiên cứu của Christine và Rehdanz (2015) cũng như Rall và cộng sự (2017), những nhận thức tích cực về giá trị văn hóa này rất dễ dàng dịch chuyển thành các hành vi thực tế hoặc cam kết đóng góp (donation) cho việc bảo tồn và phát triển hạ tầng xanh. Nghĩa là, người dân TP.HCM xem công viên như một "tài sản sức khỏe và tinh thần" của chính mình; khi tài sản này mang lại giá trị lớn, họ sẵn lòng mở hầu bao hoặc góp công sức để duy trì nó. +- Động lực thúc đẩy từ cơ chế "Cung - Cầu": Nghiên cứu về nhận thức tại Bangkok đã chỉ ra rằng, trong các hệ sinh thái văn hóa, nhận thức cao đối với một dịch vụ cũng đồng thời bộc lộ nhu cầu cấp thiết đối với dịch vụ đó. Nhu cầu và mức độ sẵn sàng đóng góp của người sử dụng tăng tỷ lệ thuận với những lợi ích thiết thực mà họ mong muốn nhận được (Casado-Arzuaga và cộng sự, 2013). Tại TP.HCM, do diện tích cây xanh nội đô còn hạn chế, nhu cầu tận hưởng CES để giải tỏa áp lực cuộc sống càng cao. Do đó, khi các dự án xanh hóa (ESG) nhắm đúng vào việc nâng cấp CES, nó đáp ứng đúng nhu cầu bức thiết của công chúng, từ đó kích hoạt mạnh mẽ sự đồng thuận và quyết định tài trợ của họ. +Cơ chế cản trở của dịch vụ tiêu cực (DES) đối với quyết định Donation lý giải thông qua: sự xói mòn Lòng tin Thể chế (Institutional Trust) và Thuyết vị tha tương hỗ (Reciprocal Altruism). ++ Quyên góp tự nguyện là một hành động mang tính chất công ích, đòi hỏi người dân tin tưởng rằng nguồn đóng góp của họ sẽ được quản lý và sử dụng hiệu quả để nâng cấp chất lượng công viên. ++ Sự xuất hiện của các disservices về mặt quản lý (như công viên bẩn thỉu - Dirty, mất an ninh - Unsafe) trực tiếp phản ánh năng lực quản lý yếu kém của ban quản lý công viên và chính quyền địa phương (Bertram & Rehdanz, 2015). ++ Sự xói mòn lòng tin thể chế này làm suy giảm động cơ đóng góp của cư dân, do họ lo ngại tiền của mình sẽ bị lãng phí hoặc quản lý không đúng mục đích (Ugolini et al., 2022). ++ Bên cạnh đó, thuyết vị tha tương hỗ chỉ ra rằng con người sẵn lòng đóng góp xã hội hóa khi họ cảm nhận được sự trao đổi công bằng (reciprocity) từ môi trường mang lại. ++ Những bất tiện sinh lý vật lý (Danger - cây đổ, ong đốt) hay phiền toái xã hội (Unsafe) tạo ra cảm giác bất an, làm tổn hại trải nghiệm cá nhân và phá vỡ mối quan hệ tương hỗ này, dẫn đến phản ứng từ từ chối quyên góp tài chính. +1.2.2. Quyết định sẵn lòng trả cao hơn cho bất động sản (Decision) +- Tổng quan tỷ lệ chung: +Trong tổng số 307 mẫu quan sát tại TP.HCM, có 204 người đồng ý trả giá cao hơn (Decision = 1), chiếm tỷ lệ áp đảo 66.45%, và 103 người không đồng ý (Decision = 0), chiếm tỷ lệ 33.55%. +- Phân tích mối liên hệ cơ bản (Kiểm định Chi-squared): ++ Với phân khúc nhận thức (Cluster): Có sự phân hóa cực kỳ rõ rệt (p-value < 0.00001). Những người thuộc Cụm 2 (Nhóm đề cao lợi ích sinh thái) và Cụm 3 (Mainstream) có tỷ lệ sẵn lòng trả giá cao hơn nhiều so với Cụm 1 (Khắt khe/sợ rủi ro). ++ Với Tần suất ghé thăm (Frequency): Có mối liên hệ ý nghĩa về mặt thống kê (p-value = 0.00001). Những người ghé thăm công viên với tần suất cao (mức 4, 5) chiếm phần lớn trong nhóm đồng ý trả giá cao hơn. ++ Với Phương tiện di chuyển (Transportation): Hoàn toàn không có mối liên hệ ý nghĩa (p-value = 0.104 > 0.05). Việc người dân đi bộ hay đi xe máy đến công viên không ảnh hưởng đến việc có chi trả thêm tiền mua nhà hay kinh doanh gần đó hay không. +- Mô hình Hồi quy Logistic: Các yếu tố quyết định việc sẵn lòng chi trả bất động sản gần UGS: ++ Dịch vụ điều hòa (MEAN RES): Có ý nghĩa thống kê biên ở mức 10% (Odds Ratio = 1.819, p = 0.084). Mặc dù ý nghĩa thống kê bị suy giảm trong mô hình đa biến so với mô hình đơn biến do sự xuất hiện của các biến kiểm soát kinh tế-xã hội, RES vẫn thể hiện xu hướng tác động thuận chiều tích cực. Cứ mỗi mức độ đánh giá cao thêm về khả năng giảm nhiệt, lọc không khí, giảm tiếng ồn của công viên, xác suất cư dân sẵn lòng trả giá cao hơn cho bất động sản tăng lên gấp 1.819 lần. ++ Tác động tiêu cực (MEAN DES): Làm sụt giảm mạnh mẽ khả năng sẵn lòng trả giá cao cho bất động sản (Odds Ratio = 0.548, p = 0.0001). Sự hiện diện của các disservices làm giảm xác suất "xuống tiền" của cư dân chỉ còn 0.548 lần (tương đương mức giảm 45.2% khả năng chi trả). ++ Các biến kiểm soát đặc thù: ++ Nghề nghiệp (Career): Đây là biến số kiểm soát có tác động tích cực và mạnh mẽ nhất đến quyết định tài chính. So với nhóm học sinh/sinh viên (Career 1), các nhóm có thu nhập ổn định và tự chủ tài chính cao hơn đều sẵn lòng chi trả vượt trội: nhóm nhân viên văn phòng (Career 3) tăng 3.324 lần (p = 0.028), nhóm kinh doanh tự do (Career 4) tăng 3.356 lần (p = 0.003), và nhóm cán bộ công chức (Career 6) tăng 3.693 lần (p = 0.007). Phát hiện này chứng minh hành vi chi trả cho bất động sản xanh là một quyết định tài chính lớn, chịu sự chi phối mạnh mẽ của khả năng ngân sách thực tế. ++ Thời gian lưu lại (Time): Biến số này có tác động nghịch chiều rõ rệt ở ngưỡng cao nhất. Nhóm cư dân có thói quen ở lại công viên trên 2 giờ (Time 5) có xác suất sẵn lòng trả giá mua nhà giảm mạnh chỉ còn 0.113 lần (OR = 0.113, p = 0.032). Điều này phản ánh đặc trưng thu nhập khi nhóm lưu lại công viên quá lâu thường là người hưu trí hoặc người lao động tự do có thu nhập thấp, hạn chế về nguồn vốn tích lũy để chi trả cho bất động sản xanh. ++ Các biến số hành vi và vị trí địa lý khác: Nhóm ghé thăm 3-4 lần/tuần (Frequency 4) có xác suất sẵn lòng chi trả tăng gấp 2.858 lần (p = 0.041), và nhóm sống cách công viên từ 1-3 km (Distance 4) tăng gấp 3.101 lần (p = 0.024). Phân cụm nhận thức (Cluster) cho thấy Cụm 3 (Mainstream chú trọng CES) có xác suất chi trả cao gấp 4.905 lần so với Cụm 1 (Khắt khe/sợ rủi ro) (p < 0.001). +VÌ SAO RES TÁC ĐỘNG ĐẾN DECISION CAO? +- Khắc phục trực tiếp các áp lực khắc nghiệt của môi trường đô thị: Các đô thị lớn hiện nay đang đối mặt với tình trạng gia tăng nhiệt độ vi khí hậu khốc liệt (hiệu ứng đảo nhiệt đô thị - UHI) và ô nhiễm không khí nghiêm trọng. Hệ sinh thái xanh có khả năng giảm nhiệt độ môi trường lên đến 12°C, lọc bụi mịn và tiếng ồn giao thông. Khi người dân mua một căn nhà, họ đang mua cả chất lượng không gian cư trú xung quanh nó. Sự sẵn lòng chi trả cao là để đổi lấy một bầu không khí mát mẻ, trong lành và tĩnh lặng tại chính nơi ở của mình (Aram et al., 2019; Priya & Senthil, 2021). +- Nguyên lý "Nhận thức định hình bởi nhu cầu giải quyết khó khăn hiện tại": Nhận thức và đánh giá của công chúng đối với các dịch vụ sinh thái luôn gắn chặt với nhu cầu thực tế của họ. Nắng nóng, khói bụi và tiếng ồn là những khó khăn trực tiếp thường nhật. Do đó, một bất động sản liền kề công viên hoạt động như một cỗ máy điều hòa tự nhiên thông qua các quá trình sinh thái sẽ đáp ứng đúng nhu cầu bức thiết nhất, thúc đẩy ý định chi trả cao hơn của người mua. +- Bản chất của việc "mua nhà" khác với "đi công viên": Đi công viên (Donation) là hoạt động chủ động vui chơi giải trí (CES). Mua nhà (Decision) là đầu tư tài sản cố định lâu dài. Các giá trị văn hóa hoàn toàn có thể thụ hưởng bằng cách di chuyển từ xa đến công viên. Ngược lại, các dịch vụ điều hòa như không khí trong lành, mát mẻ và chắn tiếng ồn bắt buộc phải có vị trí sát sườn và liên tục tại căn nhà. Do đó, lợi ích của Dịch vụ điều hòa (RES) tự động được định giá và vốn hóa trực tiếp vào giá trị bất động sản lân cận (Hedonic Pricing Theory) (Rosen, 1974). +Cơ chế cản trở của dịch vụ tiêu cực (DES) đối với quyết định Decision được lý giải thông qua Ngoại ứng tiêu cực vốn hóa (Capitalized Negative Externalities) và Sự đảo ngược trạng thái phục hồi (Restoration Reversal). ++ Lý thuyết định giá Hedonic chỉ ra rằng giá trị bất động sản phản ánh tổng hòa các thuộc tính tích cực lẫn tiêu cực của môi trường xung quanh. ++ Bên cạnh các amenity, các disservices của công viên (như ô nhiễm rác thải - Dirty, tiếng ồn từ đám đông hay các hoạt động tệ nạn - Unsafe) hoạt động như những ngoại ứng tiêu cực đô thị. ++ Những ngoại ứng này làm sụt giảm trực tiếp giá trị sử dụng lâu dài của căn nhà, buộc người mua phải yêu cầu một mức chiết khấu giá (discount) thay vì sẵn lòng trả phí chênh lệch (premium) (Wu & Chen, 2023). ++ Đồng thời, dưới góc độ tâm lý học môi trường, sự hiện diện của các yếu tố mất an ninh và ô nhiễm sinh học (côn trùng, nguy hiểm bão lũ) gây ra tâm lý bất an và stress sinh lý. ++ Điều này làm đảo ngược hoàn toàn cơ chế phục hồi chú ý (ART) và phục hồi căng thẳng (SRT) mà không gian xanh mang lại, khiến cư dân từ chối chi trả mức giá cao cho một môi trường sống kém an toàn và thiếu lành mạnh. +1.2.3. Khung lý thuyết kinh tế học (có thể liên quan/sử dụng/đề cập qua) +I. Khung lý thuyết kinh tế học +1. Hedonic Pricing Theory (Lancaster, 1966; Rosen, 1974) +- Đây là lý thuyết nền tảng trực tiếp nhất. ++ Lý thuyết này cho rằng giá trị của một tài sản (nhà ở, đất đai) không phải là một con số đơn nhất mà là tổng hợp ẩn của nhiều thuộc tính, bao gồm cả các dịch vụ môi trường không được mua bán trực tiếp trên thị trường. ++ Giá bất động sản do đó phản chiếu mức độ người mua đánh giá các amenity xung quanh, kể cả dịch vụ hệ sinh thái từ UGS. +- Phân tích Hedonic Pricing được xây dựng trên giả định rằng cư dân đô thị sẵn sàng chi trả cho một số dịch vụ hệ sinh thái do UGS mang lại, bởi giá nhà ở phản ánh ngầm mức độ các tiện ích — bao gồm cả dịch vụ hệ sinh thái — được đánh giá cao ở những vị trí nhất định. +- Bằng chứng thực nghiệm: Nghiên cứu trước đây về giá bất động sản qua Hedonic Pricing cho thấy rằng các không gian xanh đô thị có thể ảnh hưởng đáng kể đến giá nhà. ++ Phân tích Hedonic Pricing cho phép nhận diện và đo lường sở thích đối với các thuộc tính không thể bán riêng lẻ, trong đó có khía cạnh giải trí của không gian xanh lân cận. +- Tại Leipzig, Đức, một nghiên cứu Hedonic Pricing phân tích ảnh hưởng của UGS đến giá bất động sản cho thấy quy mô của UGS gần nhất có tác động mạnh hơn khoảng cách đến nó — không gian xanh càng lớn và hình dạng càng đơn giản (gần hình vuông), giá bất động sản lân cận càng cao. +- Các nghiên cứu trước đó đã chỉ ra rằng WTP đối với không gian xanh biến thiên đáng kể theo đặc điểm của không gian xanh (loại, mục đích sử dụng, quy mô), đặc điểm người dùng (tuổi tác, thu nhập, học vấn) và môi trường cư trú (mật độ dân số, mức độ đô thị hoá). +2. Phương pháp Định giá Dịch vụ Hệ sinh thái (Environmental Valuation Methods) +- Các nhà kinh tế môi trường phân biệt hai nhóm phương pháp: Revealed Preference (Sở thích tiết lộ) và Stated Preference (Sở thích phát biểu). +- Revealed Preference (Sở thích tiết lộ) — quan sát hành vi thực tế (giá nhà, chi phí du hành): Các phương pháp revealed preference như travel cost method và hedonic pricing method cho phép ước tính giá trị tiền tệ của các chức năng giải trí và dịch vụ hệ sinh thái bằng cách quan sát hành vi thực tế trên thị trường. +- Stated Preference (Sở thích phát biểu) — hỏi trực tiếp mức WTP qua khảo sát: Phương pháp Contingent Valuation (CVM) sử dụng bảng hỏi để cho phép người dùng chỉ ra trực tiếp sở thích của họ đối với một hàng hóa nhất định bằng tiền tệ. ++ CVM đặc biệt phù hợp với các hàng hóa có giá trị phi sử dụng lớn như không gian xanh đô thị. +- Dẫn chứng định lượng nổi bật: +- Nghiên cứu tại Vũ Hán (Trung Quốc) ứng dụng CVM cho thấy 90.7% người được hỏi sẵn sàng chi trả để bảo tồn UGS, với mức WTP trung bình 202.4 CNY (~30.6 USD)/người/năm — cao hơn nhiều so với các nghiên cứu trước đó tại Jinan (81.8 CNY/năm). ++ Cư dân đô thị nhận thức cao về dịch vụ hệ sinh thái từ UGS và thấp về các disservices. +- Khảo sát tại Hong Kong cho thấy hơn 80% người được hỏi sẵn sàng chi trả để bù đắp tổn thất tiềm năng 20% diện tích UGS, với mức thanh toán trung bình HKD 77.43/tháng. +1.2.4. Khung lý thuyết Tâm lý học Môi trường và Hành vi +III. Lý thuyết Tâm lý học Môi trường +- 4. Biophilia Hypothesis (Wilson, 1984, 1986): Giả thuyết Biophilia cho rằng con người có một xu hướng bẩm sinh đối với các môi trường tự nhiên tương tự những môi trường mà chúng ta đã tiến hóa trong đó — dẫn đến cảm giác hấp dẫn tự nhiên với không gian xanh. ++ Các nghiên cứu về biophilic design nhấn mạnh tác động tích cực của nó đến phúc lợi người tiêu dùng, sự hài lòng thẩm mỹ, giá trị cảm nhận, và sẵn sàng chi trả mức phí bảo hiểm (willingness to pay a premium). +- 5. Attention Restoration Theory — ART (Kaplan & Kaplan, 1989): ART đề xuất rằng không gian xanh giúp bổ sung khả năng chú ý đã cạn kiệt thông qua việc tiếp xúc với các khung cảnh tự nhiên, qua đó thúc đẩy sức khỏe tinh thần và phúc lợi. ++ Đây là một trong những lý thuyết hàng đầu lý giải lợi ích tâm lý của UGS. ++ ART được sử dụng rộng rãi để đánh giá lợi ích tâm lý của không gian xanh, đặc biệt trong việc giảm lo âu, giảm căng thẳng, tăng hạnh phúc và phục hồi chú ý. ++ Lý thuyết nhấn mạnh bốn đặc điểm của môi trường phục hồi: being away (tách biệt khỏi nhịp điệu thường ngày), fascination (cuốn hút không chủ ý), extent (cảm giác về một thế giới rộng lớn hơn), và compatibility (phù hợp với xu hướng của người dùng). +- 6. Stress Recovery Theory — SRT (Ulrich, 1983, 1991): SRT cho rằng các lợi ích từ thiên nhiên không phải do cơ chế nhận thức mà là do phản ứng cảm xúc và sinh lý. ++ Nghiên cứu đầu tiên của Ulrich chứng minh rằng người được xem video về thiên nhiên phục hồi từ trạng thái căng thẳng nhanh hơn và cảm thấy tốt hơn so với những người xem cảnh đô thị. +IV. Dẫn chứng thực nghiệm về Regulating Services và WTP +- Bằng chứng về điều tiết nhiệt độ & chất lượng không khí: +- Nghiên cứu tại Singapore sử dụng discrete choice experiment cho thấy người dân ưu tiên các dịch vụ điều tiết nhiệt độ và giảm ô nhiễm không khí hơn so với việc tăng đa dạng sinh học trong các công viên lân cận. ++ Đây là bằng chứng trực tiếp rằng cư dân đô thị nhận thức và định giá cao các regulating services từ UGS. +- Ở quy mô đô thị, có mối tương quan rõ ràng giữa phân bố không gian xanh và việc cung cấp các dịch vụ hệ sinh thái như lọc không khí, giảm tiếng ồn và điều tiết nhiệt độ — các khu vực có nhiều không gian xanh hơn được hưởng lợi từ các dịch vụ hệ sinh thái tốt hơn. +- Bằng chứng về nhận thức dịch vụ hệ sinh thái và WTP: +- Nghiên cứu còn cho thấy mức WTP được chấp nhận cao hơn tương quan với nhận thức tốt hơn về dịch vụ hệ sinh thái (ES). ++ Người sử dụng công viên đô thị nhận thức được lợi ích của ES, và gắn liền chúng với cải thiện phúc lợi và chất lượng môi trường đô thị. +- UGS được đặc trưng bởi chức năng chính là cung cấp dịch vụ hệ sinh thái như lọc không khí và nước, điều tiết nhiệt độ và bảo tồn đa dạng sinh học. ++ Nghiên cứu về WTP cho UGS cho thấy đây là cơ sở thiết yếu để phân tích chi phí-lợi ích trong quy hoạch đô thị bền vững. +- Bằng chứng về dịch vụ sinh thái toàn diện trong Hedonic Pricing: Các phương pháp tránh chi phí thiệt hại hoặc chi phí thay thế thường được sử dụng để định giá regulating services như giảm thiểu ô nhiễm không khí và điều tiết khí hậu. ++ Meta-analysis về định giá kinh tế dịch vụ hệ sinh thái cho thấy Hedonic Pricing và Stated Preference (đặc biệt là Contingent Valuation) là hai phương pháp được sử dụng thường xuyên nhất trong bối cảnh đô thị — bao gồm đánh giá giá trị giải trí và thẩm mỹ, giảm tiếng ồn, chất lượng không khí, và chất lượng nước. +TRA +- Thuyết Hành động Hợp lý (Theory of Reasoned Action, TRA) có thể áp dụng để giải thích một phần cơ chế khiến người dân “sẵn sàng chi trả cao hơn” cho nhà/kinh doanh gần không gian xanh đô thị, nhưng cần lưu ý giới hạn và thường nên mở rộng sang TPB. +- Vì sao TRA phù hợp: +- TRA liên kết thái độ và chuẩn chủ quan (subjective norms) tới ý định hành vi, và ý định quyết định hành vi thực tế; nếu người mua có thái độ tích cực về lợi ích của UGS (ví dụ: điều hòa vi khí hậu, giảm ô nhiễm) và cảm thấy xã hội/những người quan trọng ủng hộ việc chọn bất động sản gần UGS, thì TRA dự đoán họ có ý định trả giá cao hơn. ++ Nhiều nghiên cứu về hành vi tiêu dùng xanh đã dùng TRA để giải thích ý định mua các sản phẩm/dịch vụ “xanh”, cho thấy mô hình phù hợp với hành vi có tính tự nguyện và có kiểm soát như quyết định mua nhà. +1.3. Phương pháp thu thập dữ liệu và Kết quả thực nghiệm +- Nghiên cứu sử dụng dữ liệu sơ cấp thu được từ cuộc khảo sát thực địa bằng bảng hỏi cấu trúc tại Thành phố Hồ Chí Minh. ++ Để đo lường nhận thức của cư dân về dịch vụ hệ sinh thái đô thị, bảng hỏi được kế thừa từ các thang đo Likert 5 mức độ của nghiên cứu Bangkok (Nguyen & Chidthaisong, 2023). ++ Khảo sát tập trung đánh giá 4 nhân tố chính: Dịch vụ điều tiết (RES), Dịch vụ văn hóa (CES), Tác động tiêu cực (DES), và Nhận thức chung về không gian xanh (UGS). +- Địa điểm khảo sát được tiến hành trực tiếp tại hai công viên công cộng lớn tại TP.HCM là Công viên Tao Đàn và Công viên Gia Định trong năm 2023 bằng phương pháp chọn mẫu thuận tiện (convenience sampling), thu về N = 307 mẫu hợp lệ. ++ Hệ số Cronbach's alpha đạt độ tin cậy rất cao: RES (0.875), CES (0.932), và DES (0.896). ++ Phân tích phân cụm phân cấp (HCA) chỉ ra 3 cụm cư dân đặc trưng, trong đó Cụm 1 (N = 29) đại diện cho nhóm nhạy cảm với tác động tiêu cực (DES) như mất an toàn (Unsafe) và mất vệ sinh (Dirty) của công viên, trong khi Cụm 3 (N = 143) đại diện cho nhóm cư dân mainstream chú trọng thụ hưởng văn hóa (Cluster 3 có tác động rất mạnh trong cả hai mô hình hồi quy). +- Bảng 1 dưới đây tổng hợp chi tiết các kết quả ước lượng hồi quy Logistic từ tập dữ liệu khảo sát tại TP.HCM: +Biến độc lập +Beta (Donation) +OR (Donation) +p-value (Don.) +Beta (Decision) +OR (Decision) +p-value (Dec.) +Hằng số (Intercept) +-2.230 +0.108 +0.326 +-1.376 +0.253 +0.361 +Dịch vụ điều tiết (MEAN RES) +-0.237 +0.789 +0.588 +0.598 +1.819 +0.084+ +Dịch vụ văn hóa (MEAN CES) +1.444 +4.237 +0.005** +0.263 +1.301 +0.447 +Tác động tiêu cực (MEAN DES) +-0.856 +0.425 +0.0002*** +-0.601 +0.548 +0.0001*** +Nhận thức chung (Mean_UGS) +-0.555 +0.574 +0.163 +0.018 +1.018 +0.949 +Thời gian ở lại: Time (5) +4.164 +64.345 +0.004** +-2.177 +0.113 +0.032* +Khoảng cách: Distance (4) +-1.124 +0.325 +0.127 +1.132 +3.101 +0.024* +Nghề nghiệp: Career (3) +0.735 +2.086 +0.432 +1.201 +3.324 +0.028* +Nghề nghiệp: Career (4) +0.350 +1.419 +0.608 +0.986 +3.356 +0.003** +Nghề nghiệp: Career (6) +0.897 +2.453 +0.250 +1.235 +3.693 +0.007** +Số quan sát N = 307; McFadden R² (Donation) = 0.389; McFadden R² (Decision) = 0.252 +Nguồn: Kết quả tính toán từ số liệu khảo sát của tác giả. Ghi chú: + p < 0.10, * p < 0.05, ** p < 0.01, *** p < 0.001. Hệ số góc (B) và Tỷ số số cơ hội (Odds Ratio - OR) được trình bày cho từng biến số. Các biến giả (Dummy variables) của các biến định tính (Thời gian, Khoảng cách, Tần suất, Nghề nghiệp, Cụm nhận thức) lấy danh mục đầu tiên làm nhóm đối chiếu. +2. Thực trạng chính sách về UGS tại TP.HCM +TP.HCM có 1 kế hoạch 10 năm (2020-2030) về không gian xanh đô thị, triển khai thành 2 giai đoạn: +- Kế hoạch phát triển công viên và cây xanh công cộng giai đoạn 2020-2025 của Thành phố Hồ Chí Minh đặt ra mục tiêu tăng thêm tối thiểu 150 ha đất công viên công cộng và 10 ha mảng xanh công cộng, tương đương việc trồng mới và cải tạo 30.000 cây xanh, nhằm nâng tỷ lệ cây xanh đô thị lên mức 0,65 m²/người (Phương Nhi, 2025). ++ Báo cáo tổng kết khi kết thúc kế hoạch cho thấy thành phố đã đạt được những kết quả rất ấn tượng. ++ Cụ thể, thành phố đã phát triển được 237.51 ha công viên công cộng (đạt 158% chỉ tiêu), tăng thêm 54.04 ha mảng xanh công cộng (đạt 540% chỉ tiêu) và thực hiện trồng mới, cải tạo được 42.534 cây xanh (đạt 140% chỉ tiêu) (Thi Nguyễn, 2025). ++ Thành quả này có được phần lớn nhờ vào sự linh hoạt trong việc đẩy mạnh đôn đốc phát triển các công viên, mảng xanh tại các dự án khu dân cư hiện hữu, qua đó góp phần nâng cao mỹ quan và đáp ứng nhu cầu sinh hoạt của người dân (Vân Minh, 2025). +- Bước sang giai đoạn 2026-2030, Thành phố Hồ Chí Minh tiếp tục đề ra mục tiêu cao hơn là đưa chỉ tiêu đất cây xanh sử dụng công cộng đạt tối thiểu 1 m²/người (Phúc Minh, 2025). ++ Các mục tiêu cụ thể trong giai đoạn này bao gồm phát triển thêm 10 ha mảng xanh công cộng, trồng mới và cải tạo 50.000 cây xanh, đồng thời hướng đến việc tăng thêm 450 ha công viên công cộng (Tạp chí điện tử Môi trường và Cuộc sống, k.n.g.). ++ Để hiện thực hóa, thành phố dự kiến tập trung triển khai đầu tư các công viên quy mô lớn, đa chức năng tại vùng ven, tiêu biểu như công viên Sài Gòn Safari (485 ha), Khu lâm viên sinh thái Thủ Thiêm (128 ha), hay công viên tại Quận 12 (150 ha) (Thanh Hải, 2024). ++ Đặc biệt, thành phố còn định hướng phát triển chuỗi 42 công viên dọc hành lang sông Sài Gòn kết hợp chuyển đổi chức năng sử dụng đất sang thương mại, dịch vụ du lịch nhằm tạo nguồn lực duy tu, vận hành (Huy Vũ, 2024). ++ Về mặt quản lý và thủ tục, thành phố đẩy mạnh cải cách hành chính bằng cách ban hành Quyết định 3206/QĐ-UBND, quy định thời hạn rút gọn (từ 30-45 ngày) cho các thủ tục giao quản lý, xử lý tài sản kết cấu hạ tầng công viên và phê duyệt đề án cho thuê quyền khai thác (Ủy ban nhân dân Thành phố Hồ Chí Minh, 2026). ++ Nhiệm vụ này đòi hỏi sự phối hợp chặt chẽ giữa các cấp chính quyền, đồng thời yêu cầu các chủ đầu tư dự án khu dân cư cũng phải khẩn trương hoàn chỉnh toàn bộ hạ tầng công viên cây xanh đúng theo quy hoạch 1/500 đã cam kết (Cổng Thông tin điện tử Bộ Xây dựng, 2026). ++ Ngày 6/11/2025, UBND TP.HCM ra văn bản chỉ đạo triển khai Nghị định số 258/2025/NĐ-CP ngày 9/10/2025 của Chính phủ về quản lý công viên, cây xanh, mặt nước (Minh Thư, 2025).Sự phối hợp liên ngành được huy động, từ Sở Xây dựng, Sở Nông nghiệp và Phát triển nông thôn, Sở Tài nguyên và Môi trường, Sở Quy hoạch - Kiến trúc, Sở Tài chính… với kỳ vọng triển khai được các phương án toàn diện. +Tài liệu tham khảo +Andersson, E., Nykvist, B., Malinga, R., et al. (2015). A social-ecological analysis of ecosystem services in two different farming systems. Ambio, 44(S1), 102-112. https://doi.org/10.1007/s13280-014-0603-y +Aram, F., Higueras Garcia, E., Solgi, E., & Mansournia, S. (2019). Urban green space cooling effect in cities. Heliyon, 5(4), e01339. https://doi.org/10.1016/j.heliyon.2019.e01339 +Bertram, C., & Rehdanz, K. (2015). Preferences for cultural urban ecosystem services: Comparing attitudes, perception, and use. Ecosystem Services, 12, 187-199. https://doi.org/10.1016/j.ecoser.2014.12.011 +Casado-Arzuaga, I., Madariaga, I., & Onaindia, M. (2013). Perception, demand and user contribution to ecosystem services in the Bilbao Metropolitan Greenbelt. Journal of Environmental Management, 129, 33-43. https://doi.org/10.1016/j.jenvman.2013.05.059 +Cheng, X., Van Damme, S., & Uyttenhove, P. (2021). A review of empirical studies of cultural ecosystem services in urban green infrastructure. Journal of Environmental Management, 293, 112895. https://doi.org/10.1016/j.jenvman.2021.112895 +Cổng Thông tin điện tử Bộ Xây dựng. (2026, ngày 29 tháng 5). TP. Hồ Chí Minh: Cấp thiết lấp "khoảng trống" mảng xanh đô thị. http://moc.gov.vn/vn/1340/94331/tp--ho-chi-minh--cap-thiet-lap-khoang-trong-mang-xanh-do-thi.aspx +Escobedo, F. J., Kroeger, T., & Wagner, J. E. (2011). Managing the urban forest for multiple ecosystem services and disservices. Environmental Pollution, 159(8-9), 2078-2087. https://doi.org/10.1016/j.envpol.2011.01.002 +Haaland, C., & van den Bosch, C. K. (2015). Challenges and strategies for urban green-space planning in cities undergoing densification: A review. Urban Forestry & Urban Greening, 14(4), 760-771. https://doi.org/10.1016/j.ufug.2015.07.009 +Huy Vũ. (2024, ngày 21 tháng 10). TP.HCM muốn phát triển 42 công viên dọc sông Sài Gòn. Báo Pháp Luật TP. Hồ Chí Minh. https://plo.vn/tphcm-muon-phat-trien-42-cong-vien-doc-song-sai-gon-post815943.html +Kaplan, R., & Kaplan, S. (1989). The experience of nature: A psychological perspective. Cambridge University Press. +Kirkpatrick, J. B., Davison, A., & Daniels, G. D. (2012). Resident attitudes towards trees in the suburban forest: Population subgroups, species, and disservices. Landscape and Urban Planning, 105(4), 447-459. https://doi.org/10.1016/j.landurbplan.2012.01.010 +Ko, H., & Son, Y. (2018). Perceptions of cultural ecosystem services in urban green spaces: A case study in Gwacheon, Republic of Korea. Ecological Indicators, 91, 299-306. https://doi.org/10.1016/j.ecolind.2018.04.006 +Lancaster, K. J. (1966). A new approach to consumer theory. Journal of Political Economy, 74(2), 132-157. +Lyytimaki, J., & Sipila, M. (2009). Hop on to the green car: Ecosystem disservices in urban green areas. Urban Forestry & Urban Greening, 8(4), 223-232. https://doi.org/10.1016/j.ufug.2009.06.001 +Millennium Ecosystem Assessment (MEA). (2005). Ecosystems and human well-being: Health Synthesis. Island Press. +Minh Thư. (2025, ngày 06 tháng 11). Triển khai Nghị định của Chính phủ về quản lý công viên, cây xanh, mặt nước. Cổng thông tin điện tử Thành phố Hồ Chí Minh. https://www.hochiminhcity.gov.vn/vi/web/hcm/w/trien-khai-nghi-inh-cua-chinh-phu-ve-quan-ly-cong-vien-cay-xanh-mat-nuoc +Nguyen, C. T., & Chidthaisong, A. (2023). Ecosystem services provided by urban green spaces in Bangkok Metropolis: Public awareness and planning implications. Urban Ecosystems, 26(1), 151-167. https://doi.org/10.1007/s11252-023-01482-1 +Phúc Minh. (2025, ngày 09 tháng 2). TP. Hồ Chí Minh: Năm 2030 diện tích đất cây xanh đạt tối thiểu 1m²/người. Tạp chí điện tử Môi trường và Cuộc sống. https://moitruong.net.vn/tp-ho-chi-minh-nam-2030-dien-tich-dat-cay-xanh-dat-toi-thieu-1m-nguoi-80786.html +Phương Nhi. (2025, ngày 08 tháng 2). TP.HCM muốn xây 75 công viên, mới 8 dự án được bổ sung vốn. Tuổi Trẻ Online. https://tuoitre.vn/tp-hcm-muon-xay-75-cong-vien-moi-8-du-an-duoc-bo-tri-von-20250208154143436.htm +Priya, U. K., & Senthil, R. (2021). A review of the impact of the green landscape interventions on the urban microclimate of tropical areas. Building and Environment, 205, 108190. https://doi.org/10.1016/j.buildenv.2021.108190 +Rall, E., Bieling, C., Zytynska, S., & Haase, D. (2017). Exploring city-wide patterns of cultural ecosystem service perceptions and use. Ecological Indicators, 77, 80-95. https://doi.org/10.1016/j.ecolind.2017.02.001 +Riechers, M., Barkmann, J., & Tscharntke, T. (2016). Perceptions of cultural ecosystem services from urban green. Ecosystem Services, 17, 33-39. https://doi.org/10.1016/j.ecoser.2015.11.007 +Riechers, M., Barkmann, J., & Tscharntke, T. (2018). Diverging perceptions of cultural ecosystem services and disservices in urban areas. Ecosystem Services, 31, 33-40. https://doi.org/10.1016/j.ecoser.2017.07.013 +Rosen, S. (1974). Hedonic prices and implicit markets: product differentiation in pure competition. Journal of Political Economy, 82(1), 34-55. +Shackleton, C. M., Ruwanza, S., Sinasson Sanni, G. K., et al. (2016). Unpacking ecosystem disservices: A framework for systematic indicators for planning and management. Ecosystem Services, 21, 76-88. https://doi.org/10.1016/j.ecoser.2016.07.009 +Tạp chí điện tử Môi trường và Cuộc sống. (k.n.g.). Cây xanh công cộng. Truy cập ngày 30 tháng 6 năm 2026, từ https://moitruong.net.vn/cay-xanh-cong-cong-ptag.html +Thanh Hải. (2024, ngày 16 tháng 9). TP. Hồ Chí Minh: Tạo đột phá trong lĩnh vực công viên cây xanh để cải thiện môi trường. Tạp chí điện tử Công nghiệp môi trường. https://congnghiepmoitruong.vn/tp-ho-chi-minh-tao-dot-pha-trong-linh-vuc-cong-vien-cay-xanh-de-cai-thien-moi-truong-13794.html +Thi Nguyễn. (2025, ngày 11 tháng 2). TP.HCM đạt 540% so với chỉ tiêu trong phát triển mảng xanh công cộng. VnEconomy. https://vneconomy.vn/tp-hcm-dat-540-so-voi-chi-tieu-trong-phat-trien-mang-xanh-cong-cong.htm +Thúy Nga. (2024, ngày 21 tháng 4). TP Hồ Chí Minh triển khai nhiều giải pháp tăng mảng xanh đô thị. VTV.vn. https://vtv.vn/xa-hoi/tp-ho-chi-minh-trien-khai-nhieu-giai-phap-tang-mang-xanh-do-thi-20240421091400.htm +Ugolini, F., Massetti, L., Calaza-Martínez, P., et al. (2022). Understanding the benefits of public urban green space: How do perceptions vary between professionals and users? Landscape and Urban Planning, 228, 104575. https://doi.org/10.1016/j.landurbplan.2022.104575 +Ulrich, R. S. (1983). Aesthetic and affective response to natural environment. In Behavior and the natural environment (pp. 85-125). Springer. +Ulrich, R. S., Simons, R. F., Losito, B. D., Fiorito, E., Miles, M. A., & Zelson, M. (1991). Stress recovery during exposure to natural hazards and environments. Journal of Environmental Psychology, 11(3), 201-230. +Ủy ban nhân dân Thành phố Hồ Chí Minh. (2026, ngày 30 tháng 5). Quyết định 3206/QĐ-UBND công bố danh mục thủ tục hành chính nội bộ mới lĩnh vực Hạ tầng kỹ thuật và Đường bộ. LuatVietnam. https://luatvietnam.vn/xay-dung/quyet-dinh-3206-qd-ubnd-tp-hcm-2026-cong-bo-danh-muc-thu-tuc-hanh-chinh-noi-bo-moi-linh-vuc-ha-tang-ky-thuat-va-duong-bo-436179-d2.html +Vaz, A. S., Kueffer, C., Kull, C. A., et al. (2017). The integration of ecosystem disservices in urban planning: A review. Landscape and Urban Planning, 167, 317-327. https://doi.org/10.1016/j.landurbplan.2017.07.013 +Vân Minh. (2025, ngày 08 tháng 2). TPHCM phát triển công viên công cộng được 237,51 ha. Trang tin Điện tử Đảng bộ TPHCM. https://www.hcmcpv.org.vn/tin-tuc/tphcm-phat-trien-cong-vien-cong-cong-duoc-237-51-ha-1491933912 +Von Döhren, P., & Haase, D. (2015). Ecosystem disservices research: A review of the state of the art with a focus on cities. Ecological Indicators, 52, 490-497. https://doi.org/10.1016/j.ecolind.2014.12.027 +Wilson, E. O. (1984). Biophilia. Harvard University Press. +Wu, L., & Chen, C. (2023). Does pattern matter? Exploring the pathways and effects of urban green space on promoting life satisfaction through reducing air pollution. Urban Forestry & Urban Greening, 82, 127890. https://doi.org/10.1016/j.ufug.2023.127890 \ No newline at end of file