8 Comments
library(dplyr)
library(data.table)
library(ggplot2)
library("xlsx")
library(MASS)
library(corrplot)
# set working directory
getwd()
setwd("C:/Users/************/Desktop")
dir()
# load data
# 1.
raw_df <- read.xlsx("happiness.xlsx",1)
raw_df <- raw_df %>% select(-No)
raw_df %>% head
# 2.
dim(raw_df); str(raw_df)
raw_df$region <- raw_df$region %>% as.factor
str(raw_df)
# 3.
apply(raw_df,2, function(x){sum(is.na(x))}) # eco, health, security, leisure, environment, relationship, education 각각 1개씩 결측치 존재
df <- raw_df %>% na.omit
apply(df,2, function(x){sum(is.na(x))})
# 4.
# 무슨 기술통계량을 원하는지 모르겠음
df$region %>% table
df$gugun %>% table
df %>% names
apply(df[,-c(1,2)], 2, function(x){sum(x)}) #total
apply(df[,-c(1,2)], 2, function(x){mean(x)}) # average
apply(df[,-c(1,2)], 2, function(x){var(x)}) # variance
# 5.
df$happiness <- rowSums(df[,-c(1,2)])
# 5-2.
df$happiness %>% mean # average
df$happiness %>% sum() #total
df$happiness %>% var #variance
hist(df$happiness) # 오른쪽으로 살짝 치우쳐진 분포로 보여지지만 정규분포처럼 보인다. 하지만 데이터 특성상 양의값만 가지기떄문에 추후 모델링을 할때 분포가정에서 주의를 할 필요가 있다.
boxplot(df$happiness) # boxplot을 통해 IQR을 벗어나는 점이 2개 있는 것으로 보아 해당 데이터에 이상치로 보여지는 포인트가 2개 있는것으로 판단된다.
# 6.
df %>% arrange(desc(happiness)) %>% head(5)
# 서울특별시 종로구, 경기도 과천시, 서울특별시 중구, 강원도 영월군, 충청북도 옥천군
# 7.
(df %>% filter(region == "서울특별시"))$happiness %>% hist(.,breaks = seq(0,6,by = 0.5))
abline(h = (df %>% filter(region == "서울특별시"))$happiness %>% mean, col = "red", lty = 2, lwd = 2)
# 8.
df_subset <- subset(df,select = -c(gugun, region))
corrplot(cor(df_subset))
# environment 와 eco가 다른 변수들간에 상관계수의 비해 음의 상관계수가 큰 것을 알 수 있다 즉 eco만족도가 높으면 environment가 대체로 낮다고 말 할 수 있다.
# 이는 eco만족도가 높을 경우 도심지가 아니여서 사람도 적고 교통량도 적어 eco 만족도가 높을 것으로 생각되는데 이는 반대로 주변편의시설에 부족으로 인해 environment 만족도가 낮아져 이와 같은 강한 음의 상관계수가 나타나는 것으로 보여진다.
과제하시는데 참고만하시는게 좋을 것 같네요 윗분 말씀처럼 과제를 본인이 할 수 없으면 의미가 전혀없어요..
library(data.table)
library(ggplot2)
library("xlsx")
library(MASS)
library(corrplot)
# set working directory
getwd()
setwd("C:/Users/************/Desktop")
dir()
# load data
# 1.
raw_df <- read.xlsx("happiness.xlsx",1)
raw_df <- raw_df %>% select(-No)
raw_df %>% head
# 2.
dim(raw_df); str(raw_df)
raw_df$region <- raw_df$region %>% as.factor
str(raw_df)
# 3.
apply(raw_df,2, function(x){sum(is.na(x))}) # eco, health, security, leisure, environment, relationship, education 각각 1개씩 결측치 존재
df <- raw_df %>% na.omit
apply(df,2, function(x){sum(is.na(x))})
# 4.
# 무슨 기술통계량을 원하는지 모르겠음
df$region %>% table
df$gugun %>% table
df %>% names
apply(df[,-c(1,2)], 2, function(x){sum(x)}) #total
apply(df[,-c(1,2)], 2, function(x){mean(x)}) # average
apply(df[,-c(1,2)], 2, function(x){var(x)}) # variance
# 5.
df$happiness <- rowSums(df[,-c(1,2)])
# 5-2.
df$happiness %>% mean # average
df$happiness %>% sum() #total
df$happiness %>% var #variance
hist(df$happiness) # 오른쪽으로 살짝 치우쳐진 분포로 보여지지만 정규분포처럼 보인다. 하지만 데이터 특성상 양의값만 가지기떄문에 추후 모델링을 할때 분포가정에서 주의를 할 필요가 있다.
boxplot(df$happiness) # boxplot을 통해 IQR을 벗어나는 점이 2개 있는 것으로 보아 해당 데이터에 이상치로 보여지는 포인트가 2개 있는것으로 판단된다.
# 6.
df %>% arrange(desc(happiness)) %>% head(5)
# 서울특별시 종로구, 경기도 과천시, 서울특별시 중구, 강원도 영월군, 충청북도 옥천군
# 7.
(df %>% filter(region == "서울특별시"))$happiness %>% hist(.,breaks = seq(0,6,by = 0.5))
abline(h = (df %>% filter(region == "서울특별시"))$happiness %>% mean, col = "red", lty = 2, lwd = 2)
# 8.
df_subset <- subset(df,select = -c(gugun, region))
corrplot(cor(df_subset))
# environment 와 eco가 다른 변수들간에 상관계수의 비해 음의 상관계수가 큰 것을 알 수 있다 즉 eco만족도가 높으면 environment가 대체로 낮다고 말 할 수 있다.
# 이는 eco만족도가 높을 경우 도심지가 아니여서 사람도 적고 교통량도 적어 eco 만족도가 높을 것으로 생각되는데 이는 반대로 주변편의시설에 부족으로 인해 environment 만족도가 낮아져 이와 같은 강한 음의 상관계수가 나타나는 것으로 보여진다.
과제하시는데 참고만하시는게 좋을 것 같네요 윗분 말씀처럼 과제를 본인이 할 수 없으면 의미가 전혀없어요..


