표준 편차가 0 일 때 정규 분포는 무엇입니까?

표준 편차가 0이면 정규 분포가 정의되지 않는다는 것을 알고 있지만 컴퓨터 알고리즘에서 모든 값이 동일한 경우를 처리해야합니다. 다음 메서드는 표준 편차가 0 인 경우에도 유효한 값을 반환해야합니다. 0으로 나누지 않도록이 방법을 어떻게 고칠 수 있습니까?

public static double NormalDist(double x, double mean, double standard_dev) { double fact = standard_dev * Math.Sqrt(2.0 * Math.PI); double expo = (x - mean) * (x - mean) / (2.0 * standard_dev * standard_dev); return Math.Exp(-expo) / fact; } 

내 생각은이 방법을 시작 부분에 삽입하는 것이 었습니다.

 if (standard_dev == 0.0) { return x == mean ? 1.0 : 0.0; } 

정확할까요?

댓글

  • 당신은 ' t " 수정 " $ \ sigma = 0 $에 대해 정규 분포의 PDF가 정의되지 않았습니다. ' " 수정 "
  • @Aksakal은 중요한 문제를 지적합니다. 알고리즘에서 정확히 어떻게 NormalDist를 사용 하시겠습니까?
  • 이것은 na ï 베이 즈 분류기. ' 학습 세트의 데이터를 기반으로 클래스를 선택하려고합니다. 나에게 매개 변수 세트의 모든 값이 동일하다면 결과에 영향을 미치지 않아야한다고 생각합니다. 예를 들어, 한 사람 (계급)이 남성인지 여성인지를 결정하기 위해 신발 크기가 분포 내에서 어떻게 떨어지는 지 살펴보고 있지만 분포에있는 모든 사람이 정확히 동일한 신발 크기를 갖는 경우, 신발 사이즈를 구별하는 데 사용할 수 없으며 고려 대상에서 제거해야합니다. 이 경우를 처리하려고합니다.
  • 답은이 메서드의 출력을 변경하는 것이 아니라 해당 값을 모두 버리는 것일 수 있습니다.

답변

표준 편차가 0이면 가우스 (일반) PDF가 Dirac 델타 함수

로 바뀝니다. a>. 표준 편차 0을 기존 표현식에 간단히 연결할 수는 없습니다. 예를 들어 PDF가 어떤 종류의 수치 적분에 연결되어 있으면 작동하지 않습니다. 적분을 수정해야합니다. 아래 예에서 가우스 밀도 $ f (x | \ mu, \ sigma ^ 2) $를 사용하여 함수 $ g (x) $의 평균값을 계산합니다.

$$ \ int g (x ) f (x | \ mu, \ sigma ^ 2) dx $$

제로 분산을 연결하면 델타 함수가됩니다. $$ \ int g (x) f (x | \ mu, 0) dx = \ int g (x) \ delta (x- \ mu) dx = g (\ mu) $$

코드는 이것을 인식 할 수 있어야합니다. 그렇지 않으면 실패합니다.

이 문제를 해결하는 한 가지 방법은 놀랍도록 간단합니다. $ \ sigma $의 아주 작은 값을 0 대신 Gaussian에 연결합니다. 상황에 맞는 $ \ sigma $를 선택해야합니다. “너무 작 으면”지수를 날려 버리고 적분이 작동하지 않거나 정밀도가 낮아집니다. 이것은 델타 함수의 알려진 가우스 근사 로 이동합니다. $$ \ delta (x) = \ lim _ {\ sigma \ to 0} \ mathcal N (0, \ sigma) $$

댓글

  • " 실패 여부 "는 기능 사양에 의존해야합니다. 의도가 단순히 확률 밀도의 연속 버전을 반환하는 것이라면 항상 0을 반환하는 함수가 정확합니다. 왜냐하면 Dirac 델타에는 평균이 아닌 모든 곳에서 밀도가 정의되어 있기 때문입니다. 반면에,이 함수가 ML 추정치를 계산하기위한 가능성 계산의 일부로 호출되는 경우 성공을 유발할 수있는 구현이 없습니다. 할 수있는 일은 오류 조건을 발생시키는 것뿐입니다.
  • @whuber, 부동 포인트 형식 은 양의 무한대를 지원합니다. 따라서 그는 PDF를 무한대로 설정할 수 있습니다. 문제는 ' 그의 가능성 최적화 루틴이 불연속으로 인해 작동하지 않는 것입니다. 따라서 저는 ' PDF를 사용하는 코드를 수정해야한다고 말합니다. 그는 ' 단지 PDF 만 엉망으로 만들 수는 없습니다
  • 위에 추가 정보와 함께 추가 댓글을 게시했습니다. ' Aksakal이 맞다고 생각합니다. 이 방법을 사용하는 코드를 수정해야합니다.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다