[r] R에서 평균의 표준 오차를 찾는 방법은 무엇입니까?
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)
답변
보다 일반적으로 다른 매개 변수의 표준 오류의 경우 부트 스트랩 시뮬레이션에 부트 패키지를 사용하거나 직접 작성할 수 있습니다.