我想使用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相关推荐

  1. 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 ...

  2. 机器视觉学习之--贝叶斯学习 MATLAB二维正态分布二维图

    1.贝叶斯介绍 我个人一直很喜欢算法一类的东西,在我看来算法是人类智慧的精华,其中蕴含着无与伦比的美感.而每次将学过的算法应用到实际中,并解决了实际问题后,那种快感更是我在其它地方体会不到的. 一直想 ...

  3. MATLAB拟合中的fit用法

    MATLAB 拟合 fit Fit model to data Syntax cfun = fit(xdata,ydata,libname) cfun = fit(-,PropName,PropVal ...

  4. MATLAB绘制二元正态分布

    MATLAB绘制二元正态分布 MATLAB自定义函数,用来绘制二元正态分布. 代码如下 function tow_p(a1,a2,b1,b2,p1,xmin,ymin,b )%a1,a2均值,b1,b ...

  5. Matlab中产生正态分布随机数的函数normrnd-----用来产生高斯随机矩阵

     Matlab中产生正态分布随机数的函数normrnd-----用来产生高斯随机矩阵 功能:生成服从正态分布的随机数 语法: R=normrnd(MU,SIGMA) R=normrnd(MU,SI ...

  6. 一维正态分布、二维正态分布的matlab实现

    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %本程序用于产生一维正态分布.二维正态分布 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ...

  7. 二维正态分布matlab程序,一维正态分布、二维正态分布的matlab实现

    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %本程序用于产生一维正态分布.二维正态分布 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ...

  8. 判别数据是否满足正态分布,将非正态分布转化为正态分布

    本文主要分两个部分,(1)判别当前数据是否满足正态分布:(2)介绍几种非正态分布转化为正态分布的方法: 1. 正态分布判别 常用的正态分布判别方法主要有三种方法: (1)直方图:直方图(Histogr ...

  9. python绘制正态分布函数_学好正态分布有多重要?

    作者 | Farhad Malik 译者 | Monanfei 责编 | 夕颜 出品 | AI科技大本营(ID: rgznai100) 为什么正态分布如此特殊?为什么大量数据科学和机器学习的文章都围绕 ...

  10. matlab fittype 求不出参数,[转]matlab 中fit fittype

    1.确定要拟合的类型 一般情况下matlab会直接提供常用的类型,用fittype创建拟合模型.至于matlab具体提供了哪些模型,参见帮助"List of library models f ...

最新文章

  1. python第五次作业——陈灵院
  2. virtual box中安装Mac OS后设置分辨率
  3. js javascript 判断字符串是否包含某字符串,String对象中查找子字符,indexOf
  4. Excel的一些工作中不算是常见,但是遇到时常常不知所错的,问题,与解决方案。
  5. vue-cli项目中单文件组件引入bootstrap.js异常的解决方案
  6. ECMAScript5 [].reduce()
  7. 分布式系统中协调和复制技术的原理
  8. 【Python】高级函数
  9. uctools.php,Discuz曝出安全隐患 XSS脚本漏洞和uctools.php
  10. 第4章第20节:异形图表:使用子母饼图制作人员组成表 [PowerPoint精美幻灯片实战教程]
  11. Python Turtle绘图【难度2星】:横切的橙子(基础效果/画海绵层优化)
  12. html外联php,html如何添加css样式?行内式、内嵌式、外联式的优缺点
  13. 免费和开源引擎的游戏引擎,转载自维基
  14. 知乎大V推荐!如何在面试中通过工厂模式来给自己加分?圆我大厂梦!
  15. 解析迅捷产品的八大特点
  16. 自定义注解,实现jpa查询,使用起来很方便,记录一下
  17. 老子《道德经》里的投资之道
  18. Javascript 获得当前文件的url 目录,不含文件名
  19. linux远程kill进程
  20. biopython 【1】简单介绍【常用板块、安装】

热门文章

  1. 在使用QueryRunner时候的异常问题Wrong number of parameters:excepted 0,was given 10 Query
  2. TyperError: excepted str,byte or os.PathLike object, not io.TextIOWrapper
  3. CN2专线和普通国际对比优势在哪里 有什么优势
  4. 研发思维09----嵌入式智能产品开发经过思考
  5. WPS Word为PDF签名
  6. 转帖:三种快乐物质——多巴胺、血清素、内啡肽
  7. MYSQL 随机字符串
  8. jquery实现登录成功界面_【jQuery实例】Ajax登录页面
  9. 2012-7-05可樂词汇积累#9312;
  10. 求闰年的c语言程序函数,c语言闰年(闰年的算法c语言程序)