나는 잘린 가우스 분포의 모멘트 (평균 및 분산)를 나타내는 두 개의 방정식을 가지고 있습니다.두 개의 비선형 방정식이있는 솔루션에서 주어진 파라미터 값 찾기 R
trunc_moments <- function(moments, a, b){
require(truncnorm)
mu <- moments[1]
sigma <- moments[2]
alpha <- (a - mu)/sigma; beta <- (b - mu)/sigma
mu_trunc <- mu + sigma*
((dnorm(alpha, mu, sigma) - dnorm(beta, mu, sigma))/
(pnorm(beta, mu, sigma) - pnorm(alpha, mu, sigma)))
sigma_trunc <- sigma^2 * (1 +
((alpha*dnorm(alpha, mu, sigma) - beta*dnorm(beta, mu, sigma))
/(pnorm(beta, mu, sigma) - pnorm(alpha, mu, sigma))) -
((dnorm(alpha, mu, sigma) - dnorm(beta, mu, sigma))
/(pnorm(beta, mu, sigma) - pnorm(alpha, mu, sigma)))^2)
return(c(mu_trunc, sigma_trunc))
}
을 감안할 때 mu
및 sigma
이, 함수가 mu_trunc
및 sigma_trunc
반환 : 나는 그들을 계산하기 위해 다음과 같은 기능을 내장.
trunc_moments(c(0.25, 0.02), a=0, b=1)
지금, 나는 반대 결과를 얻을 싶습니다 : 함수, mu_trunc
및 sigma_trunc
주어, 나는 mu
및 sigma
의 값을 구할 수 있습니까?
나는 nleqslv R 패키지로 뭔가를 시도했지만 이것이 내가 무엇을 찾고 있는지 확실하지 않습니다.
library(nleqslv)
nleqslv(c(0.25, 0.0004), trunc_moments, a = 0, b = 1)$x
pf'trunc_moments'를 호출하면 오류 메시지가 나타납니다. 'trunc_moments'는'moments' 인수에 대한 벡터를 기대하기 때문에'trunc_moments (c (0.25, 0.02), a = 0, b = 1)'이어야합니다. – Bhas