根据一组数据拟合出最佳分布函数, arena, Matlab, R语言
2016-11-22 02:38
489 查看
不论是 matlab 还是 R 语言,根据一组数据拟合分布函数时,只能拟合出特定分布的参数值,并不能给出最适合这组数据的分布函数。例如,matlab 有 normfit 函数来计算一组数据拟合成正态分布时的均值和方差,wblfit 函数来给出拟合成威布尔分布的参数值,还有 gamfit, binofit 函数等。R 语言中也有 fitdistr函数。
它们都不能自动给出最佳拟合分布,个人觉得可以自己编写个许多分布函数的卡方检验程序,从中选出一个拟合误差的函数,但估计是一个繁琐的工作。
发现一个软件 Arena 具有这个功能,利用其中的 输入分析器 可以完成这个工作。
步骤:
1. 打开 Arena 的 Input Analyzer
2. 新建一个分析器
3. 导入数据,数据可以放在 txt 文件里,不要有除了数据外的其他符号和文字
例如一组数:由伽玛分布生成随机数 gmarnd
6.03 2.80
0.96 3.97 2.98
3.32 1.62
3.54 2.28
0.59
4.93 8.64
2.35 1.17
0.67
2.72 4.08
3.17 2.84
1.46
4.89 4.39
6.19 9.50
1.87
导入:
4. 拟合,选择 fit all 功能
5. 查看结果
Arena 给出了 lognormal 分布,可见 arena 软件给出的分布函数更加精细。
它们都不能自动给出最佳拟合分布,个人觉得可以自己编写个许多分布函数的卡方检验程序,从中选出一个拟合误差的函数,但估计是一个繁琐的工作。
发现一个软件 Arena 具有这个功能,利用其中的 输入分析器 可以完成这个工作。
步骤:
1. 打开 Arena 的 Input Analyzer
2. 新建一个分析器
3. 导入数据,数据可以放在 txt 文件里,不要有除了数据外的其他符号和文字
例如一组数:由伽玛分布生成随机数 gmarnd
6.03 2.80
0.96 3.97 2.98
3.32 1.62
3.54 2.28
0.59
4.93 8.64
2.35 1.17
0.67
2.72 4.08
3.17 2.84
1.46
4.89 4.39
6.19 9.50
1.87
导入:
4. 拟合,选择 fit all 功能
5. 查看结果
Arena 给出了 lognormal 分布,可见 arena 软件给出的分布函数更加精细。
相关文章推荐
- 数据拟合---使用自定义函数进行非线性拟合 -在Origin。matlab拟合工具箱cftool
- 数据拟合---使用自定义函数进行非线性拟合 -在Origin。matlab拟合工具箱cftool
- 数据拟合---使用自定义函数进行非线性拟合 -在Origin。matlab拟合工具箱cftool
- 关于matlab中数据拟合的一些函数polyfit()
- R语言如何一次输出一组数据的最大值,最小值,平均值(如何一次完成多个函数)
- matlab最小二乘法数据拟合函数详解
- 用matlab实现自定义函数的数据拟合
- 多元数据分布——以及在MATLAB中的相关函数(《多元数据分析2012》笔记(2))
- matlab已知函数表达式和数据,求表达式中的系数
- 算法(根据提供的某数值,找出与其最接近的一组数据
- MATLAB函数之间数据传递:Matlab里evalin和assignin的用法
- 生成一组数据的累积分布
- matlab数据拟合与线性回归
- MATLAB 输出函数及导出数据(dispfprintf,dlmwrite,xlswrite)
- (转载)一种根据纠偏数据对火星坐标进行完美拟合的方法
- SqlServer:根据指定分隔符,把传入字符串分隔处理后,返回数据表,函数功能类似.NET的string.Split()
- matlab 中 将一组数据归一化到(0,1)之间
- Matlab----基本函数与数据类型
- matlab如何导入csv文件及matlab支持的数据格式,相应函数
- MATLAB ——输出函数及导出数据(dispfprintf,dlmwrite,xlswrite