dtrg {TRIANG} | R Documentation |
The function plots discrete triangular distributions
dtrg(c, a, h, y)
c |
The center $c$ is an integer |
a |
The arm $a$ is a non-negative integer |
h |
The order $h$ is a positive real number |
y |
The vector of observations |
The discrete triangular distribution have probability mass functions
$ P(y) = ((a+1)^h - (abs(y-c))^h)/A $
where $ A=(2*a+1)*(a+1)^h-2*sum(k^h), k=1,2,...,a,$ is the normalizing constant. The mean is equal to $c$ and the variance is given by $V(a,h)=(1/A)(a(2*a+1)(a+1)^(h+1))/3 - 2*sum(k^h), k=0,1,2,...,a.$
The value returned is a vector of numbers in the interval [0,1]
Tristan Senga Kiess'e, Silvio S. Zocchi, C'elestin C. Kokonendji
Kokonendji, C.C., Senga Kiess'e, T. and Zocchi, S.S. (2007). Discrete triangular distributions and non-parametric estimation for probability mass function. Journal of Nonparametric Statistics 19, 241–254.
##These examples provide some discrete triangular distributions of order ## h in {1/12, 1/2, 1, 2, 12} centered in c=5 with arm a=4 . y=0:10 a=4 c=5 h=12 T12=dtrg(c,a,h,y) h=2 T2=dtrg(c,a,h,y) h=1 T1=dtrg(c,a,h,y) ##The case h=1 provides a discrete triangular distribution ##said to be pyramidal h=1/2 T_05=dtrg(c,a,h,y) h=1/12 T_012=dtrg(c,a,h,y) plot(y,T1,xlab="y",ylab="Probab(y)",xlim=c(0,11),ylim=c(0,0.7), main="Some Discrete triangular distributions centered in c=y=5 with arm a=4",cex.lab=1.5, cex.axis=1.5,pch=20) lines(y,T1,pch=20,lty=1) points(y,T_012,pch=17) lines(y,T_012,lty=1) points(y,T2) lines(y,T2,lty=2) points(y,T12) lines(y,T12, lty=1) points(y,T_05, pch=17) lines(y,T_05,lty=2) op <- par(bg="white") legend(8,0.7,c("h=1/12", "h=1/2","h=1", "h=2", "h=12"),pch=c(17,17,20,1,1), lty=c(1,2,1,2,1),cex = 1.2) par(op) ## The function is defined as function(c,a,h,y){ T=rep(0,length(y)); if (a==0) { {for (j in 1:length(y)) # Loop in j for each observation y {if (y[j]==c) T[j]= 1 # Dirac distribution at c else{ T[j]=0 } } } } else { if (h==0) { {for (j in 1:length(y)) # Loop in j for each observation y {if (y[j]==c) T[j]= 1 # Dirac distribution at c else{ T[j]=0 } } } } else if (h==Inf) { {for (j in 1:length(y)) # Loop in j for each observation y {if (y[j]>=(c-a) & y[j]<=(c+a)) # Support {c-a,...,c,...c+a} T[j]= 1/(2*a+1) # Discrete uniform distribution else{ T[j]=0 } } } } else { u=0 {for (k in 1:a) { u=u+k^h } } A=(2*a+1)*(a+1)^h-2*u # Normalizing constant {for (j in 1:length(y)) # Loop in j for each observation y {if (y[j]>=(c-a) & y[j]<=(c+a)) # Support {c-a,...,c,...c+a} T[j]= ((a+1)^h - (abs(y[j]-c))^h)/A # Discrete triangular distribution else{ T[j]=0 } } } } } return(T) }