怎么用origin做单列数据的正态分布拟合,求概率密度函数?

2024-05-13

1. 怎么用origin做单列数据的正态分布拟合,求概率密度函数?

先用柱状图把你的数据绘制好,然后用Gaussian函数对这组数据拟合,如果你用的是Origin 7.5 或更低的版本,选择 Analysis — Non-linear Curve Fit — Advanced Fitting Tool,在弹出的对话框中的菜单栏中点第二个Function,点Select,在 Categories中选择Origin Basic Function,在 Functions 中选择Gauss或者GaussAmp都可以。操作如下:
1、点击新建数轴键,新建三个Y轴。

2、输入数据

3、选中ABC轴,点击【绘图】,再点击【柱形】

4、新建如图:

5、点击【编辑】→【新建图层】→【右Y】

6、右键单击Y轴,点击【属性】

7、这里可以编辑Y轴的数据,编辑好后就点击【确定】

8、最后效果如图:

怎么用origin做单列数据的正态分布拟合,求概率密度函数?

2. R语言中一组数据服从威布尔分布,怎么判断拟合的效果

首先可以利用fitdistr函数求得weibull分布的形状参数和尺寸参数,假设数据为x:
library(MASS) #fitdistr需要利用MASS包fitdistr(x, densfun = "weibull",lower=0)得到形状参数shape与尺度参数scale
然后利用ks.test进行检验:
ks.test(jitter(x),"pweibull",shape,scale)上边的jitter用来做小扰动,因为如果x中有重复数据的话ks.test会报错,如果x中没有重复数据则不需要jitter。shape是得到的形状参数,scale是得到的尺度参数。
ks.test得到两个结果,一个是D,越小越好,一个是p-value,这个值要大于0.05

3. 已经由数据在r语言中求得函数图像,怎么根据图像求出拟合的函数呢?(得到函数方程式)

lm函数可以帮你,abline(lm(y~x))还可以添加函数的直线。

已经由数据在r语言中求得函数图像,怎么根据图像求出拟合的函数呢?(得到函数方程式)

4. 怎么用r语言写核密度估计函数的程序

R语言实际上是函数的集合,用户可以使用base,stats等包中的基本函数,也可以自己编写函数完成一定的功能。但是初学者往往认为编写R函数十分困难,或者难以理解。这里对如何编写R函数进行简要的介绍。
函数是对一些程序语句的封装。换句话说,编写函数,可以减少人们对重复代码书写,从而让R脚本程序更为简洁,高效。同时也增加了可读性。一个函数往往完成一项特定的功能。例如,求标准差sd,求平均值,求生物多样性指数等。R数据分析,就是依靠调用各种函数来完成的。但是编写函数也不是轻而易举就能完成的,需要首先经过大量的编程训练。特别是对R中数据的类型,逻辑判别、下标、循环等内容有一定了解之后,才好开始编写函数。 对于初学者来说,最好的方法就是研究现有的R函数。因为R程序包都是开源的,所有代码可见。研究现有的R函数能够使编程水平迅速提高。
R函数无需首先声明变量的类型,大部分情况下不需要进行初始化。一个完整的R函数,需要包括函数名称,函数声明,函数参数以及函数体几部分。

