如何在R中使用循环查找RMSE

时间:2015-12-22 20:14:39

标签: r statistics missing-data method-missing imputation

如果我的数据框包含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。

1 个答案:

答案 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