9
如何在R中定義自己的發行版?如果我有一個看起來像這樣的分佈:如何在R中聲明用戶定義的發行版
P(D=0)=2/4, P(D=1)=1/4, P(D=2)=1/4
如何將其轉換爲我可以使用的分佈?最後,我希望能夠使用這些功能並執行涉及cdfs,icdfs和pmfs的功能。就像通過一個cdf類型的東西找到1的概率一樣。而且我還需要了解如何繪製圖表。但我會問更小的步驟,並試圖弄清楚兩者之間的事情。
如何在R中定義自己的發行版?如果我有一個看起來像這樣的分佈:如何在R中聲明用戶定義的發行版
P(D=0)=2/4, P(D=1)=1/4, P(D=2)=1/4
如何將其轉換爲我可以使用的分佈?最後,我希望能夠使用這些功能並執行涉及cdfs,icdfs和pmfs的功能。就像通過一個cdf類型的東西找到1的概率一樣。而且我還需要了解如何繪製圖表。但我會問更小的步驟,並試圖弄清楚兩者之間的事情。
如果你只是需要生成從分佈的隨機變元,這應該足夠了:
rMydist <- function(n) {
sample(x = c(0,1,2), size = n,
prob = c(.5, .25, .25), replace=T)
}
rMydist(20)
# [1] 1 0 2 0 2 1 1 0 2 2 0 0 2 1 0 0 0 0 0 1
prop.table(table(rMydist(1e6)))
# 0 1 2
# 0.500555 0.250044 0.249401
對於一些更看中的,試用頗包。除了隨機數生成,它會讓你的密度,分佈和分位數與分佈相關的功能:
library(distr)
## For more info, type: vignette("newDistributions")
# Define full suite of functions (d*, p*, q*, r*) for your distribution
D <- DiscreteDistribution (supp = c(0, 1, 2) , prob = c(0.5, .25, .25))
dD <- d(D) ## Density function
pD <- p(D) ## Distribution function
qD <- q(D) ## Quantile function
rD <- r(D) ## Random number generation
# Take them for a spin
dD(-1:3)
# [1] 0.00 0.50 0.25 0.25 0.00
pD(-1:3)
# [1] 0.00 0.50 0.75 1.00 1.00
qD(seq(0,1,by=0.1))
# [1] 0 0 0 0 0 0 1 1 2 2 2
rD(20)
# [1] 0 0 2 2 1 0 0 1 0 1 0 2 0 0 0 0 1 2 1 0
謝謝:)幫助,我需要做的不僅僅是獲得隨機數字,但是幫助了很多。 –
你可能想澄清你所說的「有工作」的意思。你想要pmf嗎? CDF?位數?只是隨機抽取分佈? – Dason
添加到問題。 –