首页 文章

部分相关值大于R中的正常相关性

提问于
浏览
2

我正在研究一个大型数据集(700万行),试图了解各个自变量与因变量之间的相关性 . 当我运行pcor(数据集)时,如果在运行cor(数据集)时进行比较,则会产生更高的相关性 .

我的数据集有6个因变量和84个独立变量 . 我发现 each 因变量与84个独立变量的偏相关 .

我的自变量是文本类型的字数(75个类别),以及一些其他社会变量(所有数字)等性别 .

我的问题是:我不确定为什么在R中使用pcor()和使用cor()进行非常弱的相关时会得到高相关性 . 这是部分相关的正常行为吗?

1 回答

  • 3

    如果您想知道偏相关系数是否可以大于相关系数,请考虑以下示例 .

    我们来看看ppcor reference manual的样本数据

    df <- data.frame(
        hl = c(7,15,19,15,21,22,57,15,20,18),
        disp = c(0.000,0.964,0.000,0.000,0.921,0.000,0.000,1.006,0.000,1.011),
        deg = c(9,2,3,4,1,3,1,3,6,1),
        BC = c(1.78e-02,1.05e-06,1.37e-05,7.18e-03,0.00e+00,0.00e+00,0.00e+00 ,4.48e-03,2.10e-06,0.00e+00))
    

    根据原始论文,数据涵盖了酵母蛋白中序列和功能进化之间的关系,可以从[Drummond et al., Molecular Biology and Evolution 23, 327–337 (2006)]获得 .

    我们有兴趣探索 hldisp 之间的相互关系 .

    hl和disp之间的线性关系

    让我们首先绘制 hl 作为 disp 的函数

    library(ggplot2)
    ggplot(df, aes(hl, disp)) +
        geom_point()
    

    enter image description here

    标准(“完整”)Pearson的乘积矩相关系数由下式给出

    with(df, cor(hl, disp))
    #[1] -0.2378724
    

    从图和 cor 结果可以明显看出,如果不控制任何其他变量, hl 之间的线性关系就不会很强 .

    部分相关

    概括性地说明:给定混杂变量Z的X和Y之间的偏相关被定义为由Z上的Z和Y上的X的线性回归得到的残差的相关性 .

    让我们通过绘制两个相应的线性模型 hl ~ deg + BCdisp ~ deg + BC 的残差来可视化部分相关性 .

    ggplot(data.frame(
        res.x = lm(hl ~ deg + BC, df)$residuals, 
        res.y = lm(disp ~ deg + BC, df)$residuals)) +
        geom_point(aes(res.x, res.y))
    

    enter image description here

    两个残差的线性相关性非常明显,表明 hldisp 之间存在显着的偏相关 . 让我们通过计算 hldisp 之间的偏相关来确认,同时控制来自 degBC 的混杂效应

    pcor.test(df$hl, df$disp, df[, c("deg","BC")])
    #    estimate    p.value statistic  n gp  Method
    #1 -0.6720863 0.06789202 -2.223267 10  2 pearson
    

    结论

    当我们控制混杂变量时,Pearson在 hldisp 之间的乘积矩相关系数大于我们不控制混杂因素时的相关系数 .

相关问题