R语言学习记录-2

mac2024-05-14  29

#学习如何构造R函数 #难度提升 #构造统计分布 #避免命名冲突 #例如,定义函数f01为参数为a的指数分布的密度函数, #定义f02为该指数分布的分布函数,取a=1/5,进行计算, #可以看出,三种计算结果基本一致. f01 = function(x,a){a * exp(-a * x)} f01(5,1/5) f02 = function(x,a){1 - exp(-a * x)} c = 3; c = f02();c #现成的指数分布密度函数 dexp() #指数分布密度函数 pef.exp = function(x,a){ f = a * exp(- a * x) * (x > 0) return (f)} dexp(3,1/5) pef.exp(-3,1/5) f03 = function(x){(1/5) * exp(-(1/5) * x)} #integrate针对一元函数做积分 integrate(f03,lower = 0,upper = 5)#对f03在(0,3)上求定积分 #应用: 1)罕见的概率分布 1.次序统计量 2.最大,最小值 3.艾拉姆伽 #为了解指数分布的次序统计量的一些统计特征, 并沿用上面编写好的d( )函数. 假设总体服从参数为0.01的指数分布, 则它的分布函数可表示为pexp(x,0.01), 密度函数可表示为dexp(x,0.01), 取样本容量为5的样本并描述这5个次序统计量的统计性质. d = function(n,i){i * choose(n,i)} f.exp = function(n,i,x,a) { Fx = pexp(x,a) f = d(n,i) * Fx ^ (i - 1) * (1 - Fx) ^ (n - i) * dexp(x,a) return (f) } z = seq(0,500,0.05) plot(z,f.exp(5,1,z,0.01),type = "l",xlim = range(z),ylim = c(0,0.02)) lines(z,f.exp(5,2,z,0.01),col=2) lines(z,f.exp(5,3,z,0.01),col=3) lines(z,f.exp(5,4,z,0.01),col=4) lines(z,f.exp(5,5,z,0.01),col=5) legend(x=420,y=0.02,legend=c("i=1", "i=2","i=3","i=4","i=5"),lty=1,col=c(1:5)) #如果要求第三个次序统计量寿命未超过100 的概率 F = function(x)#将f.exp()变为一元函数,另外三个参数固定 { f.exp(5,3,x,0.01)} integrate(F,0,100) G = function(m,k,t,y) { #内嵌函数 fi.exp = function(x,n = m,i = k,a = t) { Fx = pexp(x,a) f = d(n,i) * Fx ^ (i - 1) * (1 - Fx) ^ (n - i) * dexp(x,a) return (f) } Fi.exp = function(x) { F = fi.exp(x) return (F) } J = integrate(Fi.exp,0,y) return (J) } G(10,5,0.2,4) #例子4.1.2 fw = function(n,i,x) { d(n,i) * dweibull(x,5,10) * (pweibull(x,5,10))^(i - 1) * (1 - pweibull(x,5,10)) ^ (n - i) } F1 = function(x){fw(10,3,x)} G1 = function(y){integrate(F1,0,y)} q1 = G1(7);q1
最新回复(0)