-1

I am working on a distribution whose pdf and cdf is $$f(x,\alpha,\beta)=\frac{(\frac{\beta}{\alpha})(\frac{x}{\alpha})^{\beta}}{(1+(\frac{x}{\alpha})^{\beta})^{2}}\frac{\sin(\frac{\pi}{\beta})}{(\frac{\pi}{\beta})}$$ $x>0$, $\alpha>0$, $\beta>0$ $$F(x)= \frac{\sin(\frac{\pi}{\beta})}{(\frac{\pi}{\beta})}\frac{1}{\beta}(\frac{x}{\alpha})^{1-\beta}\log{\left(1+\left(\frac{x}{\alpha}\right)^{\beta}\right)}-\frac{\frac{x}{\alpha}}{1+\left(\frac{x}{\alpha}\right)^{\beta}}-\frac{1-\beta}{\beta}\left[\frac{x}{\alpha}+\sum_{r=1}^{\infty}\frac{(-1)^{r}\left(\frac{x}{\alpha}\right)^{1+r\beta}}{r(1+r\beta)}\right]$$ clearly, cdf is not in neat form. So how do I generate data from this cdf in r as inverse cdf method can't be applied here? I am using following R program to generate sample from this dist but I am not able to justify every steps. Here is my code:

alpha=1.5;beta=3.2;

pdf=function(x)((beta/alpha)*((x/alpha)^beta)*sin(pi/beta))/(((1+(x/alpha)^beta)^2)*(pi/beta))

rand_smplfunc <- function(func, lower, upper){ x_values <- seq(lower,upper,by = 10^-3) sample(x = x_values, size = 1, replace = TRUE,prob = func(x_values)) }

replicate(10,rand_smplfunc(pdf,0,10))

0 Answers0