[r] R에서 평균의 표준 오차를 찾는 방법은 무엇입니까?

R에서 평균의 표준 오류를 찾는 명령이 있습니까?



답변

이를 위한 내장 함수가있는 plotrix 패키지가 있습니다 : std.error


답변

표준 오차는 표준 편차를 표본 크기의 제곱근으로 나눈 값입니다. 따라서 자신 만의 기능을 쉽게 만들 수 있습니다.

> std <- function(x) sd(x)/sqrt(length(x))
> std(c(1,2,3,4))
[1] 0.6454972


답변

표준 오차 (SE)는 표본 분포의 표준 편차입니다. 샘플링 분포의 분산은 데이터의 분산을 N으로 나눈 것이고 SE는 그 제곱근입니다. 그 이해를 통해 SE 계산에서 분산을 사용하는 것이 더 효율적임을 알 수 있습니다. sdR 의 함수는 이미 하나의 제곱근을 수행합니다 (에 대한 코드 sd는 R에 있으며 “sd”를 입력하면 표시됨). 따라서 다음이 가장 효율적입니다.

se <- function(x) sqrt(var(x)/length(x))

함수를 좀 더 복잡하게 만들고 전달할 수있는 모든 옵션을 처리하기 var위해이 수정을 수행 할 수 있습니다.

se <- function(x, ...) sqrt(var(x, ...)/length(x))

이 구문을 사용하면 var누락 된 값을 처리 하는 방법과 같은 이점을 얻을 수 있습니다 . var명명 된 인수로 전달할 수있는 모든 항목을 이 se호출에 사용할 수 있습니다 .


답변

성가신 NA를 제거하는 위의 John의 답변 버전 :

stderr <- function(x, na.rm=FALSE) {
  if (na.rm) x <- na.omit(x)
  sqrt(var(x)/length(x))
}


답변

패키지 sciplot에는 내장 함수 se (x)가 있습니다.


답변

가끔이 질문으로 돌아 가면서이 질문은 오래 되었기 때문에 가장 많이 투표 한 답변에 대한 벤치 마크를 게시하고 있습니다.

@Ian 및 @John의 답변에 대해 다른 버전을 만들었습니다. 대신에 사용하는 length(x), 내가 사용 sum(!is.na(x))(NAS를 피하기 위해). 저는 10 ^ 6의 벡터를 1,000 번 반복해서 사용했습니다.

library(microbenchmark)

set.seed(123)
myVec <- rnorm(10^6)

IanStd <- function(x) sd(x)/sqrt(length(x))

JohnSe <- function(x) sqrt(var(x)/length(x))

IanStdisNA <- function(x) sd(x)/sqrt(sum(!is.na(x)))

JohnSeisNA <- function(x) sqrt(var(x)/sum(!is.na(x)))

AranStderr <- function(x, na.rm=FALSE) {
  if (na.rm) x <- na.omit(x)
  sqrt(var(x)/length(x))
}

mbm <- microbenchmark(
  "plotrix" = {plotrix::std.error(myVec)},
  "IanStd" = {IanStd(myVec)},
  "JohnSe" = {JohnSe(myVec)},
  "IanStdisNA" = {IanStdisNA(myVec)},
  "JohnSeisNA" = {JohnSeisNA(myVec)},
  "AranStderr" = {AranStderr(myVec)},
  times = 1000)

mbm

결과 :

Unit: milliseconds
       expr     min       lq      mean   median       uq      max neval cld
    plotrix 10.3033 10.89360 13.869947 11.36050 15.89165 125.8733  1000   c
     IanStd  4.3132  4.41730  4.618690  4.47425  4.63185   8.4388  1000 a
     JohnSe  4.3324  4.41875  4.640725  4.48330  4.64935   9.4435  1000 a
 IanStdisNA  8.4976  8.99980 11.278352  9.34315 12.62075 120.8937  1000  b
 JohnSeisNA  8.5138  8.96600 11.127796  9.35725 12.63630 118.4796  1000  b
 AranStderr  4.3324  4.41995  4.634949  4.47440  4.62620  14.3511  1000 a


library(ggplot2)
autoplot(mbm)

여기에 이미지 설명 입력


답변

보다 일반적으로 다른 매개 변수의 표준 오류의 경우 부트 스트랩 시뮬레이션에 부트 패키지를 사용하거나 직접 작성할 수 있습니다.