如果我的数据框包含3个变量:
origdata=data.frame(age=c(22,45,50,80,55,45,60,24,18,15),
bmi=c(22,24,26,27,28,30,27,25.5,18,25),
hyp=c(1,2,4,3,1,2,1,5,4,5) )
origdata
我使用MCAR错过了一些数据如下:
halpha = 0.1
# MCAR for attribute (1) age:
mcar= runif(10, min=0, max=1)
age.mcar = ifelse(mcar<alpha, NA, origdata$age)
age.mcar
sum(is.na(age.mcar))
# MCAR for attribute (2) bmi:
mcar= runif(10, min=0, max=1)
bmi.mcar = ifelse(mcar<alpha, NA, origdata$bmi)
bmi.mcar
sum(is.na(bmi.mcar))
# MCAR for attribute (3) hyp:
mcar= runif(10, min=0, max=1)
hyp.mcar = ifelse(mcar<alpha, NA,origdata$hyp)
hyp.mcar
sum(is.na(hyp.mcar))
之后我使用了鼠标包来计算缺失值,如下所示:
install.packages("mice")
library ("mice")
imp=mice(df,10) # 10 is mean 10 iteration imputing data
fill1=complete(imp,1) # iteration 1
fill2=complete(imp,2) # iteration 2
allfill=complete(imp,"long") # all iterations together
我的问题是我想通过使用循环单独找到所有(10)次迭代的RMSE这是我的RMSE等式:
`RMSE=sqrt((sum((origdata-fill)^2))/sum(is.na(df)))`
我的意思是让aloop为每个迭代单独找到RMSE
RMSE1(第一次迭代)
RMSE2(第二次迭代)
,....... RMSE10(第十次迭代)
以及如何知道哪个迭代最适合估算的NA。
答案 0 :(得分:2)
循环在R
Printing before stdout redirect
[0.000 seconds] Stdout now redirected
[0.000 seconds] About to sleep 5 seconds
[5.004 seconds] Slept 5 seconds