我必须使用核函数方法,使用高斯核来估算股票的收益(cs),以估计边际密度。
以下是我目前拥有的代码,但是,我正在努力寻找函数def gaussiankernel的代码。
我必须使用f(x)
做其他功能吗?如果是这样,我应该在该函数中添加什么?
import pandas as pd
import numpy as np
#returns of stock (imported cs data before)
nb_ret = len(cs) - 1
RA_CS = np.zeros(nb_ret)
RA_CS = (cs[1:len(cs)].values - cs[0:(len(cs)-1)].values)/cs[0:(len(cs)-1)].values
import matplotlib.pyplot as plt
import math
nb_points=2000
obs=np.array(RA_CS)
obs.shape=(len(RA_CS),1)
def f(x) ???
def gaussiankernel(obs, nb_points, bandwidth):
kernel_points=np.linspace(min(obs), max(obs), nb_points)
result=np.ones(len(kernel_points))
for x in range(0, len(kernel_points)):
result[x]=(statistics.mean(f((kernel_points[x]- obs)/bandwidth))/ bandwidth)
return np.array([kernel_points, result])
pdf_CS=gaussiankernel(RA_CS, nb_points, )