如何在Python中使用零偏斜日志转换
如何在Python中进行零偏斜日志转换 例如,在Stata中,它在如何在Python中使用零偏斜日志转换,python,scipy,curve-fitting,skew,Python,Scipy,Curve Fitting,Skew,如何在Python中进行零偏斜日志转换 例如,在Stata中,它在lnskew0中实现(请参阅) 我没有找到Python的实现。有人知道一个实现吗 否则,第一次尝试将是: 从scipy.stats导入倾斜 将numpy作为np导入 从scipy.optimize导入根目录\u标量 def LN0(x): def歪斜ln(k): 返回偏斜(np.log(x-k)) res=根标量( 歪斜, 括号=[-x.min(),x.max()*0.99999], 方法='bisect' ) 返回np.log(
lnskew0
中实现(请参阅)
我没有找到Python的实现。有人知道一个实现吗
否则,第一次尝试将是:
从scipy.stats导入倾斜
将numpy作为np导入
从scipy.optimize导入根目录\u标量
def LN0(x):
def歪斜ln(k):
返回偏斜(np.log(x-k))
res=根标量(
歪斜,
括号=[-x.min(),x.max()*0.99999],
方法='bisect'
)
返回np.log(x-res.root)
在只有正数的
numpy
数组上工作正常。Stata的lnskew0
是如何实现的,它也适用于负数?我又尝试了一次,使它也适用于负数:
从scipy.stats导入倾斜
将numpy作为np导入
从scipy.optimize导入根目录\u标量
def LN0(x):
x0=x+1
def倾斜位置(k):
使用np.errstate(all='ignore'):
返回偏斜(np.log(x0-k))
res_pos=根标量(
歪斜,
括号=[-150150],
方法='bisect'
)
def歪斜(k):
使用np.errstate(all='ignore'):
返回偏斜(np.log(-x0-k))
res_neg=根标量(
歪斜,
括号=[-150150],
方法='bisect'
)
res=(res_pos.root-1,res_neg.root+1)
lnskew0\u res=(
np.log(x-res[0]),
np.log(-x-res[1])
)
whichmin=np.nanargmin([abs(skew(x))表示lnskew0_res中的x)
返回lnskew0_res[哪分钟]
注意:它仍然有一个问题。需要手动选择根标量的括号