Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过NMAR生成缺失值的过程_R_Simulation_Missing Data - Fatal编程技术网

通过NMAR生成缺失值的过程

通过NMAR生成缺失值的过程,r,simulation,missing-data,R,Simulation,Missing Data,NMAR生成缺失值的过程: Aj <- c(48,75,83,58,83,32,45,50,86) AjNMAR的意思是“不随机丢失”,因此它意味着丢失的数据有一种模式。NMAR没有指定该模式是什么,只是有一个 这对数据分析来说是一个挑战,因为这意味着缺失数据的分布与完整数据的分布不同,因此根据观察值(例如,通过插补中间值)插补缺失值是危险的 即使是一个复杂的缺失数据插补包,如mice(在上面的评论中提到)也被设计用于插补MAR(随机缺失)或MCAR(完全随机缺失)的数据 要模拟NMAR

NMAR生成缺失值的过程:

Aj <- c(48,75,83,58,83,32,45,50,86)
AjNMAR的意思是“不随机丢失”,因此它意味着丢失的数据有一种模式。NMAR没有指定该模式是什么,只是有一个

这对数据分析来说是一个挑战,因为这意味着缺失数据的分布与完整数据的分布不同,因此根据观察值(例如,通过插补中间值)插补缺失值是危险的

即使是一个复杂的缺失数据插补包,如mice(在上面的评论中提到)也被设计用于插补MAR(随机缺失)或MCAR(完全随机缺失)的数据

要模拟NMAR数据,只需为丢失的数据指定一个分布,该分布与示例中用于生成数据的分布不同。有无数种方法可以做到这一点

如果我正确理解您的描述,您希望使5-10%的值低于或高于您的中值缺失。这一行代码在中位数以上的任何值上都有5%的可能性:

Aj[Aj > median(Aj)] = ifelse(sample(c(T, F), length(Aj[Aj > median(Aj)]), replace=T, prob=c(0.05, 0.95)), NA, Aj[Aj > median(Aj)])
这行代码将获取中值以上的Aj值,然后ifelse()使用一个样本选择第一个选项(可能性为5%的T)或第二个选项(可能性为95%的F)。如果为T,则该值替换为NA。如果F,则保留原始值。

NMAR表示“不随机丢失”,因此它表示丢失的数据有一种模式。NMAR没有指定该模式是什么,只是有一个

这对数据分析来说是一个挑战,因为这意味着缺失数据的分布与完整数据的分布不同,因此根据观察值(例如,通过插补中间值)插补缺失值是危险的

即使是一个复杂的缺失数据插补包,如mice(在上面的评论中提到)也被设计用于插补MAR(随机缺失)或MCAR(完全随机缺失)的数据

要模拟NMAR数据,只需为丢失的数据指定一个分布,该分布与示例中用于生成数据的分布不同。有无数种方法可以做到这一点

如果我正确理解您的描述,您希望使5-10%的值低于或高于您的中值缺失。这一行代码在中位数以上的任何值上都有5%的可能性:

Aj[Aj > median(Aj)] = ifelse(sample(c(T, F), length(Aj[Aj > median(Aj)]), replace=T, prob=c(0.05, 0.95)), NA, Aj[Aj > median(Aj)])

这行代码将获取中值以上的Aj值,然后ifelse()使用一个样本选择第一个选项(可能性为5%的T)或第二个选项(可能性为95%的F)。如果为T,则该值替换为NA。如果为F,则保留原始值。

查看以下文章:查看以下文章: