如何计算协方差矩阵
这个问题似乎令人惊讶地晦涩难懂...我问Google在此处发布之前,我发现最接近答案的东西是:协方差矩阵计算 但是,我不确定答案,从评论中. 正确计算C#中的协方差矩阵的最佳方法是什么? 任何好的免费图书馆? 谢谢! 解决方案 我终于找到了 alglib库看起来很有希望的. 它具有计算协方差矩阵的函数: public static void covm(double[,] x, out double[,] c) 其他解决方案 您可以使用emgucv opencv library的c#包装器. CvInvoke.cvCallcCovarMatrix();
0 2024-04-20
编程技术问答社区
C#SQLDATAREADER执行统计和信息
我正在创建一个自动db查询执行队列,这实际上意味着我正在创建一个sql查询的队列. 查询使用类似以下代码执行: using (SqlConnection cn = new SqlConnection(ConfigurationManager.ConnectionStrings["NorthwindConnectionString"].ConnectionString)) { cn.Open(); using (SqlCommand cmd = new SqlCommand("SP", cn)) { cmd.CommandType = CommandType.StoredProcedure; using (SqlDataReader dr = cmd.ExecuteReader()) { while (dr.Read()) { } } } } 我想做的就是收集有关执行的尽可能多的信息. 花了多
0 2024-04-20
编程技术问答社区
是否有一个带有T检验和P值的.Net统计库?
有人知道.net有任何好的统计库吗? 我正在努力计算t检验,我已经编写了一个用于计算的公式,尽管现在我需要一个p值的公式,这有点复杂,而不是统计学家,但我有点一点迷失. 解决方案 我建议您查看 math.net 项目.它支持各种分布,但我不知道它是否具有t检验和p值. 其他解决方案 meta.numerics 具有很多统计功能.它支持t检验(一个样本,两个样本,配对),以及曼恩·惠特尼和标志测试(t检验的非参数替代方案)和ANOVA(t检验扩展到两个以上的样本)和Kruskal-Wallis(ANOVA的非参数替代品).是的,它报告了所有测试的P值. 其他解决方案 自版4版以来,.NET库包括提供t检验的StatisticFormula类.该类可在命名空间System.Web.UI.DataVisualization.Charting和System.Windows.Forms.DataVisualization.Charting 中找到 TTestRes
0 2024-04-17
编程技术问答社区
什么是好的.Net的统计数学包?
我正在寻找一个进行高级数学,统计,统计分布等的库. 目前,我正在寻找具有二项式和泊松分布的东西. 解决方案 Mathdotnet 应该拥有您正在寻找的功能,尽管可能有点过分取决于您需要多少功能. 它提供: Bernoulli beta 二项式 分类 Cauchy chi Chi Square 连续统一 Conway Maxwell Poisson dirichlet 离散统一 erlang 指数 等....(列表中的大约3倍) 有关完整列表,请参阅此页面. P> 其他解决方案 .net框架语言C#,f#和vb.net iLnumerics.net 高性能,typesafe数值阵列类和一般数学,FFT和线性代数的功能位,c#,2D和3D绘图控件中的类似脚本的语法,有效的内存管理 imsl数字库 .net是一组数学,统计,数据挖掘,财务和图表类, Measurement Studio 是一个集成的Suite Suite
0 2024-04-17
编程技术问答社区
是否有一个C#库可以执行Excel的NORMINV功能?
我正在运行一些 Monte Carlo Simulates 并广泛使用Excel功能使用办公室Interpop.该功能需要三个参数(概率,平均值,标准偏差),并返回累积分布的倒数. 我想将代码移至Web应用程序中,但这需要在服务器上安装Excel. 有人知道具有与norm.inv的c#统计库吗? 解决方案 meta.numerics 正是您想要的.这是使用该库进行的代码: Distribution n = new NormalDistribution(mean, standardDeviation); double x = n.InverseLeftProbability(probability); 如果您正在这样做以生成正常偏差,则getRandomValue函数甚至更快. 其他解决方案 其他解决方案 i也需要一个c#的norminv实现,我发现的最接近的是c ++实现 http://www.wilmott.com/messageview.cfm?ca
0 2024-04-15
编程技术问答社区
是否有一个C#库可以执行Excel的NORMINV功能?
我正在运行一些 Monte Carlo Simulates 并广泛使用Excel功能使用办公室Interpop.该功能需要三个参数(概率,平均值,标准偏差),并返回累积分布的倒数. 我想将代码移至Web应用程序中,但这需要在服务器上安装Excel. 有人知道具有与norm.inv的c#统计库吗? 解决方案 meta.numerics 正是您想要的.这是使用该库进行的代码: Distribution n = new NormalDistribution(mean, standardDeviation); double x = n.InverseLeftProbability(probability); 如果您正在这样做以生成正常偏差,则getRandomValue函数甚至更快. 其他解决方案 其他解决方案 i也需要一个c#的norminv实现,我发现的最接近的是c ++实现 http://www.wilmott.com/messageview.cfm?ca
0 2024-04-14
编程技术问答社区
在C#中从一个加权列表中选择x个随机元素(不替换)
更新:我的问题已经解决,我在问题中更新了代码源以与Jason的答案匹配.请注意,rikitikitik答案正在解决用替代品挑选卡的问题. 我想从加权列表中选择x随机元素.采样无需替换.我找到了这个答案: https://stackoverflow.com/a/a/a/a/2149533/57369 在佩顿(Python)实施.我在C#中实施并进行了测试.但是结果(如下所述)不符合我的预期.我对Python一无所知,所以我很确定将代码移植到C#时犯了一个错误,但是我看不到在哪里,因为Pythong中的代码确实有很好的记录. 我选择了一张卡10000次,这是我获得的结果(结果是一致的执行执行): Card 1: 18.25 % (10.00 % expected) Card 2: 26.85 % (30.00 % expected) Card 3: 46.22 % (50.00 % expected) Card 4: 8.68 % (10.00 % expected)
2 2024-04-13
编程技术问答社区
C#中的非线性回归
我正在寻找一种基于2D数据集的非线性(最好是二次)曲线的方法.现在,我正在使用自己的普通最小二乘(OLS)实现来产生线性趋势,但是我的趋势更适合曲线模型.我要分析的数据是随着时间的推移的系统负载. 这是我用来产生线性系数的方程式: 我已经看过Math.net Numerics和其他一些Libs,但是它们要么提供 interpolation 而不是 Remession (这对我没有用),否则代码只是某种程度上不起作用. 任何人都知道有任何免费的开源库或代码样本可以产生这种曲线的系数? 解决方案 我使用 Mathnet.虹膜释放,因为它与.NET 3.5和VS2008兼容.该方法基于using MathNet.Numerics.LinearAlgebra; public class PolynomialRegression { Vector x_data, y_data, coef; int order; public PolynomialRegression(Ve
0 2024-04-13
编程技术问答社区
C# 正常随机数
我想创建一个接受Double mean,Double deviation的函数,并返回具有正态分布的随机数. 示例:如果我以5.00作为平均值和2.00作为偏差传递,则有68%的时间在3.00和7.00之间的数字 我的统计数据有点弱…….有人知道我该如何处理?我的实施将是C#2.0,但只要数学功能是标准的,就可以随意以您的选择. . 我认为成为我想要的.有助于将其转换为代码吗? 事先感谢您的帮助. 解决方案 请参阅此codeproject文章:简单的随机数.该代码非常短,并且生成了统一,正常和指数分布的样品. 其他解决方案 您可能对 math.net ,特别是数字软件包./p> 警告:Numerics软件包目标.NET 3.5.如果您针对较早的版本,则可能需要使用虹膜软件包... 其他解决方案 这是一些C返回两个值(RAND1和RAND2)的C,只是因为该算法有效地这样做.它是 box-muller transform . void Ra
0 2024-04-12
编程技术问答社区
通用清单的标准偏差?
我需要计算通用列表的标准偏差.我将尝试包括我的代码.它是其中包含数据的通用列表.数据主要是浮子和INT.这是我的代码,而不是详细介绍: namespace ValveTesterInterface { public class ValveDataResults { private List m_ValveResults; public ValveDataResults() { if (m_ValveResults == null) { m_ValveResults = new List(); } } public void AddValveData(ValveData valve) { m_Valv
0 2024-04-11
编程技术问答社区
如何确定一组数值的标准差(stddev)?
我需要知道与一组数字相比,数字是否超过均值的1个stddev等. 解决方案 虽然大多数时候的正方形算法总和正常工作,但如果您要处理大量数量,可能会造成大麻烦.基本上,您可能会出现负差异... plus,永远不会,永远不会,将A^2作为POW(A,2),A * A几乎可以肯定更快. 到目前为止,计算标准偏差的最佳方法是 welford "> welford的方法.我的C非常生锈,但看起来像: public static double StandardDeviation(List valueList) { double M = 0.0; double S = 0.0; int k = 1; foreach (double value in valueList) { double tmpM = M; M += (value - tmpM) / k; S += (v
2 2024-04-10
编程技术问答社区
R不会引用/无法找到已编译加载的C代码
我在r中创建了一个新的强大的Holtwinters函数(基于统计数据:: Holt-Winters)方法(每次"使用指数和霍尔特·沃特斯的强大预测 平滑"由莎拉·吉尔珀(Sarah Gelper1),罗兰·弗里德(Roland Fried),克里斯托夫·克鲁克斯(Christophe Croux).2008年9月26日. Stats :: Holt-Winters方法的核心是一种C代码,称为 c_holtwinters ,我修改为可靠的(见下文) #include #include // memcpy #include #include #include "ts.h" void HoltWinters ( double *x, /*as.double(x) */ double *x_adj, /*Adjust time series data, if need
0 2024-04-10
编程技术问答社区
避免C语言中互换(nPr, nCr)函数的整数溢出
我正在尝试执行一些与统计相关的功能,以便我可以执行一些相关的程序(即:概率计算统计信息,生成Pascal的三角形以进行任意深度等). 我遇到了一个可能正在处理溢出的问题.例如,如果我想计算(n = 30,p = 1)的NPR,我知道我可以将其简化为: 30P1 = 30! / (30 - 1)! = 30! / (29)! = 30! / 29! = 30 但是,在使用下面的功能计算时,由于整数溢出,我总是会获得无效的值.是否有任何解决方法不需要使用库来支持任意的数字?我在伽马功能的其他帖子中读了一些内容,但找不到具体示例. int factorial(int n) { return (n == 1 || n == 0) ? 1 : factorial(n - 1) * n; } int nCr(int n, int r) { return (nPr(n,r) / factorial(r)); //return f
0 2024-04-10
编程技术问答社区
用二阶二次曲线对小数据集进行平滑处理
我正在进行一些特定的信号分析,并且需要一种可以使给定钟形的分布曲线平滑的方法.跑步的平均方法不是产生我想要的结果.我想保持最小/最大和完整的拟合曲线的一般形状,但要解决采样中的不一致. 简而言之:如果给出了一组对简单二次曲线进行建模的数据,您将推荐哪种统计平滑方法? 如果可能的话,请参考实施,库或框架. 谢谢! 编辑:一些有用的数据 (可能的信号图) 深色二次二次是我的"拟合"曲线. 样本 @ -44(大约)是我的图表中的一个问题(即潜在的样本不一致).我需要此曲线以更好地"拟合"分布,并克服不相应趋势的值.希望这会有所帮助! 解决方案 a"二次"曲线是一件事; "钟形"通常表示高斯正态分布.获得最佳的高斯并不容易:您计算样本平均值和差异,平稳近似是 y = exp(-squared(x-mean)/variance) 另一方面,如果您想用二次自导体近似平滑的曲线,我建议计算二次多项式使用最小正方形误差.我可以记住为此的公式,但
2 2024-04-09
编程技术问答社区
适用于C语言(非C++)的最佳统计库
有人知道C的统计库吗?我正在寻找常用的东西,而不是一个小项目.编辑:必须免费! 解决方案 gsl( a>)广泛可用,可移植,并且具有很多不错的功能. 其他解决方案 统计信息经常以其他语言完成,但是其中一些语言可以从C中呼唤C.我建议您查看 r 和 octave ;后者是一种开源MATLAB工作.两者本身都是编程语言,但是许多其他语言都可以从c. 中调用 其他解决方案 我认为, matlab 您可以使用它是一个很好的选择. 在这里 c. 这并不便宜.但是您没有指定有关图书馆便宜或免费的任何内容.另外,您提到这是一个大项目....: - )
0 2024-04-08
编程技术问答社区
自动比较两个系列--异质性测试
我有两个系列1和系列2.我的目的是从bin到bin,(每个bin代表特定特征)自动/定量地找到与串联1有多少不同. 可以以系列1是预期的结果. 系列2是测试/传入系列. 我提供了一个直方图图,其中序列2以深棕色表示.您还可以在221和353之间的X轴上注意到有很大的变化. IE Series2小于系列1.我正在使用C ++进行编码. 我认为,跨加密会有所帮助,但基于相似性而不是相似性产生价值.我看到人们谈论Kolmogorov-Smirnov测试.这是我应该执行的测试吗? 更新1: 我正在尝试执行模板匹配.我将模板图像分为8x8块以及传入的测试图像.我试图将模板图像中的一个块与测试图像中相同的块(基于空间像素位置)进行比较.我计算每个块内的强度总和.I获得模板图像的串联1,并具有用于测试图像的串联2. 解决方案 这是算法的C实现,以计算实际数据与预测数据的差异.该算法来自Osborne/McGraw-Hill版权1980的一本名为实用基本程序的书. 这是.
0 2024-04-07
编程技术问答社区
部分最小二乘法图书馆
已经有一个这样的问题,但是没有回答,所以我尝试再次发布它.有谁知道 partialdlives distial Squares algorithm 在C ++(或C)中? 或者也许是这样做的库? 解决方案 fastpls 是一个提供C/C ++和MATLAB接口的库 以加快部分最小二乘.它的作者是Balaji Vasan Srinivasan.作者在教授的监督下工作 马里兰州大学公园,马里兰州大学公园的Ramani Duraiswami, 美国. 基于nipals algorithm 的部分最小二乘和广义的部分最小二乘模型. 使用矩阵库 href =" http://arma.sourceforge.net/" rel =" noreferrer"> armadillo plsniplas , 其他解决方案 找到 pls nipals c ++ t尝试了. 其他解决方案 mtk ++ 是药物设计的图书馆. 它建立在基于矩阵的各种库上,例如: 基本的线
2 2024-04-07
编程技术问答社区
C/C++中的累积正态分布函数
我想知道,数学库中是否存在统计功能,这些功能是CMATH等标准C ++库的一部分.如果没有,你们可以推荐一个具有累积正态分布功能的好统计库吗? 更具体地说,我正在寻求使用/创建累积分布功能. 解决方案 我在回答我之前回答但随后找到了一个非图书馆的人们的建议,弄清楚了如何使用GSL做到这一点(希望这会帮助许多人像我一样寻找它的人是): #ifndef Pi #define Pi 3.141592653589793238462643 #endif double cnd_manual(double x) { double L, K, w ; /* constants */ double const a1 = 0.31938153, a2 = -0.356563782, a3 = 1.781477937; double const a4 = -1.821255978, a5 = 1.330274429; L = fabs(x); K = 1.
2 2024-04-06
编程技术问答社区
在C语言中生成一个INTEGERS的均匀分布
我已经写了一个C函数,我认为从均匀分布中选择整数 具有[rangelow,rangehigh]的范围.这不是作业 - 我只是在一些嵌入式系统中使用它来修补我是为了娱乐. 在我的测试用例中,此代码似乎会产生适当的分布.但是,我对实施是正确的不完全有信心. 有人可以进行理智检查,让我知道我在这里是否做错了什么? //uniform_distribution returns an INTEGER in [rangeLow, rangeHigh], inclusive. int uniform_distribution(int rangeLow, int rangeHigh) { int myRand = (int)rand(); int range = rangeHigh - rangeLow + 1; //+1 makes it [rangeLow, rangeHigh], inclusive. int myRand_scaled = (myRand %
0 2024-04-06
编程技术问答社区