통계/프로젝트

호흡기 질환과 미세먼지의 상관관계

learning-log22 2025. 3. 23. 12:19

호흡기질환과 미세먼지 상관관계.pdf
12.10MB

# 필요한 패키지 설치 및 로드
install.packages("ggmap")
install.packages("dplyr")
install.packages("tidyr")
library(ggmap)
library(dplyr)
library(tidyr)

# Google Maps API 키 등록 (발급받은 API 키로 대체)
register_google(key = "YOUR_GOOGLE_MAPS_API_KEY")

# PM_10 데이터 로드
pm_data <- read.csv("path/to/PM_10.csv", fileEncoding = "UTF-8")

# PM_Level 변수를 수치로 변환
pm_data$PM_Level <- as.numeric(factor(pm_data$등급, levels = c("좋음", "보통", "나쁨", "매우나쁨")))

# 도시 열 선택 및 연도별 PM Level 빈도 계산
city_columns <- colnames(pm_data)[3:(ncol(pm_data) - 1)]  # 도시 컬럼 선택
pm_level_frequency <- pm_data %>%
  group_by(년도, PM_Level) %>%
  summarise(across(all_of(city_columns), sum, na.rm = TRUE)) %>%
  pivot_longer(cols = -c(년도, PM_Level), names_to = "도시", values_to = "빈도수")

# 도시별 위도와 경도를 자동으로 가져오기
pm_level_frequency <- pm_level_frequency %>%
  mutate_geocode(도시)

# 연도별로 지도에 시각화
unique_years <- unique(pm_level_frequency$년도)
maps <- list()

for (year in unique_years) {
  # 해당 연도 데이터 필터링
  year_data <- pm_level_frequency %>% filter(년도 == year)
  
  # 한국 지도 가져오기
  korea_map <- get_map(location = "South Korea", zoom = 7, maptype = "roadmap")
  
  # 지도에 도시별 빈도 합계 시각화
  maps[[as.character(year)]] <- ggmap(korea_map) +
    geom_point(data = year_data, aes(x = lon, y = lat, color = factor(PM_Level), size = 빈도수), alpha = 0.7) +
    scale_color_manual(values = c("1" = "blue", "2" = "green", "3" = "orange", "4" = "red"), name = "PM Level") +
    labs(title = paste(year, "년 도시별 PM Level 빈도수 합계"), x = "경도", y = "위도") +
    theme_minimal()+
    theme(text = element_text(family = "AppleGothic"), 
                         axis.text.x = element_text(angle = 45, hjust = 1))
}
      
# 연도별 지도 출력
maps
# 필요한 패키지 설치 및 로드
library(ggplot2)
library(dplyr)

# 호흡기 질환 데이터 로드
respiratory_disease <- read.csv("18_23.csv", fileEncoding = "UTF-8")

# 연도별 환자 수 합계 계산 (이미 합계된 상태라면 이 부분은 생략 가능)
respiratory_yearly <- respiratory_disease %>%
  group_by("년도") %>%
  summarise("환자수" = sum("환자수", na.rm = TRUE))

# 연도별 환자 수 시각화
ggplot(respiratory_disease, aes(x = "년도", y = "환자수")) +
  geom_bar(stat = "identity", fill = "skyblue") +
  labs(title = "연도별 호흡기 질환 환자 수", x = "년도", y = "환자 수") +
  theme_minimal() +
  theme(text = element_text(family = "AppleGothic"), 
        axis.text.x = element_text(angle = 45, hjust = 1))

              
# 필요한 패키지 설치 및 로드
install.packages("ggplot2")
library(ggplot2)
library(dplyr)

# 파일 읽기
combined_data <- read.csv("18_23.csv", fileEncoding = "UTF-8")

# 년도와 주차 결합
combined_data <- combined_data %>%
  mutate(년도_주차 = paste(년도, 주차, sep = "_"))  # "년도-주차" 형식으로 결합

# 데이터 순서 정렬 (필요하면)
combined_data <- combined_data %>%
  arrange(년도, 주차)

# 시각화
ggplot(combined_data, aes(x = 년도_주차, y = 환자수, group = 1)) +
  geom_line(color = "blue", size = 1) +  # 선 그래프
  geom_point(color = "red", size = 2) +  # 점 추가
  labs(title = "년도와 주차별 환자 수", x = "년도-주차", y = "환자 수") +
  theme_minimal() +
  theme(text = element_text(family = "AppleGothic"), 
  axis.text.x = element_text(angle = 45, hjust = 1, size = 8)  # x축 레이블 기울임
  )

