m0_74067393 2024-09-10 16:32 采纳率: 0%
浏览 55
已结题

使用spss做psm(倾向性评分匹配)遇到问题

运行之后显示
FUN(...): Calling var(x) on a factor x is defunct.
Use something like 'all(duplicated(×)E-1L])' to test for a constant vector.
是什么原因呢?
如何仅用spss解决

  • 写回答

21条回答 默认 最新

  • 阿里嘎多学长 2024-09-10 16:33
    关注
    获得0.30元问题酬金

    AIGC生成:


    使用 SPSS 进行倾向性评分匹配(PSM)

    你遇到的问题是 SPSS 中的 FUN(...): Calling var(x) on a factor x is defunct 错误,这个错误是因为你在使用 var() 函数时,输入的变量 x 是一个因子变量,而不是一个连续变量。

    在进行 PSM 时,我们需要将因子变量转换为连续变量,以便使用 matchit 语句进行匹配。下面是一个示例代码:

    * 设置因子变量为连续变量。
    RECODE x (1=0 2=1) INTO x_cont.
    EXECUTE.
    
    * 使用 matchit 语句进行匹配。
    MATCH IT table=table1
      TO table=table2
      USING x_cont
      BY x_cont
      CALLOPTIONS MAXITER=1000.
    

    在上面的代码中,我们使用 RECODE 语句将因子变量 x 转换为连续变量 x_cont。然后,我们使用 MATCH IT 语句进行匹配,使用 x_cont 作为匹配变量。

    假设我们有两个数据表 table1table2,其中 table1 包含了待匹配的观察值,table2 包含了对照组的观察值。我们可以使用以下示例数据:

    * 数据表 table1
      x  y
      1  10
      1  20
      2  30
      2  40
    
    * 数据表 table2
      x  y
      1  50
      1  60
      2  70
      2  80
    

    在上面的示例中,我们可以使用 MATCH IT 语句将 table1table2 进行匹配,使用 x_cont 作为匹配变量。输出结果将是一个匹配后的数据表,包含了匹配后的观察值。

    注意:在实际应用中,需要根据具体情况选择合适的匹配算法和参数。

    评论

报告相同问题?

问题事件

  • 系统已结题 9月18日
  • 修改了问题 9月10日
  • 创建了问题 9月10日