-1

我正在与一个团队合作,有些人正在使用 SPSS 替换缺失的案例(多重插补),然后分析数据。当 SPSS 估算新值时,它会报告每个数据集结果和一个汇总结果,这与所有结果的平均值不同。

现在,我正在使用 R 处理在 SPSS 上创建的“多重插补数据集”。我正在尝试以与 SPSS 报告相同的方式从回归中获取汇总估计值。Grace to this post here,我可以使用 broom 包运行多个回归模型并显示每个估计值。问题:一些统计数据是不同的。例如,使用扫帚​​时的 t 值高于 SPSS 报告的值。请看一下这个 SPSS 输出。

在此处输入图像描述

为了使这项工作变得简单,假设我想对每个组的星星价格进行回归,然后显示一个带有汇总估计值的行(t 检验结果和 p 值)。

代码:

   library(broom)
    d <- data.frame(group=rep(1:5, each = 20),
                    price=rnorm(100,1000,10),
                    stars=rnorm(100,3,1))
    fitted_models <- d %>% 
      group_by(group) %>% 
      do(model = lm(price ~ stars, data = .))
    fitted_models %>% tidy(model)
    fitted_models %>% glance(model)

如果您想更好地了解 SPSS 在做什么,请检查此实际输出。汇总并不是所有结果的平均值。 汇集

请随意说这个问题无关紧要,但不要否定这篇文章。其他人可能有同样的问题,我提供所有代码给你再次运行分析。

非常感谢

4

1 回答 1

0

我不是 100% 确定你所说的“合并”估计是什么意思——这是否意味着你想在不分组的情况下运行模型?

如果是这样,那么这应该做你想要的。

d <- data.frame(group=rep(1:5, each = 20),
                price=rnorm(100,1000,10),
                stars=rnorm(100,3,1)
               )

fitted_models <- 
    d %>% 
        group_by(group) %>% 
        do(tidy(lm(data=., formula=price ~ stars))) %>%
        ungroup %>%
        mutate(group=group %>% as.character)


pooled_model <-
    d %>%
    do(tidy(lm(data=., formula=price ~ stars))) %>%
    mutate(group='pooled')

all_results <- bind_rows(fitted_models, pooled_model) %>% select(group, everything())

all_results
于 2018-02-06T00:04:23.770 回答