我的问题是如何使用逆CDF方法从逻辑CDF生成R中的样本。逻辑密度为p(θ)= exp(θ)/(1 + exp(θ))^ 2
这是该方法的算法:
1: for t = 1 to T do
2: sample q(t) ∼ Unif(0, 1)
3: θ(t) ← F^−1(q(t))
4: end for
这是我的代码,但它只会生成一个相同数字的向量。结果应该是对数凹形的,但是如果我将其放在直方图中,显然不会是这样,那是什么问题呢?
首先将T定义为您从均匀分布中抽取的抽奖次数
T<-100000 sample_q<-runif(T,0,1)
似乎
plogis
将为您提供累积分布函数,所以我想我可以取其反函数:
generate_samples_from_logistic_CDF <- function(p) { for(t in length(T)) cdf<-plogis((1+exp(p)/(exp(p)))) inverse_cdf<-(1/cdf) return(inverse_cdf) }
应该generate_samples_from_logistic_CDF(sample_q)但是相反,它只为我提供了相同的价值
我的问题是如何使用逆CDF方法从逻辑CDF生成R中的样本。 logistic密度为p(θ)= exp(θ)/(1 + exp(θ))^ 2这是该方法的算法:1:对于t = 1 ...
qlogis()
,所以应该可以: