ich verwende cuhre von R2Cuba 1,1-0 für die Integration der folgenden FunktionIntegration mit cuhre
fn <- function(x) {
pnorm((-2-sum(sqrt(vecRho)*x))/sqrt(1-sum(vecRho)))*prod(dnorm(x))
}
wo vecRho ist ein Vektor von 6 Zahlen zwischen 0 und 0,1, dh
vecRho<-runif(6,0,0.1)
Per Definition liegt der Integrand fn zwischen 0 und 1. Die Integration wird voraussichtlich positiv sein. Jedoch unter Verwendung von cuhre das Ergebnis negativ wird, wenn die Länge des vecRho überschreitet 5.
NDIM<-length(vecRho)
cuhre(NDIM, 1, fn,
flags = list(verbose =0),
lower = rep(-10,NDIM),
upper = rep(10,NDIM))$value
[1] -0.4738284
Wenn darüber hinaus die Länge der vecRho> = 6 der absolute Wert der Integration erhöht, wenn die Länge der vecRho erhöht.
Gibt es etwas, was ich tun kann, um das zu beheben? Vielen Dank!
Es ist unklar, was ist die Bedeutung von 'prod (dnorm (x))'. Brauchen Sie wirklich PRODUKT aller Gaußkerne? –
Ja, prod (dnorm (x)) ist die Dichtefunktion. Da alle Variablen unabhängig sind, ist die Dichte der n-dim-Zufallsnormalverteilung effektiv das Produkt von dnorm (x). – Lamothy