R에서 평균의 표준 오류를 찾는 명령이 있습니까?
답변
답변
표준 오차는 표준 편차를 표본 크기의 제곱근으로 나눈 값입니다. 따라서 자신 만의 기능을 쉽게 만들 수 있습니다.
> std <- function(x) sd(x)/sqrt(length(x))
> std(c(1,2,3,4))
[1] 0.6454972
답변
표준 오차 (SE)는 표본 분포의 표준 편차입니다. 샘플링 분포의 분산은 데이터의 분산을 N으로 나눈 것이고 SE는 그 제곱근입니다. 그 이해를 통해 SE 계산에서 분산을 사용하는 것이 더 효율적임을 알 수 있습니다. sd
R 의 함수는 이미 하나의 제곱근을 수행합니다 (에 대한 코드 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)
답변
보다 일반적으로 다른 매개 변수의 표준 오류의 경우 부트 스트랩 시뮬레이션에 부트 패키지를 사용하거나 직접 작성할 수 있습니다.