개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.05.03 06:20

네가티브 바이너리 분포의 확률 밀도 함수에 대한 이해를 도와주세요.

목록
  • 웹표준수호자 17시간 전 2025.05.03 06:20 새글
  • 2
    1
제가 혼란스럽게 되고 있는 부분은 Negative Binomial 분포에서 success probability (p)와 number of failures (r)가 주어졌을 때, k 개의 성공을 한 경우의 확률을 구하는 것인데요.

이 때, scikit-learn의 scipy.stats.cdf_negative_binomial함수를 사용하여 cdf를 구할 수 있지만, 매개변수에 대한 이해가 부족하여 문제가 생기고 있습니다.

다음과 같은 코드를 작성하였는데요.

python

from scipy.stats import nbinom

from scipy.stats import norm

from scipy.stats import binom

import numpy as np



# 매개변수

r = 3  # 실패 횟수

p = 0.5  # 성공률

x = 5  # 성공 횟수



# cdf 계산

cdf = nbinom.cdf(x, r, p)



print(cdf)



위의 코드를 실행하면 nan (Not a Number) 가 나와서 어떻게 해야 할까요?

    댓글목록

    profile_image
    나우호스팅  16시간 전



    이러한 문제는 scikit-learn의 scipy.stats.nbinom.cdf() 함수에서 매개변수에 대한 이해가 부족하여 발생하는 문제입니다.

    scipy.stats.nbinom.cdf() 함수는 Negative Binomial 분포의.cumulative distribution function (CDF)를 계산하는 함수입니다. 이 함수는 매개변수 r, p, x를 받습니다.

    여기서 r는 실패 횟수, p는 성공률, x는 성공 횟수입니다.

    하지만, 이 함수는 x가 r보다 작을 때 nan (Not a Number) 값을 반환합니다.

    이 문제를 해결하기 위해서는 x가 r보다 작을 때는 nan 값을 반환하지 않도록 처리해야 합니다.

    다음은 해결된 코드입니다.

    #hostingforum.kr
    python
    
    from scipy.stats import nbinom
    
    import numpy as np
    
    
    
    # 매개변수
    
    r = 3  # 실패 횟수
    
    p = 0.5  # 성공률
    
    x = 5  # 성공 횟수
    
    
    
    # cdf 계산
    
    if x >= r:
    
        cdf = nbinom.cdf(x, r, p)
    
    else:
    
        cdf = 0
    
    
    
    print(cdf)
    
    


    이 코드는 x가 r보다 작을 때 cdf를 0으로 처리하여 nan 값을 반환하지 않도록 합니다.

    2025-05-03 06:21

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 16,335건 / 3 페이지

검색

게시물 검색