如果我有两个变量和九个实例,我想在缺失率(5%.15%)下对我的数据应用缺失机制,如(MCAR,MAR,NMAR):
Aj <- c(48,75,83,58,83,32,45,50,86)
As <- c(24,30,31,35,60,76,81,82,88)
如下:
对于模拟MAR,我们首先将变量随机分成对(Aj,As),1≤j,s≤r,其中Aj是引入缺失值的变量,As是影响Aj缺失的变量 . 给定一对变量(Aj,As)和缺失率α,我们首先根据它们在As处的值将实例分成两个大小相等的子集 . 如果变量As是数字,我们将找到As的中值,然后根据天气将所有实例分配到两个子集中,实例具有比中值As更大的值 . 例如,我们可能会让As的值低于中位数60(实例编号1-5)的实例丢失,概率为4α,也就是说,Pr(Aj =缺失|As≤60)=4α .
我在R程序中编写了缺少机制的代码
ifelse(As<=median(As),Aj==NA,Aj)
[1] NA NA NA NA NA 32 45 50 86
我的问题是如何在r或上面的示例和插图的另一个代码中为此代码添加丢失率例如5% .
1 回答
这个单线会让你失去率alpha:
如果您希望观察到的速率接近alpha(您需要弄清楚如何处理舍入),您可以执行以下操作:
输出应该类似于