1. 程式人生 > >對缺失值賦值

對缺失值賦值

檢視資料缺失情況

questionnaire <- read.csv("問卷調研資料.csv",header = TRUE)
dim(questionnaire)#檢視行數和變數
library(VIM)
aggr(questionnaire[,-1],prop=FALSE,numbers=TRUE)#不要序號,以絕對數顯示,有標籤

在這裡插入圖片描述

建立邏輯迴歸模型,對性別進行預測

for(i in 2:ncol(questionnaire)){
  questionnaire[,i] <- as.factor(questionnaire[,i])
}變數轉因子
str(questionnaire)

在這裡插入圖片描述

train1 <- na.omit(questionnaire[,c("性別","職業","學歷","玩家遊戲情況","遊戲進入","遊戲偏好")])
test1 <- questionnaire[is.na(questionnaire$性別),c("職業","學歷","玩家遊戲情況","遊戲進入","遊戲偏好")]
fit <- glm(性別~.,family = "binomial",data = train1)
result <- predict(fit,test1,type = "response") <0.5
z =rep(1,nrow(test1))   構造2萬個1
z[!result]=2                   部分轉變為2
test2 <- cbind("性別"=z,test1)
head(test2)

??
glm用於擬合廣義線性模型,具體方法是給出線性預測器的符號描述和誤差分佈的描述。
glm(formula, family = gaussian, data, weights, subset,
na.action, start = NULL, etastart, mustart, offset,
control = list(…), model = TRUE, method = “glm.fit”,
x = FALSE, y = TRUE, singular.ok = TRUE, contrasts = NULL, …)
formula:典型的預測器有響應~項的形式,其中響應是(數值)響應向量,而項是一系列指定響應線性預測器的項。
family(object, …)
binomial(link = “logit”) 二項式
gaussian(link = “identity”) 高斯
Gamma(link = “inverse”) 伽馬
inverse.gaussian(link = “1/mu^2”)
poisson(link = “log”) 泊松
quasi(link = “identity”, variance = “constant”)
quasibinomial(link = “logit”)
quasipoisson(link = “log”)

預測是對各種模型擬合函式的結果進行預測的通用函式。該函式呼叫依賴於第一個引數的類的特定方法。

年齡、收入多因子變數,進行決策樹預測

library("mice")
md.pattern(questionnaire)   #Missing data pattern

在這裡插入圖片描述
在這裡插入圖片描述

library("missForest")
zz <- missForest(questionnaire)   #利用隨機森林進行非引數缺失值估計

“missForest”用於估算缺失值,特別是在混合型別資料的情況下。它可以用於輸入連續和/或分類資料,包括複雜的相互作用和非線性關係。它給出了一個out-of-bag (OOB)的歸算誤差估計。並可並行執行,節省了計算時間。

missForest(xmis, maxiter = 10, ntree = 100, variablewise = FALSE,
decreasing = FALSE, verbose = FALSE,
mtry = floor(sqrt(ncol(xmis))), replace = TRUE,
classwt = NULL, cutoff = NULL, strata = NULL,
sampsize = NULL, nodesize = NULL, maxnodes = NULL,
xtrue = NA, parallelize = c(‘no’, ‘variables’, ‘forests’))

xmis:缺少值的資料矩陣。列對應於變數,行對應於觀察值
maxiter:給定停止條件下要執行的最大迭代次數
variablewise:如果“TRUE”,則分別為每個變數返回OOB錯誤。這可以作為對輸入變數w.r.t.進行後續資料分析的可靠性檢查

questionnaire.full <- zz$ximp
md.pattern(questionnaire.full)

在這裡插入圖片描述
在這裡插入圖片描述