fit对数正态分布matlab,拟合对数正态分布使用Scipy与Matlab
我想使用Scipy拟合对数正态分布。我之前已经使用Matlab来完成它,但由于需要将应用程序扩展到统计分析之外,我正在试图在Scipy中重现拟合值。拟合对数正态分布使用Scipy与Matlab
下面是Matlab代码我用适合我的数据:
% Read input data (one value per line)
x = [];
fid = fopen(file_path, 'r'); % reading is default action for fopen
disp('Reading network degree data...');
if fid == -1
disp('[ERROR] Unable to open data file.')
else
while ~feof(fid)
[x] = [x fscanf(fid, '%f', [1])];
end
c = fclose(fid);
if c == 0
disp('File closed successfully.');
else
disp('[ERROR] There was a problem with closing the file.');
end
end
[f,xx] = ecdf(x);
y = 1-f;
parmhat = lognfit(x); % MLE estimate
mu = parmhat(1);
sigma = parmhat(2);
而这里的拟合图:
现在,这里是我的Python代码实现同样的目的:
import math
from scipy import stats
from statsmodels.distributions.empirical_distribution import ECDF
# The same input is read as a list in Python
ecdf_func = ECDF(degrees)
x = ecdf_func.x
ccdf = 1-ecdf_func.y
# Fit data
shape, loc, scale = stats.lognorm.fit(degrees, floc=0)
# Parameters
sigma = shape # standard deviation
mu = math.log(scale) # meanlog of the distribution
fit_ccdf = stats.lognorm.sf(x, [sigma], floc=1, scale=scale)
下面是使用Python代码的配合。
正如你看到的,代码两套能够产生良好的配合,至少在视觉上来讲的。
问题是估计参数mu和sigma存在巨大差异。
来自Matlab:mu = 1.62 sigma = 1.29。 Python:mu = 2.78 sigma = 1.74。
为什么会有这样的差异?
注意:我已经仔细检查过两套数据都是正确的,一样。分数相同,分布相同。
非常感谢您的帮助!提前致谢。
其他信息:
import scipy
import numpy
import statsmodels
scipy.__version__
'0.9.0'
numpy.__version__
'1.6.1'
statsmodels.__version__
'0.5.0.dev-1bbd4ca'
Matlab的版本是R2011b。
版:
正如下面的回答证明,故障在于SciPy的0.9。我能够使用Scipy 11.0从Matlab重现mu和sigma结果。
一个简单的方法来更新您的SciPy的是:
pip install --upgrade Scipy
如果你不具备PIP(你应该!):
sudo apt-get install pip
2013-03-26
Mike
+1
看看这两组数据点,它们看起来相当不同(例如,比较右下角蓝色圆圈的位置)。如果数据不相同,则没有理由认为适合。 –
2013-03-26 06:29:18
+0
两组数据*完全相同。我已经彻底检查过,以确保事实并非如此。这些图显示略有不同,因为我用来在Matlab中绘制的代码是非库代码。无论如何,要点是所拟合的数据完全相同,因此它们应该产生相同的平均值和标准偏差值。 –
2013-03-26 06:40:59
+0
我很抱歉,但我不买这个(除非情节是关闭的)。只是直观地比较两个图上最右边的点的横坐标,看看它们是*非常*不同。如果您肯定数据是相同的,请将它与您用于将其读入Python和MATLAB的代码一起包含它。 –
2013-03-26 06:44:34
fit对数正态分布matlab,拟合对数正态分布使用Scipy与Matlab相关推荐
- matlab拟合四次函数表达式,用matlab编写程序求以幂函数作基函数的3次、4次多项式的最小二乘曲线拟合,画出数据散点图及拟合曲线图...
共回答了18个问题采纳率:83.3% x=[0.0 0.1 0.2 0.3 0.5 0.8 1.0]; %输入数组 >> y=[1.0 0.41 0.50 0.61 0.91 2.02 2 ...
- 机器视觉学习之--贝叶斯学习 MATLAB二维正态分布二维图
1.贝叶斯介绍 我个人一直很喜欢算法一类的东西,在我看来算法是人类智慧的精华,其中蕴含着无与伦比的美感.而每次将学过的算法应用到实际中,并解决了实际问题后,那种快感更是我在其它地方体会不到的. 一直想 ...
- MATLAB拟合中的fit用法
MATLAB 拟合 fit Fit model to data Syntax cfun = fit(xdata,ydata,libname) cfun = fit(-,PropName,PropVal ...
- MATLAB绘制二元正态分布
MATLAB绘制二元正态分布 MATLAB自定义函数,用来绘制二元正态分布. 代码如下 function tow_p(a1,a2,b1,b2,p1,xmin,ymin,b )%a1,a2均值,b1,b ...
- Matlab中产生正态分布随机数的函数normrnd-----用来产生高斯随机矩阵
Matlab中产生正态分布随机数的函数normrnd-----用来产生高斯随机矩阵 功能:生成服从正态分布的随机数 语法: R=normrnd(MU,SIGMA) R=normrnd(MU,SI ...
- 一维正态分布、二维正态分布的matlab实现
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %本程序用于产生一维正态分布.二维正态分布 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ...
- 二维正态分布matlab程序,一维正态分布、二维正态分布的matlab实现
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %本程序用于产生一维正态分布.二维正态分布 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ...
- 判别数据是否满足正态分布,将非正态分布转化为正态分布
本文主要分两个部分,(1)判别当前数据是否满足正态分布:(2)介绍几种非正态分布转化为正态分布的方法: 1. 正态分布判别 常用的正态分布判别方法主要有三种方法: (1)直方图:直方图(Histogr ...
- python绘制正态分布函数_学好正态分布有多重要?
作者 | Farhad Malik 译者 | Monanfei 责编 | 夕颜 出品 | AI科技大本营(ID: rgznai100) 为什么正态分布如此特殊?为什么大量数据科学和机器学习的文章都围绕 ...
- matlab fittype 求不出参数,[转]matlab 中fit fittype
1.确定要拟合的类型 一般情况下matlab会直接提供常用的类型,用fittype创建拟合模型.至于matlab具体提供了哪些模型,参见帮助"List of library models f ...
最新文章
- python第五次作业——陈灵院
- virtual box中安装Mac OS后设置分辨率
- js javascript 判断字符串是否包含某字符串,String对象中查找子字符,indexOf
- Excel的一些工作中不算是常见,但是遇到时常常不知所错的,问题,与解决方案。
- vue-cli项目中单文件组件引入bootstrap.js异常的解决方案
- ECMAScript5 [].reduce()
- 分布式系统中协调和复制技术的原理
- 【Python】高级函数
- uctools.php,Discuz曝出安全隐患 XSS脚本漏洞和uctools.php
- 第4章第20节:异形图表:使用子母饼图制作人员组成表 [PowerPoint精美幻灯片实战教程]
- Python Turtle绘图【难度2星】:横切的橙子(基础效果/画海绵层优化)
- html外联php,html如何添加css样式?行内式、内嵌式、外联式的优缺点
- 免费和开源引擎的游戏引擎,转载自维基
- 知乎大V推荐!如何在面试中通过工厂模式来给自己加分?圆我大厂梦!
- 解析迅捷产品的八大特点
- 自定义注解,实现jpa查询,使用起来很方便,记录一下
- 老子《道德经》里的投资之道
- Javascript 获得当前文件的url 目录,不含文件名
- linux远程kill进程
- biopython 【1】简单介绍【常用板块、安装】
热门文章
- 在使用QueryRunner时候的异常问题Wrong number of parameters:excepted 0,was given 10 Query
- TyperError: excepted str,byte or os.PathLike object, not io.TextIOWrapper
- CN2专线和普通国际对比优势在哪里 有什么优势
- 研发思维09----嵌入式智能产品开发经过思考
- WPS Word为PDF签名
- 转帖:三种快乐物质——多巴胺、血清素、内啡肽
- MYSQL 随机字符串
- jquery实现登录成功界面_【jQuery实例】Ajax登录页面
- 2012-7-05可樂词汇积累#9312;
- 求闰年的c语言程序函数,c语言闰年(闰年的算法c语言程序)