我有以下的pdf文件,
f(x)=2(1-x)^2; 2=>x>1
现在我必须在r
中绘制随机变量的cdf
。
#cumulative distribution function
Fx <- function(x){
(2/3) * (x^3-3*x^2+3*x-1)
}
R <- runif(100,1,2)
cum_prob <- Fx(R) # determining cumulative probability
但是我不知道应该使用哪个命令来绘制cdf
。
hist()
和barplot()
不适用于cdf。因为据我所知,绘制cdf需要X轴上的随机变量值和Y轴上的累积概率值。
我的变量也是连续的。
发布于 2013-09-10 10:11:08
响应评论中的代码:
fx <- function(x)2*(x-1)^2
integrate(fx,1,2)
#------------
0.6666667 with absolute error < 7.4e-15
plot(seq(1,2,by=0.01), cumsum(fx(seq(1,2,by=0.01))*0.01 ), type="l" )
发布于 2013-09-10 10:28:44
您可以使用以下命令:
定义密度:
f <- function(x) (2*(1-x)^2)*(1<x & x<=2)
打印密度:
plot(f,0,3)
绘图CDF:
plot(Vectorize(function(X)integrate(f,0,X)$value),0,3,add=TRUE)
注:0和3是曲线图中x轴的限制;您可以更改它们。还要注意你的密度不是标准化的。
https://stackoverflow.com/questions/18709543
复制相似问题