교내 미세먼지 데이터 예측 소논문 예시

교내외 환경 데이터를 활용한 다음 시간대 PM2.5 농도 예측 연구

A Study on Predicting the Next-Hour PM2.5 Concentration Using Indoor and Outdoor Environmental Data
과학고 정보 과목 프로젝트 소논문 예시 · 데이터·인공지능 영역 · 난이도 중급
데이터 전처리회귀 분석랜덤포레스트변수 중요도환경 데이터

성취기준 연결

본 연구는 고등학교 정보 과목의 데이터 처리, 알고리즘과 프로그래밍, 인공지능 모델 이해, 데이터 기반 문제 해결 역량과 연결된다. 학생은 실제 환경 데이터를 수집·정제하고, 예측 모델을 구현하며, 모델의 성능과 한계를 해석하는 과정을 수행한다.

정보 과목 영역본 소논문에서의 연결 활동
데이터CSV 자료 불러오기, 결측치 보정, 시간 순서 기반 변수 생성, 시각화
알고리즘과 프로그래밍데이터 분리, 모델 학습, 오차 계산 과정을 파이썬 코드로 구현
인공지능선형회귀와 랜덤포레스트 회귀 모델을 비교하고 예측 성능 해석
디지털 문화와 윤리개인정보가 아닌 환경 데이터만 사용하고 센서 데이터의 공개 범위를 검토

초록

English Abstract

This study investigates whether the next-hour PM2.5 concentration around a science high school can be predicted using environmental variables such as temperature, humidity, wind speed, and the previous PM2.5 value. The research process consists of collecting indoor or public air-quality data, preprocessing missing values, constructing input variables, and comparing two regression models: linear regression and random forest regression. The mean absolute error is used as the main evaluation metric because it directly represents the average prediction error in the same unit as PM2.5 concentration. In the example experiment, the previous PM2.5 value is expected to have the strongest influence on prediction, while humidity and wind speed may contribute to explaining short-term changes. This project shows that environmental prediction is not only a scientific inquiry topic but also an information-science problem involving data structure, algorithmic thinking, model evaluation, and ethical data use. The study also emphasizes that prediction results should not be treated as absolute facts, because sensor errors, limited data size, and sudden weather changes can reduce model reliability.

Keywords: PM2.5, air quality, data preprocessing, random forest, regression, science high school information class

한글 번역 초록

본 연구는 과학고 교내외 환경에서 측정한 기온, 습도, 풍속, 이전 시간대 미세먼지 농도 자료를 활용하여 다음 시간대 PM2.5 농도를 예측할 수 있는지 탐구한다. 연구 과정은 교내 센서 또는 공공 대기질 데이터를 수집하고, 결측치를 보정하며, 입력 변수를 구성한 뒤 선형회귀와 랜덤포레스트 회귀 모델을 비교하는 절차로 이루어진다. 평가 지표로는 실제 PM2.5 농도 단위와 같은 의미를 지니는 평균절대오차를 사용하였다. 예시 실험에서는 이전 시간대 PM2.5 값이 예측에 가장 큰 영향을 줄 것으로 예상되며, 습도와 풍속은 단기 변화의 보조 설명 변수로 작용할 수 있다. 이 프로젝트는 환경 예측이 과학 탐구 주제일 뿐 아니라 데이터 구조, 알고리즘적 사고, 모델 평가, 윤리적 데이터 활용을 포함하는 정보 과학 문제임을 보여준다. 또한 센서 오차, 데이터 수 부족, 갑작스러운 기상 변화로 인해 예측 결과를 절대적 사실로 받아들여서는 안 된다는 점을 강조한다.

주요어: PM2.5, 대기질, 데이터 전처리, 랜덤포레스트, 회귀, 과학고 정보 수업

Ⅰ. 서론

1. 연구 동기

