R 中的 Eta/Eta 平方例程

aL3*_*3xa 1 r nonlinear-functions correlation

除了在应用 GLM 系列的某些技术之前使用的线性图形估计(注视散点图方法)之外,还有几种方法可以在算术上进行此估计(即没有图形)。

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

简单地说:R 中是否有 eta/eta-squared 的例程?

aL3*_*3xa 5

我仍然很震惊,我必须承认......没有简单直接的方法来计算 η 或 η 2 in R... 所以我根据维基百科页面编写了一个函数。开始:

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)
}
Run Code Online (Sandbox Code Playgroud)

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