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

glmer中KhatriRao报错:(p <- ncol(X)) == ncol(Y)不成立,求解决

问题分析与解决方案

核心错误

你代码里的关键问题是公式中错误地使用了data$列名的写法。lme4包的glmer函数在指定data参数后,公式内应该直接使用变量名,不需要添加数据框前缀。这种写法会让模型无法正确识别分组变量((1|Place))的结构——data$Place被当作独立于数据框的外部向量传入,而非数据框内的分组变量,这也是你更换Place编码形式仍报错的原因。

修正后的代码

把公式里所有data$前缀去掉,直接使用变量名即可:

glmer(Changed_Use ~ Country + Sex + Age + Birthplace_Residence + (1|Place),
      data = data,
      family = binomial)

额外注意事项

从你提供的数据结构来看,Sex列是字符型的0/1值,建议先将其转换为数值型或因子型,避免模型处理字符变量时出现潜在问题:

# 转换为数值型
data$Sex <- as.numeric(data$Sex)
# 或转换为因子型(适合分类变量逻辑)
data$Sex <- factor(data$Sex, levels = c("0", "1"), labels = c("Female", "Male"))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 11:44:58