r - 使用 optimr 最小化函数
问题描述
我正在尝试从 optimr 包中运行 optimr 函数。我的代码是
library(optimr)
#____function to compute Sum of Square Errors
SSE=function(par,T) {
options(warn = -1)
nr = dim(T)[1] # number of redds (rows)
S = numeric(nr) # redd survival vector
TC = par[1]
bt = par[2]
#--- temperature deviations dT=(Ti-TC)
dT = sweep(T,1,TC,FUN='-')
dT = ifelse(is.na(dT)|dT<0,0,dT)
h = bt*dT
for(i in 1:nr) S[i] = 1-prod(exp(-h[i,]))
SSE = sum((S-mean(S))^2) # same as var(S)*(nr-1)
options(warn = 0)
}
#___ Data
Temp = matrix(round(rnorm(2000,12,1.5),2), ncol=20) #fictious data used
hist(Temp,col='grey60')
#____ minimize SSE via optimizer
o = optimr(par=c(8,.01),fn=SSE,T=Temp,method='Nelder-Mead')
print(cbind(Tcrit=o$par[1],bt=o$par[2]),digits=3)
问题是无论我给命令什么初始参数值,它都会返回相同的初始值。我知道如果起始值在平面上,这些值不会改变,但无论我给它什么值,都会返回相同的值。有什么建议么?
解决方案
推荐阅读
- azure - 在 Azure 门户中为事件类型 Microsoft.Storage.BlobCreated 创建主题筛选规则
- c# - 未分配的局部变量问题
- reactjs - 一个带有 react.js 的简单表单组件。但是onsubmit所有字段总是空的?
- postgresql - 从 rsync 克隆 PostgreSQL 11
- sql - 如何在表中创建缺少属性的查询?
- reactjs - 在反应组件中,无法使用退格从输入框中清除最后一个整数
- git - 在 Azur DevOps 中将构建服务“用户”添加到“项目集合构建服务”
- java - 我可以在 java 方法中模拟休息调用吗
- java - 为什么 AVG 函数的结果为空?
- reactjs - 如何解决第一个渲染中的问题?