小编Ye *_*ian的帖子

R的{pracma}和{numDeriv}库中的grad函数给出了错误的结果

我感兴趣的是pTgh_y(q,g,h)关于q 的自定义函数的一阶数值导数.对于特殊情况,pTgh_y(q,0,0)= pnorm(q).换句话说pTgh_y(q,g,h),当g = h = 0时,降低到标准法线的CDF(见下图).

在此输入图像描述

这意味着d pTgh_y(0,0,0)/ dq应等于以下

dnorm(0)
Run Code Online (Sandbox Code Playgroud)

0.3989423

grad(pnorm,0)
Run Code Online (Sandbox Code Playgroud)

0.3989423

以下是我在{pracma}库中使用grad函数的一些尝试.

library(pracma)
# load pTgh and all relevant functions
grad(function(x){pTgh_y(x,0,0)},0)
Run Code Online (Sandbox Code Playgroud)

0

grad(function(x){pTgh_y(x,0,0)},0,heps=1e-10)
Run Code Online (Sandbox Code Playgroud)

0

以下是我在{numDeriv}库中使用grad函数的一些尝试.

library(numDeriv)
# load pTgh and all relevant functions
grad(function(x){pTgh_y(x,0,0)},0,method='simple')
Run Code Online (Sandbox Code Playgroud)

0.3274016

grad(function(x){pTgh_y(x,0,0)},0,method='Richardson')
Run Code Online (Sandbox Code Playgroud)

-0.02505431

grad(function(x){pTgh_y(x,0,0)},0,method='complex')
Run Code Online (Sandbox Code Playgroud)

pmin中的错误(x,.Machine $ double.xmax):无效的输入类型grad.default中的错误(函数(x){:函数不接受方法'complex'所需的复杂参数.

这些功能都没有给出正确的结果.

我的pTgh_y(q,g,h)功能定义如下

qTgh_y = function(p,g,h){                             
  zp = qnorm(p)
  if(g==0) q = zp                                    
  else     q = (exp(g*zp)-1)*exp(0.5*h*zp^2)/g       
  q[p==0] = -Inf
  q[p==1] = Inf
  return(q)
}

pTgh_y = function(q,g,h){                      
  if (q==-Inf) return(0) …
Run Code Online (Sandbox Code Playgroud)

r gradient-descent

5
推荐指数
1
解决办法
486
查看次数

从r中的日期提取仅四分之一

我想从日期中仅提取季度,例如,从"2003-02-08"日期获得整数1.我一直在尝试这条线

library(mondate)
as.yearqtr(dat$DATE)
Run Code Online (Sandbox Code Playgroud)

"2003 Q1"

as.character(as.yearqtr(dat$DATE))[1]
Run Code Online (Sandbox Code Playgroud)

"2003 Q1"

没有给出我想要的结果.当然我可以写如下条件

library(data.table)
data$DATE = as.Date(data$DATE, format='%d%b%Y')
data$month=month(data$DATE)
setDT(data)[month==1,  quarter:=1]  
    ...
Run Code Online (Sandbox Code Playgroud)

这会起作用,但根本不优雅.这样做有更美妙的方式吗?

谢谢lmo和user2100721!我真的希望我能接受所有的答案!

r date

5
推荐指数
3
解决办法
8875
查看次数

标签 统计

r ×2

date ×1

gradient-descent ×1