前段时间跟某基金公司合作,做了一个简单的量化程序,算法中呢,有个词语"数组的【秩】"
数组的【秩】,是不是有点蒙...
我之前也懵
先百度查一下
不是只有矩阵才有【秩】吗?
数组也有?
详细问了一下对方,给我一顿解释了,其实就是相关性,那么就简单了
找到了一片文章
【原创】开源Math.NET基础数学类库使用(16)C#计算矩阵秩
但是我们这是数组的相关性啊 并不是矩阵的秩
但是这里的博客说到了一个库
Math.NET Numerics 可以百度 谷歌搜索一下看看
【原创】开源Math.NET基础数学类库使用(01)综合介绍
也可以看到github的主页 github
然后查了一下 相关性也分成两种吧,其中一种貌似叫皮尔森相关性系数 我们现在用的就是这个皮尔森
有几种方法安装这个类库
1、去github下载源码自己编译(我没有编译通过)
2、用nuget安装MathNet.Numerics 即可(我是这种)
3、我也有上传的dll资源 下载之后直接引用(我传一个)
引用之后,调用这个方法即可
MathNet.Numerics.Statistics.Correlation.Pearson(IEnumerable<double> dataA, IEnumerable<double> dataB)
跟他们数据一对,对上了,万事大吉,那就继续后面的量化步骤吧
今天呢,又在算一个数
是根据分位数算出来什么“标准正态累计分布反函数” 给我讲懵了,
可以看看这两篇文章
https://docs.microsoft.com/zh-cn/dax/norm-inv-dax
https://docs.microsoft.com/zh-cn/dax/norm-s-inv-dax
先发现py可以很简单的就拿到数据,然而我并不会py,那还是C#搞一个吧。
找了很久文章,博客 一直没有找到想要的
最终最终
研究员说excel可以直接用算出来,我让他把公式发我一下
“NORM.INV”
百度
“C# NORM.INV”
真走运..第一页第3条就是了
看这个 等价的C#函数Excels Norm.S.Inv函数
后面还有一个 是否有一个C#库,将执行Excel的NORMINV函数?(Is there a C# library that will perform the Excel NORMINV function?)
这两篇文章里面都写了
实际代码
new MathNet.Numerics.Distributions.Normal().InverseCumulativeDistribution(item);
拿到返回值,随机取几个数跟excel拉出来的数据对比,发现都没有问题 稳滴狠。
然后突然发现。。。这两个居然用的是同一个类库
【秩】和 【指定平均值和标准偏差的逆正态累积分布】
其实时间间隔也不长,个把月,有点意思哈。。
记录一下吧,挺走运的
还是多查百度 谷歌 bing吧
MathNet.Numerics 这个库其实挺有意思的,大家有时间可以研究研究,或者看看上面那个博客目录里面,很多文章介绍换个类库使用
2021年06月28日
----------今天又弄了一个中位数
开源Math.NET基础数学类库使用(10)C#进行基本数据统计
MathNet.Numerics.Statistics.ArrayStatistics.MedianInplace()
2021年7月1日 17:04:02