r - 我在哪里可以找到 R 中 Kolmogorov-Smirnov 距离的极限分布?

标签 r

在进行重要性抽样实验时,我模拟了 Kolmogorov-Smirnov 距离的值

$$
D_n =\max_x |\hat{F}_n(x)-F(x)|
$$

其中 $n$ 是原始重要性样本的大小,我想将这些值与 the asymptotic distribution of the Kolmogorov-Smirnov test 进行比较, 或 Kolmogorov distribution , IE。

$$
\sqrt{N} D_n\longrightarrow\sup_{t\in[0,1]}|B(t)|
$$

其中 $B$ 是布朗桥。

由于ks.test依赖于这种渐近分布,它的 cdf 已经存在于 R 中的某个地方,我想知道如何访问它。 R函数ks.test包含指令

PVAL <- 1 - if (alternative == "two.sided") 
                .Call(C_pKolmogorov2x, STATISTIC, n)

但我自己调用 C_pKolmogorov2x不起作用。

最佳答案

“编写 R 扩展”manual 的相关摘录

Then, the directive in the NAMESPACE file

useDynLib(myDLL, .registration = TRUE)

causes the DLL to be loaded and also for the R variables foo, bar_sym, R_call_sym and R_version_sym to be defined in the package’s namespace.



翻译成人类语言,这意味着(大致)所有非 R 代码的默认位置都在包命名空间中。因此需要三重结肠。

因此,如果您在代码中找到 .Call(something,args) ,您可以通过 .Call(package:::something,args) 从命令行调用它.这就是为什么简单调用 C_pKolmogorovx不工作。 R 没有找到它,因为包命名空间是为包而不是用户设计的。

如果您想找出外部代码所在的位置,您需要查看 2 个文件。先看包的NAMESPACE是否为useDynLib用于注册外部代码功能,然后查看src/init.c包中所有可用的外部代码函数都在其中注册的文件。

关于r - 我在哪里可以找到 R 中 Kolmogorov-Smirnov 距离的极限分布?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24697706/

相关文章:

R 数学运算 NA 值

r - 构建组中所有值的列表并应用于整个组

Python实现以排列数为输入的Permutation Test

r - 列表列表中向量的平均值

r - 收到一个错误,即ggplot2_3.2.0每组不能绘制多个箱形图

r - 如何将数据框中的部分重复项设置为空

regex - 删除所有标点符号的等效正则表达式

r - (空间)在一个点的 X 米内找到所有点的有效方法?

r - 包含至少 2 个非 NA 值的组的 data.table 子集

r - dplyr 中的过滤功能错误 : object 'name' not found