在R中创建具有有限范围的偏斜分布的样本矢量数据

时间:2015-01-22 22:09:36

标签: r sample

我想在R中创建R中的数据样本向量,其中我可以控制所选值的范围,所以我想我想使用sample来限制生成的值的范围而不是rnorm-type命令根据分布类型,方差,SD等生成一系列值。

所以我希望用一个指定范围(例如1-5)的样本进行偏斜分布,如下所示:

x=rexp(100,1/10)

这是我所拥有的,但没有提供偏斜的分布:

y=sample(1:5,234, replace=T) 

我怎样才能拥有我的蛋糕(限量范围)并且吃掉它(分布偏斜),可以这么说。

由于

3 个答案:

答案 0 :(得分:5)

set.seed(3)
hist(sample(1:10, size = 100, replace = TRUE, prob = 10:1))

enter image description here

答案 1 :(得分:1)

要更好地了解样本函数对整数的作用,请使用barplot函数,而不要使用直方图函数:

set.seed(3)
barplot(table(sample(1:10, size = 100, replace = TRUE, prob = 10:1)))

barplot

答案 2 :(得分:0)

beta 分布的取值范围为0到1。例如,如果您想将值取为0到5,则可以将它们乘以5。最后,您可以获得“偏度”的beta版本。 例如,对于偏度,您可以得到以下三种类型:

enter image description here

使用R和Beta分布,您可以获得类似的分布,如下所示。请注意,绿色垂直线是指均值,红色是中值:

x= rbeta(10000,5,2)
hist(x, main="Negative or Left Skewness", freq=FALSE)
lines(density(x), col='red', lwd=3)
abline(v = c(mean(x),median(x)),  col=c("green", "red"), lty=c(2,2), lwd=c(3, 3))

enter image description here

x= rbeta(10000,2,5)
hist(x, main="Positive or Right Skewness", freq=FALSE)
lines(density(x), col='red', lwd=3)
abline(v = c(mean(x),median(x)),  col=c("green", "red"), lty=c(2,2), lwd=c(3, 3))

enter image description here

x= rbeta(10000,5,5)
hist(x, main="Symmetrical", freq=FALSE)
lines(density(x), col='red', lwd=3)
abline(v = c(mean(x),median(x)),  col=c("green", "red"), lty=c(2,2), lwd=c(3, 3))

enter image description here