미세먼지는 학생들의 실외 활동, 환기 판단, 체육 수업 운영, 건강 관리와 밀접하게 관련된다. 특히 과학고는 실험실, 기숙사, 교실 등 다양한 공간을 사용하는 경우가 많으므로 시간대별 대기질 변화를 이해하는 것이 중요하다. 본 연구는 단순히 현재 미세먼지 수치를 확인하는 수준을 넘어, 다음 시간대의 PM2.5 농도를 예측하여 학교생활 의사결정에 활용할 수 있는 가능성을 탐색한다.

2. 연구 문제

  1. 교내외 미세먼지, 기온, 습도, 풍속, 이전 시간대 PM2.5 값은 다음 시간대 PM2.5 예측에 활용될 수 있는가?
  2. 선형회귀와 랜덤포레스트 중 어떤 모델이 단기 예측에 더 적합한가?
  3. 예측에 가장 큰 영향을 주는 변수는 무엇이며, 그 이유는 어떻게 해석할 수 있는가?

3. 연구의 의의

본 연구는 과학고 정보 수업에서 실제 데이터를 다루는 탐구 활동의 예시가 된다. 학생은 데이터 수집, 결측치 처리, 모델 학습, 성능 평가, 변수 중요도 해석을 경험하면서 정보 과목의 핵심 역량을 통합적으로 기를 수 있다.

Ⅱ. 이론적 배경

1. PM2.5와 환경 변수

PM2.5는 지름이 2.5μm 이하인 초미세먼지를 의미한다. PM2.5 농도는 배출원, 대기 정체, 습도, 풍속, 강수 여부 등에 영향을 받을 수 있다. 본 소논문 예시에서는 수업용 단순화를 위해 기온, 습도, 풍속, 이전 시간대 PM2.5 값을 주요 입력 변수로 사용한다.

2. 회귀 모델

회귀는 연속적인 값을 예측하는 지도학습 방법이다. PM2.5 예측에서는 다음 시간대 농도처럼 숫자로 표현되는 값을 목표 변수로 둔다. 선형회귀는 변수와 예측값 사이의 선형 관계를 가정하고, 랜덤포레스트 회귀는 여러 결정나무의 예측을 평균하여 비선형 관계를 포착할 수 있다.

3. 평균절대오차

평균절대오차, MAE는 실제값과 예측값의 차이를 절댓값으로 바꾼 뒤 평균한 값이다. 예를 들어 MAE가 4.2라면 모델의 예측이 평균적으로 PM2.5 농도 약 4.2㎍/㎥ 정도 벗어났다는 의미로 해석할 수 있다.

Ⅲ. 연구 방법

1. 데이터 수집 계획

표 1. 수집 변수 예시
변수명의미자료형비고
time측정 시각datetime1시간 간격 기록
temperature기온float
humidity상대습도float%
wind풍속floatm/s
pm25_prev이전 시간대 PM2.5float입력 변수
pm25_next다음 시간대 PM2.5float목표 변수

2. 전처리 방법

  • 측정 시각이 중복된 행은 하나만 남긴다.
  • 결측치는 앞뒤 시간대 평균 또는 중앙값으로 보정한다.
  • 이전 시간대 PM2.5 값을 입력 변수로 만들기 위해 shift 연산을 사용한다.
  • 시간 순서가 중요한 데이터이므로 실제 연구에서는 무작위 분리와 시간 순서 분리를 모두 비교한다.

3. 모델 비교 방법

선형회귀는 기준 모델로 사용하고, 랜덤포레스트는 비선형 관계를 고려하는 비교 모델로 사용한다. 두 모델의 MAE를 비교하여 예측 성능을 판단한다.

Ⅳ. 구현 코드

1. 기본 예측 코드

import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestRegressor
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_absolute_error

# 1. 데이터 불러오기
# school_air.csv 예시 열:
# time, temperature, humidity, wind, pm25_prev, pm25_next
df = pd.read_csv('school_air.csv')

# 2. 입력 변수와 목표 변수 설정
X = df[['temperature', 'humidity', 'wind', 'pm25_prev']]
y = df['pm25_next']

