🔴
入学要求
💯
能力测试
🛣️
课程安排
🕹️
研究资源

练习

习题1:卡尔曼滤波参数敏感性分析

问题描述

在"实例1:下落小球跟踪"中,调整观测噪声协方差参数(observation_covariance)取值分别为1、10、50,完成以下任务:

  1. 生成对应噪声水平的观测数据
  1. 运行不同参数配置的卡尔曼滤波器
  1. 绘制不同噪声水平下的滤波效果对比图
  1. 分析卡尔曼增益随噪声参数变化的规律

依赖代码

import numpy as np
import matplotlib.pyplot as plt
from pykalman import KalmanFilter

# 基础参数配置
tau = 0.1
g = -9.8
true_initial_position = 30
true_initial_velocity = 10

# 生成真实轨迹
t = np.arange(40)
real_positions = true_initial_position + true_initial_velocity*t + 0.5*g*tau**2*t**2

# 不同噪声水平的观测数据生成
noise_levels = [1, 10, 50]
observations = {
    f'noise_{nl}': real_positions + np.random.randn(len(t))*nl
    for nl in noise_levels
}

# 此处留空用于滤波器配置和运行

习题2:动态风险敞口分析

问题描述

选取新能源汽车行业股票(如TSLA)与科技行业ETF(QQQ),完成以下任务:

  1. 获取2021年1月1日至2023年12月31日的日收益率数据
  1. 实现动态Beta估计算法
  1. 绘制Beta系数随时间变化曲线
  1. 比较与传统60日滚动回归计算的Beta差异

依赖代码

import yfinance as yf
import pandas as pd

# 数据获取与预处理
symbols = ['TSLA', 'QQQ']
start_date = '2021-01-01'
end_date = '2023-12-31'

data = yf.download(symbols, start=start_date, end=end_date)['Close']
returns = data.pct_change().dropna()

# 数据对齐
market_returns = returns['QQQ'].values
stock_returns = returns['TSLA'].values

# 观测矩阵构建(包含市场收益和截距项)
observation_matrix = np.ones((len(market_returns), 1, 2))
observation_matrix[:, 0, 0] = market_returns

# 此处留空用于卡尔曼滤波器配置和运行