加权在 R 的 'aov' 函数中不起作用
weighting not works in 'aov' function of R
我在通过 R 中的 aov
函数实现加权数据集时遇到了麻烦。
例如我的数据集“data_file”有目标变量“Y”和四个独立的变量命名(treat,V1,V2,V3)。
假设:
V1(2 组)和治疗(3 组)--> 分类,
V2 和 v3 --> 连续。
我想检查治疗组之间自变量的基线比较。
我运行aov
为此测试,例如:
base_V2_aov <- aov(data_file$V2 ~ data_file$treat)
base_V2_anov <- anova(base_V2_aov)
base_V2
它有效并显示“治疗”组之间 V2 的显着差异,但其他变量不显着,然后我决定根据 V2 和 运行 aov
加权数据测试对我的数据进行加权.
我使用Twang
包中的mnps
函数进行加权。
mnps.data <- mnps(treat ~ V2, data_file, estimand = "ATE", stop-method = "es.mean", n.trees=5000, varbose = F)
data_file$ weight <- get.weights(mnps.data, stop.method = "es.mean")
我在一个 Whosebug 的回答中读到 survey
包不支持单向方差分析测试的加权,但 aov
函数支持。
所以我 运行 这个代码:
base_V2_aov <- aov(data_file$V2 ~ data_file$trea, weights(data_file$weight))
base_V2_anov <- anova(base_V2_aov)
print(base_V2_anov)
显示错误:
Error: $ operator is invalid for atomic vectors
我试过了:
base_V2_aov <- aov(data_file$V2 ~ data_file$trea, weights(weight))
没有找到对象“weight”
我也检查过这个:
base_V2_aov <- aov(data_file$V2 ~ data_file$trea, weights(data_file))
没有显示错误,但是结果和没有加权的结果完全一样(我希望在没有加权的情况下根据显着差异进行更改)
我想知道 aov
函数中权重的合适“对象”是什么?
看来你应该使用:
weight = your weighting variable
在 aov
个参数中。
我复制了一些类似你的数据集,使用上面的代码后,组间比较的结果不同,这表明加权方法有效。
我在通过 R 中的 aov
函数实现加权数据集时遇到了麻烦。
例如我的数据集“data_file”有目标变量“Y”和四个独立的变量命名(treat,V1,V2,V3)。
假设:
V1(2 组)和治疗(3 组)--> 分类,
V2 和 v3 --> 连续。
我想检查治疗组之间自变量的基线比较。
我运行aov
为此测试,例如:
base_V2_aov <- aov(data_file$V2 ~ data_file$treat)
base_V2_anov <- anova(base_V2_aov)
base_V2
它有效并显示“治疗”组之间 V2 的显着差异,但其他变量不显着,然后我决定根据 V2 和 运行 aov
加权数据测试对我的数据进行加权.
我使用Twang
包中的mnps
函数进行加权。
mnps.data <- mnps(treat ~ V2, data_file, estimand = "ATE", stop-method = "es.mean", n.trees=5000, varbose = F)
data_file$ weight <- get.weights(mnps.data, stop.method = "es.mean")
我在一个 Whosebug 的回答中读到 survey
包不支持单向方差分析测试的加权,但 aov
函数支持。
所以我 运行 这个代码:
base_V2_aov <- aov(data_file$V2 ~ data_file$trea, weights(data_file$weight))
base_V2_anov <- anova(base_V2_aov)
print(base_V2_anov)
显示错误:
Error: $ operator is invalid for atomic vectors
我试过了:
base_V2_aov <- aov(data_file$V2 ~ data_file$trea, weights(weight))
没有找到对象“weight”
我也检查过这个:
base_V2_aov <- aov(data_file$V2 ~ data_file$trea, weights(data_file))
没有显示错误,但是结果和没有加权的结果完全一样(我希望在没有加权的情况下根据显着差异进行更改)
我想知道 aov
函数中权重的合适“对象”是什么?
看来你应该使用:
weight = your weighting variable
在 aov
个参数中。
我复制了一些类似你的数据集,使用上面的代码后,组间比较的结果不同,这表明加权方法有效。