Clustering informal female traders in Ghana by economic vulnerability
```python
import sys
!{sys.executable} -m pip install pyreadstat --quiet
import os
import numpy as np
import pandas as pd
import pyreadstat
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn.preprocessing import StandardScaler
from sklearn.decomposition import PCA
from sklearn.cluster import KMeans, AgglomerativeClustering
from sklearn.mixture import GaussianMixture
from sklearn.metrics import silhouette_score
from sklearn.model_selection import train_test_split
print("All libraries loaded successfully")
```
All libraries loaded successfully
```python
folder_a = r"C:\Users\NONIHUB\Desktop\AI and Entrepreneurship\GLSS7_Project"
folder_agg = r"C:\Users\NONIHUB\Desktop\AI and Entrepreneurship\GLSS7_Project"
```
```python
sec1, _ = pyreadstat.read_sav(os.path.join(folder_a, "g7sec1.sav"))
sec3a, _ = pyreadstat.read_sav(os.path.join(folder_a, "g7sec3a.sav"))
sec2, _ = pyreadstat.read_sav(os.path.join(folder_a, "g7sec2.sav"))
sec6a, _ = pyreadstat.read_sav(os.path.join(folder_a, "g7sec6a.sav"))
sec6b, _ = pyreadstat.read_sav(os.path.join(folder_a, "g7sec6b.sav"))
exp, _ = pyreadstat.read_sav(os.path.join(folder_agg, "15_GHA_2017_E_final.sav"))
print("All files loaded successfully")
```
All files loaded successfully
```python
women = sec1[
(sec1['s1q2'] == 2) &
(sec1['s1q5y'] >= 18)
].copy()
women = women[['hid', 'pid', 's1q5y', 's1q6', 'region', 'loc2']].rename(columns={
's1q5y': 'age',
's1q6': 'relationship_to_head'
})
print(f"Adult women identified: {len(women)}")
```
Adult women identified: 17296
```python
informal = sec3a[
sec3a['s3aq6'].isin([3.0, 4.0])
].copy()
informal = informal[['hid', 'pid', 's3aq6', 's3aq4']].rename(columns={
's3aq6': 'work_status',
's3aq4': 'work_type'
})
women_traders = women.merge(informal, on=['hid', 'pid'], how='inner')
print(f"Informal female traders identified: {len(women_traders)}")
```
Informal female traders identified: 537
```python
# Education
edu = sec2[['hid', 'pid', 's2a …