函数名称,即要编写的函数名称,这一名称就作为将来调用R函数的依据。
2. 函数声明,包括 <- function, 即声明该对象的类型为函数。
3. 函数参数,这里是输入的数据,函数参数是一个虚拟出来的一个对象。函数参数所等于的数据,就是在函数体内部将要处理的值,或者对应的数据类型。 函数体内部的程序语句进行数据处理,就是对参数的值进行处理 ,这种处理只在调用函数的时候才会发生。函数的参数可以有多种类型。R help的界面对每个函数,及其参数的意义及所需的数据类型都进行了说明。
4. 函数体
常常包括三部分.
(1). 异常处理
输入的数据不能满足函数计算的要求,或者类型不符, 这时候一定要设计相应的机制告诉用户,输入的数据在什么地方有错误。 错误又分为两种。
第一种, 如果输入的数据错误不是很严重,可以经过转换,变为符合处理要求的数据时, 此时只需要给用户一个提醒,告知数据类型不符,但是函数本身已经 进行了相应的转换。
第二种,数据完全不符合要求,这种情况下,就 要终止函数的运行,而告知因为什么,函数不能运行。这样,用户在 使用函数的情况先才不至于茫然。
(2). 运算过程
包括具体的运算步骤。 运算过程和该函数要完成的功能有关。
R运算过程中,应该尽量减少循环的使用,特别是嵌套循环。R提供了 apply,replicate等一系列函数,来代替循环,应该尽量应用这些函数, 提高效率。 如果在R中实在太慢,那么核心部分只能依靠C或者Fortran 等语言编写,然后再用R调用这些编译好的模块,达到更高的效率。
运算过程中,需要大量用到if等条件作为判别的标准。if和while都是需要数据TRUE/FALSE这样的逻辑类型变量,这就意味着,if内部,往往是对条件的判别,例如 is.na, is.matrix, is.numeric等等,或者对大小的比较,如,if(x > 0), if(x == 1), if(length(x)== 3)等等。if后面,如果是1行,则花括号可以省略,否则就必须要将所有的语句都放在花括号中。这和循环是一致的。
例子:
## if与条件判断
fun.test <- function(a, b, method = "add"){
if(method == "add") { ## 如果if或者for/while;
res <- a + b ## 等后面的语句只有一行,则无需使用花括号。
}
if(method == "subtract"){
res <- a - b
}
return(res) ## 返回值
}
### 检验结果
fun.test(a = 10, b = 8, method = "add")
fun.test(a = 10, b = 8, method = "substract")

5. 如何在java中使用R语言进行参数拟合

int i; 这里的i就是一个变量。它是对应于常量来说的。
在java里不是叫函数,是叫方法。
比如public String getHelloWorld(String str);这就是一个方法。
函数的自变量就是函数内部定义的一个变量。也叫局部变量,它只在函数的内部被使用。
比如public void getHelloWorld(String str){
  String strHelloWorld = str;这里定义的strHelloWorld就是一个自变量
}
上面的str就是函数的参数。

如何在java中使用R语言进行参数拟合

6. 如何用MATLAB或R语言求出该曲线的方程?

我个人的倾向是在物理意义上这条曲线没有确定的方程, 因为从从图形上介于周期和随机之间, 更近于随机. 求方程的意义不仅仅在于可以满足目前数据, 还能预测未来数据. 你可以通过拟合得到一些似乎正确的方程, 但是这个方程可能仅仅是看起来能和目前数据吻合, 但基本不能预测比如2016年的数据, 那么求这个方程也就没有意义了. 
如果要做拟合的话: 
首先要选好拟合函数, 是多项式拟合还是正弦曲线拟合(这matlab有相应的工具箱和函数库), 或者你有一个自己构思的含待定系数的函数式, 那可以用最小二乘法进行拟合. 在这里用高阶多项式拟合能对目前数据拟合得很好, 但对于一些其它点比如2016年什么的, 就乱七八糟了. 用低阶正弦拟合可以拟合个大概, 但不准确. 
对于这些数据我建议还是采用统计手段, 求求平均和方差, FFT分析一下是否真的有明显的周期性啦等等.

7. matlab如何将一组数据的概率密度函数与频数直方图画在一起?

1、首先,我们随机产生三组范围不同的数据,数据量都为500,他们的边界分别为[10,15],[23,38],,[38,58]。

2、分别画出x1,x2,x3对应的曲线,用MATLAB的内置函数plot进行操作,分别用三个plot进行绘图。

3、需要用一个语句来保留前面所绘制的图,在需要保留的图的后面加一句hold on,即可将该图保留,使它不被后面的图所覆盖。

4、这样就可以将三条曲线画在一张图上,为了区别,要分别给这三条曲线定义不同的颜色。

5、为了图的美观,我们可以用grid on添加网格线,还需要添加横纵坐标轴标题。

6、因为我们画的是多条曲线,因此还需要添加图例。

matlab如何将一组数据的概率密度函数与频数直方图画在一起?

8. 如果一组样本不服从目前已知的分布(常态分布,二项分布等等),如何拟合出它的机率密度函数呢?

本来概率与样本的频率就不是一回事 从样本求其满足的概率分布就是一个近似的过程 现在己有判断分布是否正态分布的方法 一般应该先看频率分布图 是否类似于已知的一些分布 你如果用判断正态分布的办法已经否定了其服从正态分布 那就可以试试t分布试试 现在似乎没有现成方法判断t分布 但大约方法是类似的 供参考