C# 求数组的【秩】(相关性)&&求‘标准正态累计分布反函数‘的方法

前段时间跟某基金公司合作,做了一个简单的量化程序,算法中呢,有个词语"数组的【秩】"

数组的【秩】,是不是有点蒙...

我之前也懵

先百度查一下

不是只有矩阵才有【秩】吗?

数组也有?

详细问了一下对方,给我一顿解释了,其实就是相关性,那么就简单了

找到了一片文章

【原创】开源Math.NET基础数学类库使用(16)C#计算矩阵秩

但是我们这是数组的相关性啊 并不是矩阵的秩

但是这里的博客说到了一个库 

Math.NET Numerics 可以百度 谷歌搜索一下看看

【原创】开源Math.NET基础数学类库使用(01)综合介绍

也可以看到github的主页 github

博客的目录在这

然后查了一下 相关性也分成两种吧,其中一种貌似叫皮尔森相关性系数 我们现在用的就是这个皮尔森

有几种方法安装这个类库

1、去github下载源码自己编译(我没有编译通过)

2、用nuget安装MathNet.Numerics 即可(我是这种)

3、我也有上传的dll资源 下载之后直接引用(我传一个)

去下载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

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值