我有一个大型数据集,其中包含儿童在算术任务上的分数,可能由于儿童的年龄而存在大量缺失值?我的假设是缺失不是完全随机的,而是随机的。我需要做CFA并且想知道我是否需要以年龄为条件?我知道 SPSS 17 有一个缺失值分析,但我的数据在 R 中并且非常大。我想在 R 中进行缺失值分析,但找不到可以执行此操作的包。有人知道吗?
我的数据中的缺失是否完全随机分布?
机器算法验证
r
缺失数据
2022-03-19 20:51:01
3个回答
正如@Dirk Eddelbuettel 已经提到的,您的问题不是很清楚。事实上,我认为你在问两个问题。第一个问题与您的 M(C)AR 假设有关。第二个问题是关于(一个)适当的 R 包。
(1) MAR的“测试”
要测试年龄是否对分数变量的缺失有影响,您可以运行一个简单的逻辑回归模型,将年龄作为预测变量。您的响应变量为 0:未丢失分数,1:未丢失分数(另请参阅 @mbq 的答案和 @Macro 的评论)。假设年幼的孩子更有可能不报告数学成绩,我们预计年龄会产生显着的负面影响。
## Make up some data
set.seed(2)
## Younger children are more likely to not report math scores,
## so I use a Poisson distribution to model that behaviour
missData <- rpois(10000, 10)
dfr <- data.frame(score=rnorm(100), age=sample(6:15, 100, replace=TRUE))
dfr <- dfr[order(dfr$age), ]
dfr$agemiss <- sort(sample(missData, 100, replace=TRUE))
dfr$miss <- ifelse(dfr$agemiss == dfr$age, 1, 0)
## Run the logistic regression with age as predictor
> summary(glm(miss ~ age, data=dfr, family=binomial))
[...]
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 5.9729 1.4946 3.996 6.43e-05 ***
age -0.7997 0.1760 -4.544 5.53e-06 ***
---
[...]
(2)(部分)缺失数据相关的R包
其中一些包还具有探索缺失模式的功能(例如,missing.pattern.plot()
在mi
包中)。
据我了解您的问题,您想调查数据中的缺失值是否由于某种模式而出现。在这种情况下,您不需要任何“缺失值分析”——这与检查分数是否大于 0.7 或其他问题相同。只需将您的数据集转换为两类因子(缺失、非缺失)并寻找相关性。
其它你可能感兴趣的问题