添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

我现在在利用马尔科夫链做蒙特卡洛模拟,希望生产一个随机而且独立的样本集,所以需要通过独立性检测来判断如何采样。
我在网上查这方面的资料找到的都是卡方检验,但是卡方检验只能用于离散随机变量,而且只能处理低自由度的随机变量,所以把连续变量离散化也不行。有没有针对连续随机变量的独立性检测?

世界已完蛋

@foozhencheng 可以考虑对联合概率密度和边际概率密度的乘积做KS检验。当然如果楼主想做MCMC的话,可以用Stan,都封装好了。R/C/Python(应该也支持Python)都有接口了,可以比较方便地调用。

@foozhencheng 可以考虑对联合概率密度和边际概率密度的乘积做KS检验。当然如果楼主想做MCMC的话,可以用Stan,都封装好了。R/C/Python(应该也支持Python)都有接口了,可以比较方便地调用。

我在网上查了一下,没搞懂怎么计算ks检验的p值。有这方面的教材推荐吗?
Stan的全称是什么,我用c++应该支持吧?

世界已完蛋

@@toy 我在网上查了一下,没搞懂怎么计算ks检验的p值。有这方面的教材推荐吗?
Stan的全称是什么,我用c++应该支持吧?

我看了一下,K-S检验还是有点限制,可能有更好的检验。不过对于你这个问题,还是建议从原理及算法上保证MCMC的正确性而不是事后去做检验。关于Stan,可以参考 Stan的GitHub ,它本来就是C++的包,但是提供了R, Python, MATLAB, Julia, Stata, Mathematica以及命令行的接口。所以C++肯定是OK的,只不过我原来在学生时期用的更多的是它R的接口RStan,以后如果要用的话可能会用PyStan。你直接用它原始的包就好了,GitHub上也给出了官网地址,可以去官网看说明文档。

@foozhencheng 我看了一下,K-S检验还是有点限制,可能有更好的检验。不过对于你这个问题,还是建议从原理及算法上保证MCMC的正确性而不是事后去做检验。关于Stan,可以参考 Stan的GitHub ,它本来就是C++的包,但是提供了R, Python, MATLAB, Julia, Stata, Mathematica以及命令行的接口。所以C++肯定是OK的,只不过我原来在学生时期用的更多的是它R的接口RStan,以后如果要用的话可能会用PyStan。你直接用它原始的包就好了,GitHub上也给出了官网地址,可以去官网看说明文档。

谢谢, 我先看看文档。
马尔科夫链原则上得到的样本就不是独立的,只能说想办法用合适的采样得到近似独立的样本。所以独立性检验是不能避免的。

世界已完蛋

@foozhencheng 我看了一下,K-S检验还是有点限制,可能有更好的检验。不过对于你这个问题,还是建议从原理及算法上保证MCMC的正确性而不是事后去做检验。关于Stan,可以参考 Stan的GitHub ,它本来就是C++的包,但是提供了R, Python, MATLAB, Julia, Stata, Mathematica以及命令行的接口。所以C++肯定是OK的,只不过我原来在学生时期用的更多的是它R的接口RStan,以后如果要用的话可能会用PyStan。你直接用它原始的包就好了,GitHub上也给出了官网地址,可以去官网看说明文档。

我按照《计算机程序设计艺术》里面介绍的方法写了一个ks检验的程序,但是我发现计算p值的时候他是默认一个已知的随机分布和它的理论值做对比。导致算出来的p值比两个随机变量之间的要大。最后我发现用这个检测程序检测c++自带的随机数生成器的独立性,p值都到了0.5……这种情况下计算p值需要什么修正吗?

世界已完蛋

低自由度的随机变量是什么意思。如果需要衡量两个高维连续随机变量的独立性可以考虑MINE: Mutual Information Neural Estimation.
https://arxiv.org /abs /1801.04062
https://github.com /sungyubkim /MINE-Mutual-Information-Neural-Estimation-/blob /master /GAN_MINE.ipynb
直观(但略失准确性)理解是神经网络越能区分来自联合概率密度和边际概率密度的乘积的样本,那么就越不独立。相反,如果这两种来源的样本几乎不能区分,那就说明几乎独立。

@ieBugH 低自由度的随机变量是什么意思。如果需要衡量两个高维连续随机变量的独立性可以考虑MINE: Mutual Information Neural Estimation.
https://arxiv.org /abs /1801.04062
https://github.com /sungyubkim /MINE-Mutual-Information-Neural-Estimation-/blob /master /GAN_MINE.ipynb
直观(但略失准确性)理解是神经网络越能区分来自联合概率密度和边际概率密度的乘积的样本,那么就越不独立。相反,如果这两种来源的样本几乎不能区分,那就说明几乎独立。

如果要用卡方检验首先就需要把随机变量离散化,假设把随机变量分成成n个离散值,那这个系统的自由度就是n-1,这个在估算卡方检验的p值的时候要用到。

世界已完蛋