这个问题更多的是关于统计而不是R编程,虽然因为我是R的初级用户,我特别感谢R中的任何想法;谢谢你的考虑:
我们的一个线性模型(lm)中的结果变量是腰围,在我们的数据集的约20%中缺失。去年发布了一个模型,可以可靠地估计BMI,年龄和性别的腰围(我们所有的都有)。我想用这个模型来估算我们数据中缺失的腰围,但我想确保将已知误差纳入该估计模型中。已经报告了截距和每个系数的标准误差。
你能否建议我如何负责任地估算缺失的腰围并评估对我自己腰围预测模型的任何影响?(/或许是一个更好的词估计)?
再次感谢任何编码策略。
答案 0 :(得分:1)
正如弗兰克指出的那样,这个问题具有很强的统计风格。但是一个可能的解决方案确实需要一些复杂的编程,所以将它放在R线程中也许是合法的。
为了“将已知错误纳入该估算”,一种标准方法是多重插补,如果你想走这条路线,R是一种很好的方法。这有点牵扯,所以你必须自己解决代码的具体细节,但如果你理解基本策略,它就相对简单了。
基本思路是,对于数据集中的每个主题,您首先使用已发布的模型和BMI,年龄和性别来确定预期值,然后在其中添加一些模拟随机噪声,从而确定腰围。你必须通读该出版物来确定该噪音的数值。一旦填写了每个缺失的值,那么您只需执行要运行的统计计算,并保存标准错误。现在,您创建第二个数据集,从具有缺失值的原始数据集派生,再次使用已发布的模型来估算期望值以及一些随机噪声 - 由于噪声是随机的,因此该数据集的估算值应为与第一个数据集的估算值不同。现在进行统计计算,并保存标准误差,这与第一个插补数据集的误差略有不同,因为插补值包含随机噪声。重复一遍。最后,对保存的标准误差进行平均,这将给出对标准误差的估计,其中包含由于插补引起的不确定性。
你所做的实际上是一个两级模拟:在低级别上,对于每次迭代,您使用已发布的模型创建一个模拟数据集,其中包含丢失数据的噪声估算值,然后为您提供模拟标准错误,然后在高级别上重复该过程以获得此类模拟标准错误的样本,然后对其进行平均以获得总体估计值。
传统的统计软件包(例如SAS或Stata)很难做到这一点,虽然它有可能,但在R中更容易做,因为它基于适当的编程语言。所以,是的,你的问题是正确地说出统计问题,但最好的解决方案可能是特定于R的。