波动率 计算学习 离散系数
目录
离散系数 也叫变异系数
变异系数的意义:
波动率 需要pandas
最后两条数据,波动率减少,但是离散系统增大。
离散系数 也叫变异系数
变异系数的意义:
-
小的 CV 值:数据比较集中,变异性小,表示数据大多数值接近均值。
-
大的 CV 值:数据波动性大,表示数据离均值的偏差较大,变异性高。
import numpy as np
# 第一组数据
time_series_data_1 = np.array([1, 2, 3, 4, 5, 5, 7])
mean_1 = np.mean(time_series_data_1)
std_dev_1 = np.std(time_series_data_1)
# 第二组数据
time_series_data_2 = np.array([0.1, 0.2, 0.3, 0.4, 0.5, 0.6,0.7])
mean_2 = np.mean(time_series_data_2)
std_dev_2 = np.std(time_series_data_2)
# 计算变异系数 (CV)
cv_1 = std_dev_1 / mean_1
cv_2 = std_dev_2 / mean_2
print(f"第一组数据的变异系数 (CV): {cv_1}")
print(f"第二组数据的变异系数 (CV): {cv_2}")
波动率 需要pandas
import numpy as np
import pandas as pd
# 示例数据:假设这是一个股票的价格时间序列
prices = [1, 2, 3, 4, 5, 6, 7]
prices = [0.1, 0.2, 0.3, 0.4, 0.5, 0.6,0.7]
# 将价格转换为 Pandas Series
prices_series = pd.Series(prices)
# 计算对数收益率
returns = np.log(prices_series / prices_series.shift(1))
# 计算日波动率:收益率的标准差
volatility = returns.std()
# 输出结果
print(f"波动率: {volatility}")
最后两条数据,波动率减少,但是离散系统增大。
import numpy as np
import pandas as pd
def bodonglv(prices):
prices_series = pd.Series(prices)
returns = np.log(prices_series / prices_series.shift(1))
volatility = returns.std()
return volatility
def bianyi(prices):
mean_2 = np.mean(prices)
std_dev_2 = np.std(prices)
cv_2 = std_dev_2 / mean_2
return cv_2
prices = [0.1,0.2, 0.3, 0.1, 0.4, 0.1, 0.3,0.1]
volatility = bodonglv(prices)
print(f"波动率: {volatility}")
cv_v=bianyi(prices)
# print(f"bianyi:{cv_2},std:{std_dev_2}")
print(f"bianyi:{cv_v}")
prices = [0.1,0.2, 0.3, 0.2, 0.1, 0.2, 0.3,0.1]
volatility = bodonglv(prices)
print(f"波动率: {volatility}")
cv_v=bianyi(prices)
# print(f"bianyi:{cv_2},std:{std_dev_2}")
print(f"bianyi:{cv_v}")
prices = [0.1,0.2, 0.3, 0.2, 0.1, 0.2, 0.3,0.4]
volatility = bodonglv(prices)
print(f"波动率: {volatility}")
cv_v=bianyi(prices)
# print(f"bianyi:{cv_2},std:{std_dev_2}")
print(f"bianyi:{cv_v}")
波动率: 1.1625636872586609
bianyi:0.5590169943749473
波动率: 0.7235921807490139
bianyi:0.41633319989322654
波动率: 0.5389467040537531
bianyi:0.43033148291193524