r - 如何为 optimx 函数中的参数下限定义不等式约束(> 0)
问题描述
我正在尝试在 R 中使用 optimx 函数来最小化具有四个参数的函数。所有参数都需要大于 0 (> 0)。该函数实际上是数据集残差的总和。我需要把什么作为lower
参数来定义这样的约束(即par>0)?
dat <- data.frame(x1=c(0.000163748 , 0.000141609,
0.000202383 , 0.000199971,
0.000261698 , 0.000265203,
0.000409705 , 0.00042005,
0.001236108 , 0.001330472),
x2=c(0.000144412 , 0.000142153,
0.000222341 , 0.00022807,
0.00031753 , 0.000433908,
0.000524367 , 0.000542441,
0.002087011 , 0.002026212),
x3=c(0.000333708 , 0.000308,
0.000395904 , 0.000436969,
0.000657612 , 0.000674400,
0.001039139 , 0.001308073,
0.005091189 , 0.005299810),
x4=c(0.000245495 , 0.000212988,
0.000262344 , 0.000268059,
0.000442362 , 0.000440593,
0.000748795 , 0.000786637,
0.003249222 , 0.003182184),
y=c(1.273497303 , 1.273861357,
1.595002072 , 1.594726213,
2.10682323 , 2.10583998,
3.144250458 , 3.140591138,
5.963073073 , 5.959330577))
min.RSS <- function(data, par) {
with(data, sum((((956.1 * (x1 ^ 0.79) / par[1]) ^ (1/0.71) +
(72.9 * (x2 ^ 0.67) / par[2]) ^ (1/0.71) +
(103 * (x3 ^ 0.66) / par[3]) ^ (1/0.71) +
(289 * (x4 ^ 0.72) / par[4]) ^ (1/0.71)) ^ 0.71- y)^2))
}
library(optimx)
result1 <- optimx (par=c(10 , 10 , 5 , 5),
fn = min.RSS,
method = "L-BFGS-B",
data = dat)
解决方案
推荐阅读
- c# - WPF MVVM 我可以从视图中使用模型吗
- python - 在 python 中导入高频更新数据的最佳方法是什么?
- java - 使用 prometheus 的自定义计数器在 /actuator/prometheus 上不可见
- docker - curl证书在docker容器中失败
- apache-spark - 如何将 spark 数据框模式存储在 databricks 笔记本的变量中?
- ios - iOS/tvOS 根据操作系统版本使用不同的应用程序扩展
- javascript - CSS/JavaScript 表格折叠:有第一个栏可以展开我的表格,我如何添加第二个底部栏来再次折叠它?
- java - 休眠错误:-托管刷新期间出错[批量更新从更新[0]返回了意外的行数;实际行数:0;预期:1]
- css - textarea 元素的滚动条覆盖边框
- laravel - 在 Laravel Eloquent 关系中使用急切加载无法获取模型属性