【问题标题】:Anesrake run error when executing multiple target variables执行多个目标变量时 Anesrake 运行错误
【发布时间】:2016-06-15 17:36:24
【问题描述】:

我目前正在尝试在 R 中执行 anesrake 函数(anesrake 包 https://cran.r-project.org/web/packages/anesrake/index.html 的一部分,它根据样本属性集对总体属性集进行加权)以近似多组变量的权重排名。

我有一个样本数据表 testData:

Index   GENDER   AGE    
1       Female   18-24  
2       Female   35-64  
3       Male     65+    

注意:年龄范围有 6 个等级 - 18-24,25-34,35-44,45-54,55-64,65+

然后,我的人口数据有一组 2 个列表:

GENDER <- c(.49,.51)
AGE <- c(.08,.1,.12,.2,.2,.3)

然后我在原始表上创建一组目标变量和一个 CASEID 列:

targets <- list(GENDER, AGE)
names(targets) <- c("GENDER", "AGE")
testData$CASEID <- 1:length(testData$GENDER)

我终于看到人口数据与样本数据的差异:

> anesrakefinder(targets, testData, choosemethod = "total")
   GENDER       AGE 
0.1495337 0.3668394 

但是当我使用 anesrake 函数做最终分析时,我得到了抛出的错误:

> anesrake(inputter=targets,dataframe=testData,caseid=testData$CASEID)
Error in rakeonvar.default(mat[, i], inputter[[i]], weightvec) : 
  number of variable levels does not match number of weighting levels
In addition: Warning message:
In rakeonvar.default(mat[, i], inputter[[i]], weightvec) :
  NAs introduced by coercion

我一直在关注两个关于如何使用 anesrake 的“教程”,但我仍然做得不够。这些是下面的教程:

http://sdaza.com/survey/2012/08/25/raking/

http://surveyinsights.org/wp-content/uploads/2014/07/Full-anesrake-paper.pdf

您能提供的任何帮助将不胜感激。

干杯,

学习

【问题讨论】:

  • 你有没有找到绕过这个的方法?
  • 很遗憾没有:(
  • 嗨@StuRichards!这是解决了吗?我也遇到了同样的错误。

标签: r survey weighting


【解决方案1】:

您需要使用以下示例将目标变量的级别标记为与数据变量的级别相同-

names(targets$agecat1) <- levels(rak2$agecat1)
names(targets$newpayer) <- levels(rak2$newpayer)

【讨论】:

    【解决方案2】:

    我刚刚通过将数据从字符转换为因子解决了同样的问题。

    您可以尝试以下方法:

    testData$GENDER <- as.factor(testData$GENDER) 
    testData$AGE <- as.factor(testData$AGE)
    

    【讨论】:

    • 这应该被标记为解决方案 - 它有效!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-31
    • 2014-08-27
    • 1970-01-01
    • 1970-01-01
    • 2018-11-26
    相关资源
    最近更新 更多