不使用metRology库实现R中dt()、qt()、pt()、rt()函数的缩放
R语言缩放t分布核心函数原生实现方案(无第三方库依赖)
你推导的dt缩放实现完全正确,符合缩放t分布的变量替换规则:位置参数为
mu、尺度参数为sigma、自由度为df的缩放t分布,等价于「标准t分布(位置0、尺度1、同自由度) * sigma + mu」,基于这个变量替换逻辑可以直接推导剩下三个函数的实现:
- 概率密度函数(dt):和你推导的一致,代码为
1/sigma * dt((x - mu)/sigma, df = n-1) - 累积分布函数(pt):用于计算
P(X ≤ x),变量替换后直接对标准化后的值调用原生pt即可,代码为pt((x - mu)/sigma, df = n-1) - 分位数函数(qt):传入概率
p返回对应分位值,需要将标准t分布的分位数做尺度和位置平移,代码为mu + sigma * qt(p, df = n-1) - 随机数生成函数(rt):生成指定个数符合缩放t分布的随机值,代码为
mu + sigma * rt(n, df = n-1)
注意rt函数第一个参数为要生成的随机数个数,请勿和自由度参数里的样本量n混淆,可根据需求修改参数命名避免冲突
内容的提问来源于stack exchange,提问作者Alejandro Gomez
相关产品推荐
相关产品推荐

