Air Quality Trends in Wake County, North Carolina
A Data-Driven Look at PM2.5, PM10, and Ozone (2017–2025)
Muzi Li
STAT 385 Statistical Programming | University of Illinois Urbana-Champaign
2026-08-01
Why Air Quality Matters
Air pollution is a leading environmental health risk.
- PM2.5 (fine particles) penetrates deep into the lungs and bloodstream, linked to respiratory and cardiovascular disease.
- PM10 (coarse particles) aggravates asthma and lung conditions.
- Ground-level ozone harms lung tissue and worsens respiratory illness.
The U.S. EPA sets National Ambient Air Quality Standards (NAAQS) to protect public health. Understanding local trends tells us whether a community is moving toward or away from cleaner air.
Why Wake County?
- Rapidly growing metro area (Raleigh) with road traffic and construction sources.
- Two active monitoring sites: Millbrook School and Triple Oak.
- Continuous EPA data available 2017–2025.
Goal: Quantify how the three criteria pollutants have changed over nine years and how the two sites compare.
Research Questions
This project answers four questions:
How have PM2.5, PM10, and ozone concentrations changed from 2017 to 2025?
Are the two monitoring sites different in their measured air quality?
Which pollutant shows the greatest variation over time?
How complete is the monitoring record, and how reliable are our conclusions?
Data Source
Dataset: Air Quality Annual Summary
- Agency: U.S. Environmental Protection Agency (EPA)
- System: AQS Data Mart (annual summary export)
- Location: Wake County, North Carolina
- Monitoring sites: Millbrook School (Raleigh) and Triple Oak
- Years covered: 2017–2025
Original file
- Rows: 1,880
- Columns: 52
- Coverage: all measured parameters (criteria pollutants, HAPs, meteorology)
Only the three criteria pollutants of interest are analyzed here.
Study sample
- Observations: 64 site-year-pollutant records
- Pollutants: PM2.5, PM10, Ozone
- Sites: 2 · Years: 2017–2025
- Units: PM in µg/m³ · Ozone in ppm
Variables Used
parameter_name |
Categorical |
Pollutant measured |
duration_description |
Categorical |
Averaging period of the summary |
year |
Integer |
Year of the annual summary |
arithmetic_mean |
Numeric |
Annual mean concentration |
arithmetic_standard_dev |
Numeric |
Variability within the year |
observation_count |
Numeric |
Number of valid samples |
observation_percent |
Numeric |
Data completeness (%) |
first_maximum_value |
Numeric |
Highest single value in the year |
local_site_name |
Categorical |
Monitoring site |
latitude, longitude |
Numeric |
Site location |
Data Limitations
Coverage gaps
- 2017 contains PM2.5 only; PM10 and ozone records begin in 2018.
- PM10 and ozone are measured at one site in most years; only PM2.5 runs at both sites.
- Different averaging windows (24-hour for particles, 8-hour for ozone) make raw magnitudes non-comparable.
Measurement caveats
- Values are annual summaries, not raw hourly data — short-term peaks are understated.
- Annual means are sensitive to exceptional events (e.g., wildfire smoke, 2023).
- EPA metadata reports some years with lower observation completeness (e.g., 2022).
Interpretation limits
- Two sites cannot represent all of Wake County.
- This is an observational analysis — trends are not proof of causation.
Data Cleaning Workflow
- Import the EPA annual summary CSV (1,880 × 52).
- Filter years to the study window 2017–2025.
- Select pollutants — keep PM2.5, PM10, and ozone.
- Choose consistent averaging windows per pollutant.
- Remove irrelevant variables — retain the 10 analysis variables.
- Build tidy tables for summaries and plotting.
| 1 |
Import CSV |
| 2 |
Filter years 2017-2025 |
| 3 |
Keep 3 pollutants |
| 4 |
Standardize averaging window |
| 5 |
Drop unused columns |
| 6 |
Create summaries & plots |
Exploratory & Statistical Methods
Exploratory analysis
- Summary statistics per pollutant: mean, median, SD, min, max.
- Coefficient of variation (CV) — a unit-free measure so the three pollutants can be compared for relative variability.
- Site comparison — mean levels at Millbrook School vs. Triple Oak.
- Annual trends — year-by-year line plots.
- Distributions — boxplots of concentrations by pollutant and site.
- Completeness — observation percentage by year and pollutant.
Statistical approach
- Outcome is a continuous numeric variable (annual mean concentration).
- Linear regression via
tidymodels (linear_reg() + set_engine("lm")) — the recommended model for a continuous response:
- PM2.5 modeled as a function of year + site (trend + site difference).
- PM10 and ozone modeled as a function of year (trend only, single-site data).
- Model output evaluated with
tidy(), glance() (R²), and prediction RMSE.
- Tools:
tidyverse, tidymodels, ggplot2, kableExtra.
Methods follow the course recipe for continuous responses (linear regression), making results interpretable and reproducible.
Summary Statistics
Annual mean concentrations by pollutant
| Ozone |
8 |
0.04 |
0.00 |
5.2% |
0.04 |
0.04 |
0.04 |
95.8 |
| PM10 |
12 |
14.34 |
1.60 |
11.2% |
14.41 |
11.45 |
16.71 |
87.8 |
| PM2.5 |
44 |
8.30 |
1.11 |
13.4% |
8.21 |
6.43 |
10.17 |
89.0 |
Units: PM in µg/m³; ozone in ppm (1 ppm = 1000 ppb).
Reading the table
- PM10 highest mean (≈ 14.3) and widest absolute spread (SD ≈ 1.6).
- PM2.5 greatest relative variation (CV ≈ 13%).
- Ozone most stable (CV ≈ 5%) and most complete (≈ 96%).
What the Numbers Say
![]()
PM10 dominates in absolute level, but PM2.5 varies the most relative to its own average.
Monitoring Sites & Comparison
| Millbrook School |
Raleigh |
35.8561 |
-78.5742 |
| Triple Oak |
|
35.8652 |
-78.8197 |
PM2.5 by site (the only pollutant at both sites)
| Millbrook School |
8.79 |
1.09 |
26 |
86.2 |
| Triple Oak |
7.59 |
0.70 |
18 |
92.9 |
- Millbrook School ≈ 8.79 µg/m³
- Triple Oak ≈ 7.59 µg/m³
Millbrook consistently records higher PM2.5 than Triple Oak.
Linear Regression: PM2.5
The course recipe for a continuous response is linear regression. We model PM2.5 as a function of year + site with tidymodels:
PM2.5 ~ year + site (linear regression)
| Intercept |
237.461 |
119.540 |
1.986 |
0.054 |
| Year (trend) |
-0.113 |
0.059 |
-1.913 |
0.063 |
| Site: Triple Oak |
-1.196 |
0.283 |
-4.223 |
0.000 |
| R-squared |
0.344 |
| RMSE |
0.892 |
| PM2.5 decline per year |
≈ 0.11 µg/m³ (p = 0.063) |
| Triple Oak vs Millbrook |
≈ 1.20 µg/m³ lower (p < 0.001) |
Interpretation: PM2.5 has fallen ≈ 0.11 µg/m³ per year (marginally significant, p = 0.06), and Triple Oak averages ≈ 1.20 µg/m³ lower than Millbrook — a statistically significant site effect (p < 0.001).
Geographic Visualization
![]()
Millbrook School sits to the east; Triple Oak to the west.
Annual Trends
![]()
Key movements
- PM10 peaked in 2023 (≈ 16.7 µg/m³), then declined.
- PM2.5 dipped around 2020, rebounded in 2023, near its lowest in 2025.
- Ozone stayed flat near 0.040 ppm all nine years — far below the EPA 8-hour standard (0.070 ppm).
- Both particle pollutants rise together around 2023, hinting at a shared regional driver (e.g., wildfire smoke).
Regression verdicts
| PM2.5 ~ year + site |
-0.113 |
0.063 |
Marginal decline |
| PM10 ~ year |
0.0253 |
0.911 |
No linear trend |
| Ozone ~ year |
0 |
0.944 |
No linear trend |
Distribution Analysis
![]()
- PM10 widest box, highest values.
- PM2.5 moderate spread.
- Ozone tightly clustered — little variation across sites and years.
Observation Completeness
![]()
- Completeness is mostly above 90% — a reliable record.
- A 2022 dip (≈ 70–80%) affects all pollutants.
- Ozone most complete (≈ 96%); PM10 least (≈ 88%).
What We Learned
1. PM10 has the highest average concentration (≈ 14.3 µg/m³) of the three pollutants.
2. PM2.5 is the most variable pollutant (CV ≈ 13%) with a marginal downward trend (≈ 0.11 µg/m³/yr, p = 0.06).
3. Ozone is stable and well below the EPA standard (≈ 0.040 ppm vs. 0.070 ppm) — no significant linear trend.
4. Millbrook School consistently reports higher PM2.5 than Triple Oak — a significant site effect (p < 0.001).
5. Data completeness is high — conclusions about long-term trends are dependable.
Implications & Recommendations
Implications
- All three pollutants are below current NAAQS in the study window — good news for Wake County residents.
- The 2023 particle peak shows how regional events (e.g., wildfire smoke) can push concentrations up.
- Site differences in PM2.5 suggest local emission patterns worth understanding.
Recommendations
- Retain and expand the monitoring network — co-locate PM10 and ozone at both sites.
- Investigate the Millbrook vs. Triple Oak gap to identify local PM2.5 sources.
- Publish annual summaries with explicit completeness flags.
Future Work
- Add monthly or daily data to study seasonality and short-term peaks.
- Extend the linear regression with meteorological predictors (temperature, wind, rain) to explain the 2023 peak.
- Apply multiple linear regression with additional predictors, or a logistic regression to model high-pollution days.
- Expand to more sites across the metro area for county-wide coverage.
Thank You
Thank you for listening.
Data: U.S. EPA Air Quality System (AQS) Annual Summary, Wake County, NC, 2017–2025.