You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在R中开展选择实验时的WTP计算问题求助

R语言计算选择实验WTP的问题解决方案

问题梳理

你在开展可持续产品选择实验的WTP(支付意愿)计算时,使用两种方法均遇到错误:一是glmer搭配wtp.gmnl报错,二是logitr包因obsID设置错误无法建模。

核心数据问题

你的数据缺少选择任务ID:每个受访者(ID列)会完成多个选择任务,每个任务包含若干备选方案,同一任务下的所有方案需要共享一个任务ID,这是离散选择模型建模的核心要求。


第一种方法(glmer + WTP计算)的修复

错误根源

  1. indv变量赋值错误:你将其设为固定字符串,而非引用受访者ID列,导致随机截距无效。
  2. 未定义choice变量:模型中(1|choice)的choice未创建,需要生成选择任务ID。
  3. 工具不兼容:wtp.gmnl仅适配gmnl包模型,无法直接用于lme4的glmer模型。

修复步骤

  1. 生成必要变量:
    library(dplyr)
    # 假设每个选择任务包含3个备选方案,根据你的实验设计调整n()后的除数
    db <- db %>%
      group_by(ID) %>%
      mutate(
        indv = ID, # 正确绑定受访者ID
        choice_task = rep(1:(n()/3), each=3) # 生成选择任务ID
      ) %>%
      ungroup()
    
  2. 重构glmer模型:
    library(lme4)
    model <- glmer(
      chosen ~ general_sust + ecosust + socialsust + price + (1|indv) + (1|choice_task),
      data = db,
      family = binomial
    )
    
  3. 手动计算WTP:
    WTP公式为「属性系数 / (-价格系数)」,直接提取模型系数计算:
    coefs <- fixef(model)
    price_coef <- coefs["price"]
    # 计算各属性水平相对于基准(none)的WTP
    wtp <- coefs[!names(coefs) %in% c("(Intercept)", "price")] / (-price_coef)
    print(wtp)
    

第二种方法(logitr包)的修复

错误根源

obsID需要的是选择任务ID(同一任务下的所有选项共享同一ID),但你用了受访者ID,导致同一obsID对应多个不同任务,违反了logitr的要求。

修复步骤

  1. 生成选择任务ID:
    db <- db %>%
      group_by(ID) %>%
      mutate(
        obsID = rep(1:(n()/3), each=3) # 按任务分组,每个任务下的选项共享ID
      ) %>%
      ungroup()
    
  2. 转换结果变量类型:
    将chosen列的WAHR/FALSCH转为0/1数值型:
    db$chosen <- ifelse(db$chosen == "WAHR", 1, 0)
    
  3. 建模并计算WTP:
    library(logitr)
    # 构建模型,若需随机系数模型,添加randPars参数;否则可省略
    model <- logitr(
      data    = db,
      outcome = "chosen",
      obsID   = "obsID",
      pars    = c("price", "ecosust", "socialsust", "general_sust")
    )
    # 计算WTP
    wtp_result <- wtp(model, priceName = "price")
    print(wtp_result)
    

重要提示

  • 务必根据你的实际实验设计调整选择任务ID的生成逻辑(比如每个任务的选项数量)。
  • 分类属性会被自动处理为虚拟变量,WTP结果是各水平相对于基准水平(如none)的支付意愿差值。

内容的提问来源于stack exchange,提问作者sabrisabrisabri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 13:25:25