Python 是否存在自启动模型的函数来估计R中高斯模型的参数?
我需要估计高斯模型的参数。我喜欢使用自启动来选择参数。我已经用不同数据集的逻辑模型做了类似的事情。我想知道对于高斯分布是否有类似的SSlogis函数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) 因此,只要用户遵守许可条款,就可以下载
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