如何在进行加权的时候到底哪里错了,跟课程演示最终的结果不一样?

在还原课程R语言进行倾向性评分时,前面匹配得出的结果是一样的,后面加权出了问题,认真对了代码,感觉没问题,也没提示出错,就是最后结果不一样,加权后的结果特别差

img

我得到的图

img

应该得到的图

img

试试别的倾向性评分加权方法,比如倾向性评分匹配或者倾向性评分加权,再看看你的数据是不是有缺失值,异常值

R语言基于Matching包进行倾向评分匹配(PSM)
可以参考下
https://blog.csdn.net/dege857/article/details/124533972

检查是否存在异常值、缺失值或者数据编码方面的问题。还有就是检查代码和参数等方面的是否有差异。如果你是对照书本上的来写的话,尤其要注意,一个一个字对照,看是否有出入的地方。

检查一下数据有没有问题

试试倾向性评分加权法

这样试一下,如有帮助,麻烦点个采纳

# 加载所需包
library(survey)
library(TableOne)

# 添加加权得分
rhc$ow <- ifelse(rhc$swang1 == 1, 1 - rhc$ps, rhc$ps)

# 创建加权设计
rhcSvy <- svydesign(ids = ~1, data = rhc, weights = ~ow)

# 构建Table One表格
vars <- c("var1", "var2", "var3")  # 将"var1""var2""var3"替换为实际的变量名
tabWeighted <- CreateTableOne(vars = vars, strata = "swangl", data = rhcSvy, test = FALSE)

# 显示带SMD的Table One表格
print(tabWeighted, smd = TRUE)

以下答案参考newbing,回答由博主波罗歌编写:
对于加权的问题,有几个可能的原因导致你的结果与预期不一致:

  1. 加权方法有误:在进行加权时,你需要确保使用了正确的加权方法。常见的加权方法包括等权重加权和倾向性分数加权。如果你使用了错误的加权方法,那么结果可能会出现不一致。

  2. 加权数据有误:加权需要使用正确的数据进行计算。请确保你使用的是正确的数据集,并且没有漏掉任何必要的数据。

  3. 加权变量选择有误:在进行加权时,你需要选择正确的变量来进行加权。这可能包括选择适当的控制变量或倾向性匹配得分。请确保你选择的变量是与你的研究问题相关的,并且能够代表潜在的混杂因素。

  4. 加权计算有误:在进行加权计算时,你需要确保使用正确的公式和算法。请仔细检查你的计算过程,确保没有出现错误或遗漏。

下面是一个示例代码,展示了如何在R语言中进行倾向性分数加权:

# 加载必要的包
library(matchit)
library(survey)

# 构建倾向性分数模型
model <- matchit(treatment ~ covariate1 + covariate2, data = dataset, method = "nearest")

# 得到倾向性分数
pscore <- pscore(model)

# 构建加权模型
design <- svydesign(ids = ~1, weights = pscore, data = dataset)
model_weighted <- svyglm(outcome ~ treatment, design = design, family = binomial())

# 模型结果
summary(model_weighted)

请根据你的具体情况修改上述代码,并确保你正确地选择了倾向性分数模型和加权模型的变量,并使用了正确的加权方法。如果问题仍然存在,请尝试进一步检查数据和计算过程,或者参考更多的文献和教程。
如果我的回答解决了您的问题,请采纳!