2012-02-10 5 views
5

나는 평균과 표준 편차가 4 개인 집단이 있습니다. 그랜드 평균과 그랜드 SD를 알고 싶습니다. 웅대 한 평균은 분명히 계산하기 쉽지만 R에는 편리한 유틸리티 함수 인 weighted.mean()이 있습니다. 유사한 기능이 표준 편차를 결합하기 위해 존재합니까?R의 표준 편차를 결합하는 기존 기능?

The calculation is not complicated하지만 기존 기능을 사용하면 코드를보다 명확하고 이해하기 쉽습니다.

보너스 질문,이 기능을 검색하는 데 사용하는 도구는 무엇입니까? 나는 그것이 저기에 있어야한다는 것을 알고 있지만, 나는 많은 수색을했고 그것을 찾을 수 없다. 감사!

+0

검색 질문과 관련하여 ** sos ** 패키지의'findFn'은 편리한 도구입니다. – joran

+0

@AndresT, 네, 인구가 겹치지 않습니다. –

+0

@ joran 고마워, 나는 그것에 대해 몰랐다, 나는 그 길을 찾기 시작할 것이다. 나는 '표준 편차'가 R 매뉴얼에서 대중적인 용어가 될 것이라고 추측하고있다. –

답변

4

인구가 겹치지 않습니까?

당신 경우 ([2]) combinevar (xbar, S, N)

xbar <- c(70,65) 
s<-c(3,2) 
n <- c(1,1) 
combinevar(xbar,s,n) 

및 표준 편차 SQRT 것이다 :

library(fishmethods) 
combinevar 

예컨대 위키의 예는 다음과 같이 작동 할 라이브러리를 다운로드하지 않으려면 다음과 같은 기능이 필요합니다.

combinevar <- 
function (xbar = NULL, s_squared = NULL, n = NULL) 
{ 
    if (length(xbar) != length(s_squared) | length(xbar) != length(n) | 
     length(s_squared) != length(n)) 
     stop("Vector lengths are different.") 
    sum_of_squares <- sum((n - 1) * s_squared + n * xbar^2) 
    grand_mean <- sum(n * xbar)/sum(n) 
    combined_var <- (sum_of_squares - sum(n) * grand_mean^2)/(sum(n) - 
     1) 
    return(c(grand_mean, combined_var)) 
} 
4

특정 패키지 또는 fu 하지만 Wikipedia의 페이지에서 자신의 기능을 쉽게 사용할 수 있습니다. 모집단에 중복이 없다고 가정하면 :

## N: vector of sizes 
## M: vector of means 
## S: vector of standard deviations 

grand.mean <- function(M, N) {weighted.mean(M, N)} 
grand.sd <- function(S, M, N) {sqrt(weighted.mean(S^2 + M^2, N) - 
             weighted.mean(M, N)^2)} 
+0

고맙다. 위키 백과에서 수식을 볼 때, 나는 당신이 한 것처럼 계산을 단순하게 보이게 만들 수 있다고 생각하지 않았습니다. 실제로 이것을 사용하는 것이지만, AndresT의 응답은이 질문을 찾는 다른 사람들에게 좀 더 포괄적입니다. 감사! –