我目前正在进行一项荟萃分析,并汇总了某种疾病的患病率。我想检查风险因素与所述流行率的任何关联,例如性别、种族和疾病分类(我将所有输入作为比例)。请问什么是最好的前进方式?
回归比例(作为因变量和自变量)的最佳方法是什么?
机器算法验证
回归
部分
元回归
2022-04-10 18:27:21
1个回答
假设我们有一个模型,例如
其中和是多个样本中的一些测量值。现在,如果我们引入第三个变量,例如每个样本中的受试者数量或每个人口的大小,并且我们希望形成另一个模型来处理比例,我们可以有模型
现在应该很明显,由于出现在两侧的分母中,因此两侧是“耦合的”,因此称为数学耦合。
R 中的一个简单示例可以说明这一点。为简单起见,我们独立地从标准正态分布中模拟三个变量:
> set.seed(1)
> x <- rnorm(100)
> y <- rnorm(100)
> cor(x,y)
[1] -0.0009943199
...因此相关性接近于零。或者在线性回归中:
> summary(lm(y~x))
Call:
lm(formula = y ~ x)
Residuals:
Min 1Q Median 3Q Max
-1.8768 -0.6138 -0.1395 0.5394 2.3462
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -0.03769 0.09699 -0.389 0.698
x -0.00106 0.10773 -0.010 0.992
Residual standard error: 0.9628 on 98 degrees of freedom
Multiple R-squared: 9.887e-07, Adjusted R-squared: -0.0102
F-statistic: 9.689e-05 on 1 and 98 DF, p-value: 0.9922
所以估计值接近于零,R^2 也是如此。
现在我们引入第三个变量:
> z <- rnorm(100)
> cor(x/z, y/z)
[1] 0.9168795
突然之间相关性超过了 0.9。或回归:
> summary(lm(I(y/z) ~ I(x/z)))
Call:
lm(formula = I(y/z) ~ I(x/z))
Residuals:
Min 1Q Median 3Q Max
-45.996 -4.733 -2.784 -1.524 214.929
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 2.74090 2.53884 1.08 0.283
I(x/z) 1.44965 0.06375 22.74 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 25.35 on 98 degrees of freedom
Multiple R-squared: 0.8407, Adjusted R-squared: 0.839
F-statistic: 517.1 on 1 and 98 DF, p-value: < 2.2e-16
...并且斜率的估计值高于零,p 值非常小,R^2 为 0.8407,即 0.9168795^2
值得注意的是,这个例子是相当极端的,因为所有的变量都是标准正态的,这引起了最大可能的数学耦合效应。当变量在不同的尺度、不同的方差、不同的类型或相互关联时,数学耦合的影响不那么明显,但仍然存在。
因此,在处理比例时建议格外小心。