library(dplyr)
library(ggplot2)

# 데이터 불러오기
combined_data <- read.csv("18_23.csv", fileEncoding = "UTF-8")

# 월 계산 (주차를 이용)
combined_data <- combined_data %>%
  mutate(월 = ceiling(주차 / 4))  # 주차를 4주 단위로 나눠 월 계산

# 월별 데이터 요약 (년도와 월 기준으로 그룹화)
monthly_data <- combined_data %>%
  group_by(년도, 월) %>%
  summarise(월별_환자수 = sum(환자수, na.rm = TRUE)) %>%
  ungroup()

# 월별 데이터를 결합된 형식으로 표시 (년도-월)
monthly_data <- monthly_data %>%
  mutate(년도_월 = paste(년도, 월, sep = "_"))

# 시각화
ggplot(monthly_data, aes(x = 년도_월, y = 월별_환자수, group = 1)) +
  geom_line(color = "blue", size = 1) +
  geom_point(color = "red", size = 2) +
  labs(title = "월별 호흡기 질환 환자 수", x = "년도_월", y = "환자 수") +
  theme_minimal() +
  theme(text = element_text(family = "AppleGothic"), 
  axis.text.x = element_text(angle = 45, hjust = 1, size = 8)  # x축 레이블 기울임
  )
library(dplyr)
library(ggplot2)

# 년도와 월을 기준으로 데이터 정렬
monthly_data <- monthly_data %>%
  mutate(년도_월 = factor(년도_월, levels = unique(년도_월[order(년도, 월)])))  # 년도와 월 기준으로 정렬
combined_data <- combined_data %>%
  mutate(월 = ceiling(주차 / 4),  # 기존 계산
         월 = ifelse(월 > 12, 12, 월))  # 월이 12를 초과하지 않도록 제한

# 정렬된 데이터로 시각화
ggplot(monthly_data, aes(x = 년도_월, y = 월별_환자수, group = 1)) +
  geom_line(color = "blue", size = 1) +
  geom_point(color = "red", size = 2) +
  labs(title = "월별 호흡기 질환 환자 수", x = "년도-월", y = "환자 수") +
  theme_minimal() +
  theme(text = element_text(family = "AppleGothic"), 
  axis.text.x = element_text(angle = 45, hjust = 1, size = 8)  # x축 레이블 기울임
  )  

library(dplyr)
library(ggplot2)

# 파일 읽기
combined_data <- read.csv("18_23.csv", fileEncoding = "UTF-8")

# 주차를 월로 매핑
combined_data <- combined_data %>%
  mutate(
    월 = case_when(
      주차 >= 1 & 주차 <= 4 ~ 1,
      주차 >= 5 & 주차 <= 8 ~ 2,
      주차 >= 9 & 주차 <= 13 ~ 3,
      주차 >= 14 & 주차 <= 17 ~ 4,
      주차 >= 18 & 주차 <= 21 ~ 5,
      주차 >= 22 & 주차 <= 26 ~ 6,
      주차 >= 27 & 주차 <= 30 ~ 7,
      주차 >= 31 & 주차 <= 35 ~ 8,
      주차 >= 36 & 주차 <= 39 ~ 9,
      주차 >= 40 & 주차 <= 43 ~ 10,
      주차 >= 44 & 주차 <= 48 ~ 11,
      주차 >= 49 & 주차 <= 53 ~ 12
    )
  )

# 월별 데이터 요약
monthly_data <- combined_data %>%
  group_by(년도, 월) %>%
  summarise(월별_환자수 = sum(환자수, na.rm = TRUE)) %>%
  ungroup() %>%
  mutate(년도_월 = paste(년도, 월, sep = "_"))

# 월별 데이터 시각화
ggplot(monthly_data, aes(x = 년도_월, y = 월별_환자수, group = 1)) +
  geom_line(color = "blue", size = 1) +
  geom_point(color = "red", size = 2) +
  labs(title = "월별 호흡기 질환 환자 수", x = "년도_월", y = "환자 수") +
  theme_minimal() +
  theme(text = element_text(family = "AppleGothic"), 
    axis.text.x = element_text(angle = 45, hjust = 1, size = 8)
  )

'통계 > 프로젝트' 카테고리의 다른 글

공공의료 빅데이터 분석  (0) 2025.03.23
암환자 생존 분석  (0) 2025.03.23
대한민국 지역별 주택 가격 및 상승률 비교  (0) 2025.03.23