發表文章

Titanic 資料分析#1

圖片
preprocessing :  ggplot(train, aes(x=Survived))+geom_bar(aes(fill=Sex)) 由圖可看出男性死亡比例高,女性較低 → Sex affects Survived train$Age_level[train$Age < 10] <- "0-10" train$Age_level[train$Age >= 10 & train$Age <20] <- "10-20" train$Age_level[train$Age >= 20 & train$Age <30] <- "20-30" train$Age_level[train$Age >= 30 ] <- "30-" train$Age_level <- as.factor(train$Age_level) ggplot(train, aes(x=Survived))+geom_bar(aes(fill=Age_level)) Age_level在0和1中比例差不多 → no affect 經分析(Embarked過程省略),Age及Embarked可先刪除 使用knn填補missing value install.packages("DMwR") library(DMwR) library(lattice) library(grid) install.packages("rpart") library(rpart) titanic$Survived <- as.factor(titanic$Survived) titanic$Embarked[titanic$Embarked==""] <- "S" knn_titanic <- knnImputation(titanic) tree_fit <- rpart(Survived ~ Pclass+Sex+S...

填補遺漏值(Missing Value)方法

遺漏值(Missing Value) 作資料分析時,資料的預處理(preprocessing,包括抽取、清洗、轉換和集成)常常占了70%的工作量,尤其特別遇到缺失值的問題時,這裡做簡單的介紹、討論及常見解決方式。 造成缺失數據的原因包括機械原因和人為因素。機械原因可能是數據儲存失敗或機械故障導致某段時間數據無法收集;人為因素包括受訪者拒絕回答或回答問題無效等。 < 數據缺失機制 > 完全隨機缺失( Missing Completely at Random, MCAR ) : 數據的缺失與其他變量完全無關 ex. 研究年齡和收入,收入缺失值和年齡無關                                                                             →判斷是否站得住腳可使用單變量 t-檢驗或 Little's MCAR多變量檢驗。若 MCAR 為真,可使用列表刪除(listwise deletion),剩餘資料仍可代表完整數據                                                                            隨機缺失( Missing at Random, MAR ) : 缺失值依賴其他完全變量 ex. 同上年齡和收入,若年紀高者收入缺失值較多表收入缺失值依賴...

ggplot2 繪圖套件

圖片
(一) ggplot2說明 Step1. 先以ggplot(train , aes(x=Survived))繪製出網布,再畫上geom_開頭的圖層。舉geom_bar為.例,參數有 : mapping, data, stat, position,一般來說,不會在geom_開頭函數指定data,輸入geom_bar()直接透過ggplot知道正在依照train繪圖。 Step2. 透過geom_bar的mapping參數知道畫的是Survived,而mapping參數都是用aes(Aesthetic美學的)建立相對應的物件,語法類似aes(x=Survived),mapping(映射)內的東西為data欄位 #注意,Survived不須加上雙引號 ex. ggplot( train, aes( x=Survived)) + geom_bar( aes( fill=Sex), position=" stack ") + ggtitle(...) + xlab(...) + ylab(...)        fill=Sex #不同類別上不同顏色       position="stack"(預設堆疊) / "dodge(分開疊)" / "fill(百分比)"       stat="identity" 表示y軸不再用count ex.  ggplot( combine[1:891,],  aes( x = FamilySize)) +  geom_bar( aes( fill = factor( Survived)), stat= 'count', position = 'dodge')  Q. Why無法改成 ggplot(train, aes(x=Sex))+geom_bar(aes(fill=Survived))   A : Sex資料型態須改成factor ggplotly加入互動性 install.packages("plotly") library(plotly) static_gg <- ggp...