-
코로나 바이러스 데이터 분석잡다R 2020. 3. 11. 02:40
코로나 바이러스 데이터 분석 코로나 바이러스 데이터가 업데이트되면서 많은 분들이 kaggle 등에서 의미 있는 결과를 찾아내고자 데이터 분석을 진행 중입니다.
저도 도움이 되고자 데이터 분석을 진행하는데, 글을 쓰는 도중에 갑자기 결과가 바뀌어 버렸습니다… 말그대로 결과가 바꼈어요. 손댄게 없는데 바꼈어요. 허허.. 무엇이 이유인지는 좀더 찾아봐야겠습니다.. 물론 초보자의 글이라 그렇게 큰 의미는 없겠지만 말이죠.
그래서 일단 코드부터 올리겠습니다. 그리고 조금씩 고쳐나가는 식으로 이 글을 써야겠어요.
# remotes::install_github("youngwoos/corona19") library(corona19) library(tidyverse) patient <- getdata("patient") str(patient) patient <- patient %>% mutate(decease = ifelse(is.na(deceased_date), 0, 1), age = 2020 - birth_year, today = 60 + as.numeric(format(Sys.Date(), "%d")), month = as.numeric(format(confirmed_date, format = "%m")), date = as.numeric(format(confirmed_date, format = "%d")), cured_month = as.numeric(format(released_date, format = "%m")), cured_date = as.numeric(format(released_date, format = "%d")), death_month = as.numeric(format(deceased_date, format = "%m")), death_date = as.numeric(format(deceased_date, format = "%d")), start_date = ifelse(month == 1, date, ifelse(month == 2, 31 + date, 60 + date)), finish_date = ifelse(cured_month == 1, date, ifelse(cured_month == 2, 31 + cured_date, 60 + cured_date)), decease_date = ifelse(death_month == 1, date, ifelse(death_month == 2, 31 + death_date, 60 + death_date)), infection_period = ifelse(!is.na(finish_date), finish_date - start_date, ifelse(!is.na(decease_date), decease_date - start_date, today - start_date))) patient %>% filter(!is.na(deceased_date)) %>% summarise(n = n()) patient %>% group_by(decease) %>% summarise(n = n()) %>% mutate(per = n / sum(n) * 100) patient$disease[is.na(patient$disease)] <- 0 patient$disease <- as.factor(patient$disease) patient$group[is.na(patient$group)] <- "none" # exclude NA for binary choice model pat <- patient %>% filter(!is.na(age)& ! is.na(sex)) nrow(pat) bin.lp <- lm(decease ~ age + sex + disease + group + infection_period, data = pat) summary(bin.lp)
- 코로나 바이러스 사망 요인 분석
library(stargazer) stargazer(bin.lp, type = "text")
## ## ============================================================== ## Dependent variable: ## --------------------------- ## decease ## -------------------------------------------------------------- ## age 0.002*** ## (0.0002) ## ## sexmale -0.003 ## (0.008) ## ## disease1 0.833*** ## (0.026) ## ## groupEunpyeong St. Mary's Hospital -0.050 ## (0.047) ## ## groupMyungsung church -0.101 ## (0.108) ## ## groupnone 0.003 ## (0.038) ## ## groupPilgrimage -0.014 ## (0.056) ## ## groupShincheonji Church 0.003 ## (0.040) ## ## infection_period -0.009*** ## (0.001) ## ## Constant 0.084** ## (0.042) ## ## -------------------------------------------------------------- ## Observations 648 ## R2 0.809 ## Adjusted R2 0.806 ## Residual Std. Error 0.101 (df = 638) ## F Statistic 299.329*** (df = 9; 638) ## ============================================================== ## Note: *p<0.1; **p<0.05; ***p<0.01
- 이산 선택 모형
bin.logit <- glm(decease ~ age + disease + infection_period, data = pat, family = "binomial")
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
pat <- pat %>% mutate(pr.logit = predict(bin.logit, type = "response")) pat %>% ggplot(aes(x = age, y = pr.logit, color = sex)) + geom_jitter(size = 5, alpha = 0.8) + geom_hline(yintercept = c(0, 1)) + theme_light()
모쪼록 코로나 바이러스와 사투를 벌이시는 모든 분들 화이팅입니다! 힘내세요!!
'잡다R' 카테고리의 다른 글
코로나 바이러스 데이터 분석 (누적확진자와 증가율 그래프) (0) 2020.03.31 코로나 바이러스 데이터 분석 (binary choice model) (0) 2020.03.12 한글 띄어쓰기 패키지 KoSpacing! (0) 2020.03.09 마틴 루터 킹 연설문을 이용한 텍스트 마이닝 및 워드클라우드 (0) 2020.02.07 R 지도 시각화를 이용한 서울시 로또 명당 살펴보기 (27) 2019.12.11