4 个版本 (稳定)
使用旧 Rust 2015
1.1.0 | 2015 年 12 月 27 日 |
---|---|
1.0.1 | 2015 年 12 月 20 日 |
1.0.0 | 2015 年 12 月 19 日 |
0.1.0 | 2015 年 12 月 16 日 |
#370 在 科学
751 每月下载次数
在 8 crates 中使用
59KB
1K SLoC
作为 Rust 库实现的柯尔莫哥罗夫-斯米尔诺夫统计检验。在此处阅读关于此项目、Rust 和柯尔莫哥罗夫-斯米尔诺夫检验的简介 here。
入门指南
Kolmogorov-Smirnov 库作为 crate 提供,因此很容易将其集成到您的程序中。将依赖项添加到您的 Cargo.toml
文件中。
[dependencies]
kolmogorov_smirnov = "1.1.0"
有关最新发布的 crate 的信息可在 crates.io 上找到。
使用测试也很简单,调用带有要比较的两个样本和所需置信水平的 kolmogorov_smirnov::test
函数。
extern crate kolmogorov_smirnov as ks;
let xs = vec!(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12);
let ys = vec!(12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
let confidence = 0.95;
let result = ks::test(&xs, &ys, confidence);
if !result.is_rejected {
// Woot! Samples are from the same distribution with 0.95 confidence.
}
或者,如果您有要测试的浮点数或整数数据,可以使用包含的测试运行器,例如 ks_f64.rs
和 ks_i32.rs
。这些在单列无标题数据文件上运行,并在 0.95 置信水平下测试样本。
$ cargo run -q --bin ks_f64 dat/normal_0_1.tsv dat/normal_0_1.1.tsv
Samples are from the same distribution.
test statistic = 0.0399169921875
critical value = 0.08550809323787689
reject probability = 0.18365715210599798
$ cargo run -q --bin ks_f64 dat/normal_0_1.tsv dat/normal_1_1.1.tsv
Samples are from different distributions.
test statistic = 0.361572265625
critical value = 0.08550809323787689
reject probability = 1
开发柯尔莫哥罗夫-斯米尔诺夫
如果您系统上还没有安装,请安装 Rust 开发工具。然后使用以下方式构建和测试库
cargo test
Docker
提供了包含用于开发软件的工具的 Docker 容器定义。如果尚未安装 Docker,请先安装 Docker,然后启动 Docker 终端。然后在存储库源树顶层运行以下构建命令以创建容器
docker build --rm=true -t statistics .
构建完成后,可以在容器中使用以下命令运行交互式 shell
docker run -it -v "$(pwd):/statistics" --workdir=/statistics statistics /bin/bash
主机机器的当前工作目录在容器中可用作为当前目录,因此可以像前面描述的那样构建和测试库。
cargo test
要查看有关恐慌的更多详细信息,请包含 RUST_BACKTRACE
环境变量。
RUST_BACKTRACE=1 cargo test
构建文档
在 doc
下的 RestructuredText 格式 Sphinx 文档可以使用 Makefile 编译。
cd doc
make clean html
请参阅此RestructuredText 初学者指南以获取编写 RestructuredText 的指导。
Docker 容器提供了进行此构建所需的 Python、Sphinx 和 LaTeX 的安装。为了在没有中间 shell 的情况下直接在容器中制作文档,请使用
docker run -v "$(pwd):/statistics" --workdir=/statistics/doc statistics make clean html
编译后的文档写入共享位置,并在主机机器上的 doc/_build
下可用。它使用 Github Pages 在 http://daithiocrualaoich.github.io/kolmogorov_smirnov 上发布。
要重新发布更新后的文档,首先构建 html。然后创建存储库的副本并检出 gh-pages
分支。创建单独的副本很有用,因为 master
和 gh-pages
分支非常不同,在它们之间切换带有未提交更改是繁琐的。
cd ..
cp -r kolmogorov_smirnov kolmogorov_smirnov_ghpages
cd kolmogorov_smirnov_ghpages
git reset --hard HEAD
git clean -fdx
git checkout gh-pages
现在从最近生成的文档重新制作此分支的内容。
rm -fr *
cp -r ../kolmogorov_smirnov/doc/_build/html/* .
还需要一个 .nojekyll
文件,以防止 Github 忽略 Sphinx CSS 文件。
touch .nojekyll
提交更改并将 gh-pages
分支推送到 origin 以执行发布。
git push origin gh-pages
要重新生成图表,请运行以下命令。
docker run -v "$(pwd):/statistics" --workdir=/statistics/dat statistics R -e "rmarkdown::render('images.Rmd')"
在 crates.io 上发布
有关上传到 crates.io 仓库的说明在这里。首先使用以下方式登录到网站
cargo login <token>
令牌可以从 crates.io/me 获取。为了发布版本,首先清理并构建软件包
git stash
cargo clean
cargo package
在 target/package/kolmogorov_smirnov-<版本>
下检查构建的软件包。当满意发布时
cargo publish
并检查 crates.io/crates/kolmogorov_smirnov 上的新更新。
许可协议
Copyright [2015] [Daithi O Crualaoich]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
https://apache.ac.cn/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
依赖关系
~320–540KB