저는 R에서 그리려는 복잡한 함수로 고심하고 있습니다. 기본적으로 분포와 다른 종속 확률의 조합이므로 정규 분포를 수정해야합니다.어떻게 R에서이 복잡한 적분을 플로팅 할 수 있습니까?
가 어떻게이 R에 그릴 수 있습니다 :
마지막 공식은 다음과 같이 보일 것인가?
저는 R에서 그리려는 복잡한 함수로 고심하고 있습니다. 기본적으로 분포와 다른 종속 확률의 조합이므로 정규 분포를 수정해야합니다.어떻게 R에서이 복잡한 적분을 플로팅 할 수 있습니까?
가 어떻게이 R에 그릴 수 있습니다 :
마지막 공식은 다음과 같이 보일 것인가?
당신은 방정식을 가지고 있으므로, f(x)
정의에서 분명한 적분 항을 계산하려면 stats::integrate
을 사용하십시오. 그런 다음 예 : plot(0:1000, f(0:1000),t='l')
.
적분은 정규 분포의 누적 PDF이므로 (누락 된 정규화 계수 제외) pnorm
으로 계산할 수 있습니다.
sf <- 1
mf <- 0
f <- function(x) 1/(2*sf^2*pi)*exp(-.5*((x-mf)/sf)^2) *
(1 - sf*sqrt(2*pi)*pnorm(x, mf, sf))
curve(f, from=-2, to=2)
sf*sqrt(2*pi)
요소는 누락 된 정규화를 보완하기위한 것입니다. 나는 100 % 수학이 정확하다는 것을 확신하지 못하므로 직접 확인해보십시오.
편집 :Ben Bolker으로는 f
의 첫 번째 부분을 지적은 코드를 읽기 쉽게 만들기, dnorm
단순화 할 수있다.
f <- function(x) dnorm(x, mf, sf)/(sqrt(2*pi)*sf) *
(1 - sf*sqrt(2*pi)*pnorm(x, mf, sf))
이것은 훌륭한 솔루션, 고마워요 :)하지만 어쨌든, 어떻게 이런 식으로 정수를 입력 할 수 있습니까? –
여기에 "입력"하여 무엇을 의미하는지 모르겠습니다. 적분을 나타내거나 방정식을 R 코드로 변환 하시겠습니까? 방금 두 가지 작업을 했으므로 다른 기능이 있으면 위의 코드를 수정하면됩니다. 표준이 아닌 정수라면'Pnorm()'대신 @Carl이 제안한'integrate()'를 사용해야합니다. 또는 방정식을 플롯 영역에 그리시겠습니까? – Backlin
첫 번째 요소에'dnorm'을 사용하여 약간 단순화 할 수 있다고 생각합니다. (정규화 요소도 조정해야하지만) –
깔끔한! 나는 무한한 한계를 다룰 수있는 '통합'을 모른다. – Backlin