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

基于R语言的年龄、政党立场与大麻合法化态度统计检验求助

没问题,针对你要分析年龄分组、政党立场与大麻合法化态度之间的关系并获取P值的需求,我整理了几种实用的统计检验方法和对应R代码,帮你完成分析:

方法1:三维列联表与分层卡方检验

这种方法适合从分类变量的关联角度,同时考察三个变量的交互关系:

# 构建三维列联表(年龄分组×政党立场×大麻态度)
tab <- xtabs(~ Agecat1 + PartyIDN + CanLegal, data = Parties)

# 可选:格式化查看列联表,直观了解数据分布
ftable(tab)

# 1. Mantel-Haenszel分层卡方检验(控制一个变量后,检验另外两个变量的关联)
library(DescTools)
ChisqTest(tab, method = "mantelhaen")

# 2. 对数线性模型检验交互作用
# 先拟合包含所有双向交互的全模型
model_full <- loglin(tab, list(c(1,2), c(1,3), c(2,3)))
# 再拟合去掉年龄×政党交互的简化模型
model_no_interaction <- loglin(tab, list(c(1,3), c(2,3)))
# 比较两个模型,判断交互项是否显著
anova(model_no_interaction, model_full)
  • Mantel-Haenszel检验的P值:可以告诉你控制年龄(或政党)后,另一变量与大麻态度的关联是否显著;
  • 模型比较的P值:若小于0.05,说明年龄和政党的交互作用对大麻态度有显著影响(即不同政党支持者的年龄态度差异存在区别)。
方法2:二项逻辑回归(更推荐,适配二分类因变量)

因为CanLegal是二分类变量,逻辑回归能直接量化自变量对态度的影响,P值解读更直观:

# 可选:将二分类因变量转换为0-1编码(方便结果解读)
Parties$CanLegal_bin <- ifelse(Parties$CanLegal == "should be legal, only licenced shops", 1, 0)

# 构建包含交互项的逻辑回归模型
model_logit <- glm(CanLegal_bin ~ Agecat1 * PartyIDN, data = Parties, family = binomial())

# 查看模型结果,提取关键P值
summary(model_logit)

结果解读:

  • Agecat1各水平的P值:固定政党立场时,不同年龄组的大麻态度差异是否显著;
  • PartyIDN的P值:固定年龄时,保守党与工党支持者的态度差异是否显著;
  • Agecat1:PartyIDN交互项的P值:年龄与政党的共同影响是否显著。
补充:两两变量的基础卡方检验

如果想先单独验证两两变量的关联,可以用:

# 年龄分组与大麻态度的卡方检验
chisq.test(table(Parties$Agecat1, Parties$CanLegal))

# 政党立场与大麻态度的卡方检验
chisq.test(table(Parties$PartyIDN, Parties$CanLegal))

注意:如果列联表中存在单元格期望频数<5的情况,建议用fisher.test()替代chisq.test(),避免结果偏差。

内容的提问来源于stack exchange,提问作者Kaoru Takeda Manimaran

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 08:42:54