# 3. 학습용/평가용 데이터 분리
X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.25, random_state=42
)

# 4. 모델 1: 선형회귀
linear = LinearRegression()
linear.fit(X_train, y_train)
linear_pred = linear.predict(X_test)
linear_mae = mean_absolute_error(y_test, linear_pred)

# 5. 모델 2: 랜덤포레스트 회귀
forest = RandomForestRegressor(n_estimators=200, random_state=42)
forest.fit(X_train, y_train)
forest_pred = forest.predict(X_test)
forest_mae = mean_absolute_error(y_test, forest_pred)

# 6. 결과 출력
print('Linear Regression MAE:', round(linear_mae, 3))
print('Random Forest MAE:', round(forest_mae, 3))

importance = pd.Series(forest.feature_importances_, index=X.columns)
print('\n변수 중요도')
print(importance.sort_values(ascending=False))

2. 시간 변수 생성 예시

import pandas as pd

raw = pd.read_csv('school_air_raw.csv', parse_dates=['time'])
raw = raw.sort_values('time')

# 이전 시간대 PM2.5와 다음 시간대 PM2.5 생성
raw['pm25_prev'] = raw['pm25'].shift(1)
raw['pm25_next'] = raw['pm25'].shift(-1)

# 결측치 제거
clean = raw.dropna(subset=['temperature', 'humidity', 'wind', 'pm25_prev', 'pm25_next'])

clean.to_csv('school_air.csv', index=False, encoding='utf-8-sig')
print(clean.head())

3. 예측값 시각화 코드

import matplotlib.pyplot as plt

result = pd.DataFrame({
    'actual': y_test.values,
    'predicted': forest_pred
}).reset_index(drop=True)

plt.figure(figsize=(10, 4))
plt.plot(result['actual'], label='Actual PM2.5')
plt.plot(result['predicted'], label='Predicted PM2.5')
plt.title('Actual vs Predicted PM2.5')
plt.xlabel('Test sample index')
plt.ylabel('PM2.5')
plt.legend()
plt.grid(True, alpha=0.3)
plt.show()

Ⅴ. 결과 예시

주의: 아래 결과값은 소논문 작성 예시를 위한 가상 결과이다. 실제 보고서에서는 학생이 수집한 데이터로 직접 계산한 값을 넣어야 한다.

표 2. 모델별 예측 성능 예시
모델MAE해석
선형회귀5.84평균적으로 실제 PM2.5와 5.84㎍/㎥ 차이 발생
랜덤포레스트 회귀3.91선형회귀보다 오차가 작아 단기 예측에 더 적합한 경향
표 3. 랜덤포레스트 변수 중요도 예시
변수중요도해석
pm25_prev0.62직전 시간대 미세먼지 농도가 다음 시간대 예측에 가장 큰 영향
humidity0.17습도 변화가 입자 농도 변화와 관련될 가능성
wind0.13풍속이 높을수록 대기 확산 효과가 나타날 수 있음
temperature0.08다른 변수에 비해 직접 영향은 작게 나타남
그림 1. 실제 PM2.5와 예측 PM2.5 비교 그래프 자리
보고서 작성 시 matplotlib 출력 그래프를 이미지로 저장하여 삽입한다.

결과 해석 예시 문장

예시 결과에서 랜덤포레스트 회귀 모델의 MAE는 3.91로 선형회귀 모델의 MAE 5.84보다 낮게 나타났다. 이는 PM2.5의 단기 변화가 단순한 선형 관계만으로 설명되기 어렵고, 이전 시간대 농도와 기상 요소가 복합적으로 작용할 가능성을 시사한다. 변수 중요도에서는 pm25_prev가 가장 높게 나타났는데, 이는 미세먼지 농도가 시간적으로 연속성을 지니기 때문으로 해석할 수 있다.

Ⅵ. 논의

