使用 'Deriv' 包部分微分 R 中的函数
Partially differentiate a function in R using the 'Deriv' package
我需要在 R 中编写一个函数,它依赖于向量 x(随每次模拟而变化)并具有参数 beta_0、beta_1、beta_2。我试图找到此函数关于 beta_0、beta_1 和 beta_2 的偏导数。
我写了一个相同的代码,但它反复返回错误。
我的R代码如下:
func_1 <- function(x,beta_0,beta_1,beta_2){
k <- beta_0+(x[1]*beta_1)+(x[2]*beta_2)
k <- exp(k)/(1+exp(k))
}
Deriv(func_1(x=c(2,3)), 'beta_0')
返回以下错误:
Error in func_1(x = c(2, 3)) :
argument "beta_0" is missing, with no default
In addition: Warning message:
In Deriv(func_1(x = c(2, 3)), "beta_0") :
restarting interrupted promise evaluation
如果您想要关于 beta_0
的偏导数,您仍然需要为所有参数指定值。您还需要传递 Deriv
一个 函数 (或一个表达式);在您的示例中,您正在尝试 评估 x=c(2,3)
处的函数(未指定其他 arguments/parameters 的值)。换句话说,如果你有一个函数foo
,你需要传递foo
,而不是foo([something])
。例如:
library(Deriv)
dd <- Deriv(func_1, "beta_0")
dd(x=c(2,3), beta_0 = 1, beta_1 = 1, beta_2 =1)
## beta_0
## 0.002466509
这里的dd
是对beta_0
的偏导数,是一个函数,可以用你喜欢的任何数值求值。 (如果您需要 符号 偏导数 - 即 beta_0
、beta_1
、beta_2
的任意值的值 - 我不确定Deriv
会那样做...)
我需要在 R 中编写一个函数,它依赖于向量 x(随每次模拟而变化)并具有参数 beta_0、beta_1、beta_2。我试图找到此函数关于 beta_0、beta_1 和 beta_2 的偏导数。 我写了一个相同的代码,但它反复返回错误。
我的R代码如下:
func_1 <- function(x,beta_0,beta_1,beta_2){
k <- beta_0+(x[1]*beta_1)+(x[2]*beta_2)
k <- exp(k)/(1+exp(k))
}
Deriv(func_1(x=c(2,3)), 'beta_0')
返回以下错误:
Error in func_1(x = c(2, 3)) :
argument "beta_0" is missing, with no default
In addition: Warning message:
In Deriv(func_1(x = c(2, 3)), "beta_0") :
restarting interrupted promise evaluation
如果您想要关于 beta_0
的偏导数,您仍然需要为所有参数指定值。您还需要传递 Deriv
一个 函数 (或一个表达式);在您的示例中,您正在尝试 评估 x=c(2,3)
处的函数(未指定其他 arguments/parameters 的值)。换句话说,如果你有一个函数foo
,你需要传递foo
,而不是foo([something])
。例如:
library(Deriv)
dd <- Deriv(func_1, "beta_0")
dd(x=c(2,3), beta_0 = 1, beta_1 = 1, beta_2 =1)
## beta_0
## 0.002466509
这里的dd
是对beta_0
的偏导数,是一个函数,可以用你喜欢的任何数值求值。 (如果您需要 符号 偏导数 - 即 beta_0
、beta_1
、beta_2
的任意值的值 - 我不确定Deriv
会那样做...)