jStat:轻量级Javascript统计库
jStat是一个Javascript库,为开发人员提供了统计功能和在浏览器中绘制相应图形的特性。jStat能够在所有浏览器中执行统计操作,它需要jQuery和绘制数据的插件。jStat是开源统计语言和环境R的部分移植版。
InfoQ采访了Matthew Williams(英国伯明翰阿斯顿大学研究员、jStat团队成员),了解jStat提供的功能:
jStat的核心基于向量和矩阵(很像MatLab)。基本单元是矩阵,可以通过jStat函数(j$)来创建:
§ var matrix = j$([[1,2,3],[4,5,6],[7,8,9]])
每一个矩阵包含许多方法,包括加法、除法、乘法、减法、对角线、反对角线、转置、点积、正规化、最小值、最大值、平均值和中间值等。
概率发布包括:正态、对数正态、β、γ、韦伯、柯西、卡方、指数、帕雷托、student T等。每一种概率分布都可以计算PDF、CDF并且在给定X值(或者矩阵值)对CDF反向计算。你也可以计算平均值、中间值、取模、标准差和方差。同时, 所有分布都能够产生随机样本。
jStat还包括了许多“特殊”的函数,包括:伽马函数、反伽马函数、贝塔函数、反贝塔函数、不完全贝塔函数、对数伽马函数、反不完全伽马函数、误 差函数、余误差函数、逆余误差函数。它还包含了一些随机数生成器:randn(正态分布的随机样本)和randg(伽马分布的随机样本)。
阿斯顿大学的在读学生Tushar Gupta在今天夏天添加了一些其他功能,如使用Nelder-Mead和非线性共轭梯度算法做优化、线性代数函数包括积分、微分和插值。
jStat项目相对年轻,最缺乏的是丰富的绘图功能,计划在未来添加。之前没有清晰的路线图,jStat团队决定未来要做计划,包括提供一个插件体系,支持对项目感兴趣的人扩展它。Williams表示:
jStat未来有很多计划。我们正在开发一个回归包,为更复杂的贝叶斯方法提供简单的线性回归。而且,还要提供一些更复杂的绘图功能,包括多元变量绘制(3D)。同时,进一步的设想是创建一个全交互式的jStat环境。
就像cloud9是一个在线IDE一样,jStat希望提供一个在线Matlab/R的环境,跟踪变量、交互绘图和保存、恢复工作。
我们也希望创建一个插件体系,其他人可以为jStat创建扩展插件。我认为如果插件系统完善,jStat会有巨大的潜力。
至于官方路线图,目前还很困难。现在我们正忙于重构和记录修改历史,一旦完成这些工作,我们会更新jStat网站并提供教程。希望未来几个月能够实现这个目标,往前迈一大步。如果达到这个里程碑,我们会更好地计划jStat的未来。
源代码可以从这里Github/jstat查看,基于MIT license授权。
对于更强壮和成熟的统计解决方案,可以使用R——完整的框架,可以执行所有的统计运算和绘制(支持Unix、Mac和Windows)。但是R适合编写原生统计应用,而jStat适合轻量级跨浏览器web应用(不需要R提供的所有功能)。(jStat的精简版本有40KB,而R的Widnows安装包有39MB)。
本文出自 传播、沟通、分享,转载时请注明出处及相应链接。
本文永久链接: https://www.nickdd.cn/?p=1701