@ocram Ansatz wird sicherlich funktionieren. In Bezug auf die Abhängigkeitseigenschaften ist es jedoch etwas restriktiv.
Eine andere Methode besteht darin, eine Kopula zu verwenden, um eine gemeinsame Verteilung abzuleiten. Sie können Randverteilungen für den Erfolg und das Alter (wenn Sie über Daten verfügen, ist dies besonders einfach) und eine Copula-Familie angeben. Wenn Sie die Parameter der Copula variieren, ergeben sich unterschiedliche Abhängigkeiten, und verschiedene Copulafamilien ergeben verschiedene Abhängigkeitsbeziehungen (z. B. starke Abhängigkeit vom oberen Schwanz).
Eine aktuelle Übersicht dazu in R über das Copula-Paket finden Sie hier . Weitere Informationen zu Paketen finden Sie auch in der Diskussion in diesem Dokument.
Sie brauchen jedoch nicht unbedingt ein ganzes Paket. Hier ist ein einfaches Beispiel mit einer Gaußschen Kopula, einer Grenzerfolgswahrscheinlichkeit von 0,6 und einem gammaverteilten Alter. Variiere r, um die Abhängigkeit zu kontrollieren.
r = 0.8 # correlation coefficient
sigma = matrix(c(1,r,r,1), ncol=2)
s = chol(sigma)
n = 10000
z = s%*%matrix(rnorm(n*2), nrow=2)
u = pnorm(z)
age = qgamma(u[1,], 15, 0.5)
age_bracket = cut(age, breaks = seq(0,max(age), by=5))
success = u[2,]>0.4
round(prop.table(table(age_bracket, success)),2)
plot(density(age[!success]), main="Age by Success", xlab="age")
lines(density(age[success]), lty=2)
legend('topright', c("Failure", "Success"), lty=c(1,2))
Ausgabe:
Tabelle:
success
age_bracket FALSE TRUE
(0,5] 0.00 0.00
(5,10] 0.00 0.00
(10,15] 0.03 0.00
(15,20] 0.07 0.03
(20,25] 0.10 0.09
(25,30] 0.07 0.13
(30,35] 0.04 0.14
(35,40] 0.02 0.11
(40,45] 0.01 0.07
(45,50] 0.00 0.04
(50,55] 0.00 0.02
(55,60] 0.00 0.01
(60,65] 0.00 0.00
(65,70] 0.00 0.00
(70,75] 0.00 0.00
(75,80] 0.00 0.00