问题
Python答题框架
import numpy as np
import matplotlib.pyplot as plt
class DiscreteRandomVariable:
def __init__(self, a=0, b=1):
self.low = a
self.high = b
def draw(self, num_samples):
return np.random.randint(self.low, self.high, num_samples)
# 10次抛掷
# 在此处编写代码
# 1,000,000次抛掷
# 在此处编写代码
完整数据
硬币取值范围 [1,3),生成整数1或2
问题
Python答题框架
class BinomialRandomVariable(DiscreteRandomVariable):
def __init__(self, n=10, p=0.5):
self.n = n
self.p = p
def draw(self, num_samples):
return np.random.binomial(self.n, self.p, num_samples)
def factorial(n):
# 在此处编写阶乘函数
# 生成分布
# 在此处编写代码
# 寻找最高频值
# 在此处编写代码
# 计算理论概率
# 在此处编写代码
a. 概率密度函数绘图
问题
绘制μ=0,σ=5的正态分布PDF曲线
Python答题框架
mu = 0
sigma = 5
x = np.linspace(-30, 30, 200)
# 在此处编写PDF公式
plt.plot(x, y)
b. 置信区间
问题
计算并绘制1/2/3倍σ置信区间
Python答题框架
# 计算置信区间范围
first_ci = (...)
# 绘制垂直线
plt.axvline(...)
问题
Python答题框架
import yfinance as yf
# 数据获取
data = yf.download('SPY', start='2016-01-01', end='2016-05-01')
prices = data['Close']
returns = prices.pct_change().dropna()
# 参数计算
mu = (...)
sigma = (...)
# 绘制分布与置信区间
# 在此处编写代码
# JB检验
from statsmodels.stats import stattools
_, pvalue, skew, kurt = stattools.jarque_bera(returns)
完整数据
使用yfinance直接获取实时历史数据
注意事项
pip install yfinance statsmodels matplotlib