1. 정보 과목 관점의 의미

본 연구는 데이터를 단순히 표로 정리하는 활동을 넘어, 예측 가능한 문제로 변환하고 모델을 통해 해결해 보는 활동이다. 학생은 데이터 구조를 설계하고, 입력 변수와 목표 변수를 구분하며, 알고리즘의 성능을 수치로 평가하는 과정을 경험한다.

2. 과학 탐구 관점의 의미

미세먼지 농도는 대기 흐름, 습도, 배출원, 실내외 환기 상태 등 다양한 원인의 영향을 받는다. 따라서 예측 모델의 결과를 해석할 때는 단순히 정확도만 비교하기보다 실제 환경 현상과 연결하여 설명해야 한다.

3. 한계

  • 센서 오차가 있으면 모델 성능이 실제보다 낮거나 높게 왜곡될 수 있다.
  • 짧은 기간의 데이터만 사용하면 계절 변화나 특별한 기상 상황을 반영하기 어렵다.
  • 무작위 데이터 분리는 시간 순서를 충분히 반영하지 못할 수 있다.
  • 모델은 예측을 제공할 뿐 원인을 확정적으로 증명하지 않는다.

4. 개선 방향

  • 데이터 수집 기간을 1개월 이상으로 늘리고 주중·주말·기숙사 생활 패턴을 구분한다.
  • 강수량, 외부 PM10, 환기 여부, 실내 인원수 변수를 추가한다.
  • 시간 순서 기반 학습/검증 분리를 적용하여 실제 예측 상황과 비슷하게 평가한다.
  • 모델 예측값을 활용한 환기 알림 대시보드를 제작한다.

Ⅶ. 결론

본 소논문 예시는 교내외 환경 데이터를 활용하여 다음 시간대 PM2.5 농도를 예측하는 정보 과목 프로젝트의 한 형태를 제시하였다. 연구 과정에서 학생은 데이터 수집, 전처리, 회귀 모델 구현, 성능 평가, 변수 중요도 분석을 수행할 수 있다. 예시 결과에서는 랜덤포레스트가 선형회귀보다 낮은 예측 오차를 보였으며, 이전 시간대 PM2.5 값이 가장 중요한 변수로 나타났다. 다만 실제 연구에서는 충분한 기간의 데이터를 확보하고, 센서 정확도와 시간 순서 검증을 고려해야 한다. 이 활동은 과학고 학생이 환경 문제를 정보 과학의 방법으로 탐구하는 융합형 수행평가로 활용될 수 있다.

참고문헌 예시

  1. 환경부·한국환경공단, 에어코리아 대기질 관측 자료 활용 안내.
  2. Scikit-learn Developers, Scikit-learn User Guide: Ensemble Methods and Regression Metrics.
  3. 고등학교 정보 교육과정 자료, 데이터와 인공지능 기반 문제 해결 관련 단원.
  4. 학교 자체 센서 측정 자료 또는 공개 기상 관측 자료.

※ 참고문헌은 실제 보고서 작성 시 학생이 사용한 데이터 출처와 문헌에 맞게 정확히 수정해야 한다.

부록: 소논문 작성용 문장 틀

구성예시 문장
연구 동기본 연구는 학교생활과 밀접한 환경 문제를 데이터 기반으로 분석하기 위해 시작되었다.
연구 질문본 연구의 핵심 질문은 교내외 환경 변수를 이용하여 다음 시간대 PM2.5 농도를 예측할 수 있는가이다.
방법수집한 자료는 결측치 처리 후 입력 변수와 목표 변수로 나누어 회귀 모델 학습에 사용하였다.
결과모델 비교 결과, 랜덤포레스트 회귀가 선형회귀보다 낮은 평균절대오차를 보였다.
한계본 연구는 데이터 수집 기간이 제한되어 계절적 변화를 충분히 반영하지 못했다는 한계가 있다.
과학고 정보 수업 · 프로젝트 소논문 예시 HTML