javascript - R的qnorm函数有javascript实现吗?
问题描述
qnorm
我试图像 R函数一样在正态分布中获得 z 分数(或简单的分数) ,但使用 javascript。
在 R 中是这样的:
> qnorm(0.90, mean = 1500, sd = 300)
[1] 1884.465
javascript有这样的(希望是轻量级的)实现吗?
解决方案
var qnorm = function(p) {
p = parseFloat(p);
var split = 0.42;
var a0 = 2.50662823884;
var a1 = -18.61500062529;
var a2 = 41.39119773534;
var a3 = -25.44106049637;
var b1 = -8.47351093090;
var b2 = 23.08336743743;
var b3 = -21.06224101826;
var b4 = 3.13082909833;
var c0 = -2.78718931138;
var c1 = -2.29796479134;
var c2 = 4.85014127135;
var c3 = 2.32121276858;
var d1 = 3.54388924762;
var d2 = 1.63706781897;
var q = p - 0.5;
var r, ppnd;
if (Math.abs(q) <= split) {
r = q * q;
ppnd = q * (((a3 * r + a2) * r + a1) * r + a0) / ((((b4 * r + b3) * r + b2) * r + b1) * r + 1);
} else {
r = p;
if (q > 0) r = 1 - p;
if (r > 0) {
r = Math.sqrt(-Math.log(r));
ppnd = (((c3 * r + c2) * r + c1) * r + c0) / ((d2 * r + d1) * r + 1);
if (q < 0) ppnd = -ppnd;
} else {
ppnd = 0;
}
}
return ppnd;
}
console.log(qnorm(.432423));
推荐阅读
- node.js - 如何阻止用户从同一帐户但不同的选项卡登录两次
- robotframework - 从 Robot Framework 调用远程测试库构造函数作为关键字
- javascript - 如何使用我使用 fetch API 调用检索到的数据更新 Reactjs 状态?
- python - 组合 pandas 将结果作为单个数据框中的多列应用
- python - 有没有更短的方法来编写逗号代码?
- bixby - Bixby 中的交互式对话实现
- php - Laravel5.8 推送器不工作。收不到
- c - 分段错误的原因与使用以下 C 代码返回随机值
- uwp - 在 UWP 应用程序中单击鼠标时如何设置滑块位置?
- javascript - 为什么 setTimeout 不能按预期工作?