Three findings every stakeholder needs to know.
Before diving into methodology: here's what this analysis revealed that matters for policy and planning.
Transforming 46 MB of hourly sensor data from 12 Beijing monitoring stations into actionable air quality insights through AQI modeling, statistical hypothesis testing, and geospatial analysis.
Before diving into methodology: here's what this analysis revealed that matters for policy and planning.
Every step from raw sensor readings to dashboard-ready insights.
The EPA uses piecewise linear interpolation to convert raw pollutant concentrations into sub-index values. The final AQI is the maximum across all pollutants:
AQI = max(AQI_PM2.5, AQI_PM10, AQI_O3, AQI_CO, AQI_NO2, AQI_SO2)
Six categories from Good (0–50) through Hazardous (301+). This standardization makes all 12 stations directly comparable despite raw measurement differences.
Each station receives a composite score using Z-score normalized values:
priority = 0.5 × PM2.5_z + 0.35 × AQI_z + 0.15 × gas_index_z
This weighted score drives the geospatial map — stations needing the most policy attention are immediately visible as large, high-priority markers.
The entry point: current AQI status, dominant pollutant, and weather profile at a glance. Daily, monthly, and yearly AQI views are switchable via toggle — the hour-of-day × month heatmap makes winter-morning pollution patterns immediately visible.
Spearman correlation heatmap and wind rose diagram answer: does rain help? (yes) does high pressure trap pollution? (yes). Box plots show seasonal PM2.5 distributions across all stations.
Interactive Folium map where circle size = PM2.5 level and color = priority tier. The urban cluster stations visually stand out — no explanation needed to see which zones need policy attention first.
Zone type vs AQI category contingency table with chi-square output. Confirms statistically that where a station is located (urban/suburban/rural) is a genuine predictor of its AQI outcome — not just a visual impression.
Three non-obvious design decisions that shaped the validity of this analysis.
| Decision | Alternative considered | Why this choice |
|---|---|---|
| Spearman correlation | Pearson correlation | Meteorological data is non-normal and non-linear. Pearson assumes both. Spearman rank correlation is more honest for this kind of skewed sensor data. |
| Composite priority score | Rank by PM2.5 only | A single pollutant misses the full picture. The weighted composite (PM2.5 50%, AQI 35%, gas index 15%) gives a more complete view of which stations need policy attention most. |
| IQR outlier detection | Z-score cutoffs | Sensor data includes real extreme events (dust storms, industrial incidents). IQR is more conservative — preserving genuine extremes while flagging sensor malfunctions. |
| Chi-square for zone/season | Visual inspection only | Visual patterns are hypothesis, not proof. Chi-square tests with p < 0.001 convert the observation into a statistically validated finding. |
This dashboard is the capstone for Belajar Fundamental Analisis Data — IDCamp 2025 Intermediate level on Dicoding. The first submission was rejected. Here's what changed.
Questions 2, 3, and 4 didn't meet the Time-bound aspect of SMART criteria. "When are the critical periods?" is conceptually valid but analytically unmeasurable. Adding "during the 2013–2017 period" transforms it from vague to testable.
The univariate analysis was missing skewness, kurtosis, Q-Q plots, and Shapiro-Wilk normality tests. The multivariate section needed scatter plots with regression lines, pairplots, and violin plots. The categorical section lacked chi-square tests to validate visual patterns statistically.
The Streamlit dashboard needed dynamic time filters and interactive controls so users can explore the data themselves — not just view static pre-computed output.
The current dashboard explains what happened. The next phase is predicting what will happen — and flagging it before it does.
Explore 12-station Beijing air quality data — AQI trends, seasonal patterns, meteorological correlations, and a geospatial priority map. All from 46 MB of hourly sensor readings.