Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 是否存在自启动模型的函数来估计R中高斯模型的参数?_Python_R_Gaussian - Fatal编程技术网

Python 是否存在自启动模型的函数来估计R中高斯模型的参数?

Python 是否存在自启动模型的函数来估计R中高斯模型的参数?,python,r,gaussian,Python,R,Gaussian,我需要估计高斯模型的参数。我喜欢使用自启动来选择参数。我已经用不同数据集的逻辑模型做了类似的事情。我想知道对于高斯分布是否有类似的SSlogis函数 x <- runif(20) y <- rexp(20) a <- data.frame(x,y) log_model <- nls(y~SSlogis(x, phi1, phi2, phi3), data = a) R是开源的,Bioconductor在 许可证:GPL(>=2) 因此,只要用户遵守许可条款,就可以下载

我需要估计高斯模型的参数。我喜欢使用自启动来选择参数。我已经用不同数据集的逻辑模型做了类似的事情。我想知道对于高斯分布是否有类似的SSlogis函数

x <- runif(20)
y <- rexp(20)
a <- data.frame(x,y)

log_model <- nls(y~SSlogis(x, phi1, phi2, phi3), data = a)

R是开源的,Bioconductor在

许可证:GPL(>=2)

因此,只要用户遵守许可条款,就可以下载并使用函数
SSgauss
的源代码

以下是在文件
xcms/R/models.R
中找到的函数的源代码

SSgauss <- selfStart(~ h*exp(-(x-mu)^2/(2*sigma^2)), function(mCall, data, LHS) {
  
  xy <- sortedXyData(mCall[["x"]], LHS, data)
  
  len <- dim(xy)[1]
  xyarea <- sum((xy[2:len,2]+xy[1:(len-1),2])*(xy[2:len,1]-xy[1:(len-1),1]))/2
  maxpos <- which.max(xy[,2])
  
  mu <- xy[maxpos,1]
  h <- xy[maxpos,2]
  sigma <- xyarea/(h*sqrt(2*pi))
  
  value <- c(mu, sigma, h)
  names(value) <- mCall[c("mu", "sigma", "h")]
  value
  
}, c("mu", "sigma", "h"))

SSgauss查找
SSgauss
有什么困难?您需要
install.packages(“BioManager”);BioManager::安装(“xcms”);库(xcms)
谢谢!它工作!!!
SSgauss <- selfStart(~ h*exp(-(x-mu)^2/(2*sigma^2)), function(mCall, data, LHS) {
  
  xy <- sortedXyData(mCall[["x"]], LHS, data)
  
  len <- dim(xy)[1]
  xyarea <- sum((xy[2:len,2]+xy[1:(len-1),2])*(xy[2:len,1]-xy[1:(len-1),1]))/2
  maxpos <- which.max(xy[,2])
  
  mu <- xy[maxpos,1]
  h <- xy[maxpos,2]
  sigma <- xyarea/(h*sqrt(2*pi))
  
  value <- c(mu, sigma, h)
  names(value) <- mCall[c("mu", "sigma", "h")]
  value
  
}, c("mu", "sigma", "h"))
x <- runif(20)
y <- rexp(20)
a <- data.frame(x, y)

gauss_model <- nls(y ~ SSgauss(x, mu, sigma, h), data = a)
summary(gauss_model)
#
#Formula: y ~ SSgauss(x, mu, sigma, h)
#
#Parameters:
#      Estimate Std. Error t value Pr(>|t|)    
#mu      0.5844     0.0989   5.909 1.72e-05 ***
#sigma   0.3540     0.1436   2.465  0.02463 *  
#h       1.2453     0.3364   3.702  0.00177 ** 
#---
#Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#
#Residual standard error: 0.7832 on 17 degrees of freedom
#
#Number of iterations to convergence: 9 
#Achieved convergence tolerance: 2.897e-06