R中的Eta / Eta平方例程

时间:2010-06-09 01:48:24

标签: r correlation nonlinear-functions

除了在应用GLM家族的某种技术之前使用的线性度(凝视散点图方法)的图形估计,有几种方法可以算术地进行这种估计(即没有图形)。

现在,我将专注于费舍尔的 eta-squared - 相关比率:算术上,它等于平方Pearson的 r (确定系数: r 2 )如果两个变量之间的关系是线性的。因此,您可以比较 eta r 的值,并对关系类型(线性或非线性)进行评估。它提供了由自变量(线性或非线性)解释的因变量的方差百分比信息。因此,您可以在不满足线性假设时应用它。

简单地说:R中是否存在eta / eta平方的例程?

2 个答案:

答案 0 :(得分:4)

我仍然很震惊,我必须承认......在R中计算η或η 2 并没有简单明了的方法...所以我写了一个函数到Wikipedia page。这是:

eta <- function(x, squared = FALSE, ...) {
    stopifnot(is.list(x))
    ## unlist
    y <- unlist(x)
    ## group mean
    mg <- rapply(x, mean, ...)
    ## group size
    ng <- rapply(x, length, ...)
    ## total mean
    mtot <- mean(y, ...)
    ## SSb
    ssb <- sum(ng * (mg - mtot) ^ 2)
    ## SSt
    sst <- sum((y - mtot) ^ 2)
    # get eta-squared
    if (squared) {
      res <- ssb/sst
    # get eta
    } else {
      res <- sqrt(ssb/sst)
    }
    return(res)
}

所以这会产生另一个问题,我即将发布...你用什么来检查线性?但是,我无法计算p值,所以如果有人知道怎么做...请告诉我!

答案 1 :(得分:1)

在阅读完这个问题后,在答案中尝试了这个功能,我才发现了这个 library "sjstats"。 有一个Eta-Squared功能包括在内。 也许它对未来的寻求者有帮助。