출현 from this question on Math SE 다음과 같은 경우가 있습니다. 임의의 값으로 세트 ($array
)가있다원래 모집단을 모르는 경우 어떻게 새로운 표준 편차를 계산합니까?
는 세트 ($n
)의 값의 크기는, 그것이 ($mean
) 평균 및 표준 편차 ($s
)이다. sd()
기능을 가지고
$array = array(1, 5, 16, 3, ...);
$n = count($array);
$mean = array_sum($array)/count($array);
$s = sd($array);
가 PHP comments for the stats_standard_deviation()
function에 Origin의 :
// Function to calculate square of value - mean
function sd_square($x, $mean) { return pow($x - $mean,2); }
// Function to calculate standard deviation (uses sd_square)
function sd($array) {
// square root of sum of squares devided by N-1
return sqrt(array_sum(array_map("sd_square", $array, array_fill(0,count($array), (array_sum($array)/count($array)))))/(count($array)-1));
}
는 이제 $array
이 삭제되고 값이 더 이상 사용할 수 없습니다하지만 다른 $x
값 (의 익명의 이유로 가정 해 봅시다) 이 값은 $mean
및 $s
(표준 편차) 이내에서 계산됩니다.
나는 (this answer on Math SE에 따라)이 포뮬러에 의해 새로운 표준 편차를 계산하려고 :
function m_reverse($n, $mean, $x) {
return ($n * $mean + $x)/($n + 1);
}
function sd_reverse($s, $n, $x, $mean) {
return sqrt(1/$n * (($n - 1) * pow($s, 2) + ($x - $mean)));
}
m_reverse()
기능은 올바른 새 평균을 반환합니다. 그러나 sd_reverse()
기능은 작동하지 않습니다. 누가 잘못했는지 알아낼 수 있습니까? paranthesis의 부적절한 사용법일까요?
당신은 여기 내 구현의 코드 예제를 찾을 수 있습니다 http://3v4l.org/5mPDp
어떤 도움에 감사를!
경우 오프별로 하나? – Halcyon
나는 마지막'$ x- $ mean'을 제곱해야한다고 생각한다. – Teepeemm
@Halcyon 여기에서 전체 코드를 볼 수 있습니다 : http://3v4l.org/5mPDp –