R语言学习记录-2

#学习如何构造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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值