2014-03-27 78 views
0

我已經寫了一個代碼來生成R中的邏輯斯蒂隨機變量,但截斷在0.2和0.5之間。任何人都可以幫助正確寫入,尤其是在條件允許的情況下。謝謝。模擬生成R中截斷的邏輯斯蒂分佈隨機數

<##The Logistic distribution## 
ns=10 
for(i in 1:100){ 
rtruncl=function(u,a,b,alpha1,alpha2) 
#error: { 
qalpha1 = log(alpha1/(1-alpha1)) 
qalpha2 = log((1-alpha2)/alpha2) 
X=a+b*log(u/(1-u)) 
u=runif(ns) 
if((X >= qalpha1) && (X <= qalpha2)){ 
# error: } 
a=0; b=2 ##a is a location parameter and b is a scale parameter## 
t1=rtruncl(u,a,b, 0.2,0.5) 
t1 
} 
} #closed the for loop 
+0

你能否修正格式? – krlmlr

+0

好吧,會這樣做 – user3407190

+0

@krlmlr現在希望它可以。 – user3407190

回答

0

您可以用做內置的物流配送功能於R(例如,rlogis(...),與truncdist包一起。

library(truncdist) 
location <- 0 
scale <- 2 
X <- rlogis(1000, location=location, scale=scale) 
Y <- rtrunc(1000, spec="logis", a=-5,b=5, location=location, scale=scale) 
par(mfrow=c(1,2)) 
hist(X, xlim=c(-10,10), breaks=30, freq=F, col="lightgreen") 
hist(Y, xlim=c(-10,10), breaks=30, freq=F, col="lightblue") 

如果這是某種作業分配,以顯示截斷分佈是如何計算的,那麼我建議你看看rtrunc(...)函數的代碼。