【问题标题】:impute missing values using binomial distribution in R使用 R 中的二项式分布估算缺失值
【发布时间】:2018-12-30 20:25:30
【问题描述】:

我有一列有一些缺失值 (q1 = 9) ,我想根据 q1=1(=yes) 和 q1 =2(=no) 二项分布来估算它,如下面的 SPSS 脚本。我找不到 R 等效函数

SPSS 代码:

SPSS version :IF  q_1 = 9 x=RV.BINOM(1,0.976) .
if q_1 = 9 & x=1 q_1 = 1.
if q_d1 = 9 & x=0 q_1 = 2.

栏目摘要是这样的

 q_1    n    percent
    1 5868   97.56%
    2  142   2.36%
    9    5   0.08%

【问题讨论】:

    标签: r dplyr spss imputation


    【解决方案1】:

    这个呢:

    library(tidyverse)
    
    vect1 <- runif(10000, 0, 1)
    vect1a <- case_when(
      vect1 < 0.9756 ~ 1,
      vect1 < 0.9756 + 0.0236 ~ 2,
      TRUE ~ 9)
    df1 <- tibble(q1 = vect1a)
    
    pct1 <- 0.9756 / (1 - 0.008)
    df1a <-  df1 %>% 
      mutate(rand_id = runif(nrow(.), 0, 1),
             q1a = case_when(q1 < 9 ~ q1,
                             rand_id < pct1 ~ 1,
                             TRUE ~ 2))
    

    Mice 包也可以处理插补缺失值,但不确定它是否使用二项分布。

    【讨论】:

      【解决方案2】:

      您可以使用sample 生成估算值。

      Missing = which(q1 == 9)
      q1[Missing] = sample(2, length(Missing), prob=c(0.976, 0.024))
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-06-23
        • 2019-11-02
        • 1970-01-01
        • 1970-01-01
        • 2017-09-26
        • 1970-01-01
        • 2014-04-12
        相关资源
        最近更新 更多