σμimplied vol · KKmax(S−K,0)udβρᵢⱼfat tailsPnL · drawdownyield · TdSₜ = μSₜ dt + σSₜ dWₜC = S·N(d₁) − K·e⁻ʳᵀ·N(d₂)σₚ² = wᵀΣwd₁ = [ln(S/K) + (r + σ²⁄2)T] ⁄ σ√T∂V/∂t + ½σ²S²·∂²V/∂S² + rS·∂V/∂S − rV = 0Sharpe = (Rₚ − R_f) ⁄ σₚVaR₉₉ = μ − 2.33σρ = Cov(X,Y) ⁄ σₓσᵧE[Rₚ] = Σ wᵢ·E[Rᵢ]φ(x) = e^(−x²/2) ⁄ √2πE[Rᵢ] = R_f + βᵢ(E[Rₘ] − R_f)dXₜ = θ(μ − Xₜ)dt + σ dWₜσ²ₜ = ω + α·ε²ₜ₋₁ + β·σ²ₜ₋₁C − P = S − K·e⁻ʳᵀΔ = ∂V/∂S Γ = ∂²V/∂S²p = (e^(rΔt) − d) ⁄ (u − d)rₜ = ln(Pₜ ⁄ Pₜ₋₁)E[Xₜ₊₁ | ℱₜ] = Xₜf* = (bp − q) ⁄ bz = (x − μ) ⁄ σP(N=k) = λᵏe^(−λ) ⁄ k!Θ = −∂V/∂Tν = S·φ(d₁)·√Tmin wᵀΣw s.t. wᵀμ = μ*∫Σ∂∞λ
uantCraft Academy路线图学习路线
Ctrl K
AO
+1.2k 位学习者
登录加入 ↗
路线图学习路线
AO
+1.2k 位学习者
登录
  • English
  • Français
  • Español
  • العربية
  • Português
  • Deutsch
  • 日本語
  • 中文
σμimplied vol · KKmax(S−K,0)udβρᵢⱼfat tailsPnL · drawdownyield · TdSₜ = μSₜ dt + σSₜ dWₜC = S·N(d₁) − K·e⁻ʳᵀ·N(d₂)σₚ² = wᵀΣwd₁ = [ln(S/K) + (r + σ²⁄2)T] ⁄ σ√T∂V/∂t + ½σ²S²·∂²V/∂S² + rS·∂V/∂S − rV = 0Sharpe = (Rₚ − R_f) ⁄ σₚVaR₉₉ = μ − 2.33σρ = Cov(X,Y) ⁄ σₓσᵧE[Rₚ] = Σ wᵢ·E[Rᵢ]φ(x) = e^(−x²/2) ⁄ √2πE[Rᵢ] = R_f + βᵢ(E[Rₘ] − R_f)dXₜ = θ(μ − Xₜ)dt + σ dWₜσ²ₜ = ω + α·ε²ₜ₋₁ + β·σ²ₜ₋₁C − P = S − K·e⁻ʳᵀΔ = ∂V/∂S Γ = ∂²V/∂S²p = (e^(rΔt) − d) ⁄ (u − d)rₜ = ln(Pₜ ⁄ Pₜ₋₁)E[Xₜ₊₁ | ℱₜ] = Xₜf* = (bp − q) ⁄ bz = (x − μ) ⁄ σP(N=k) = λᵏe^(−λ) ⁄ k!Θ = −∂V/∂Tν = S·φ(d₁)·√Tmin wᵀΣw s.t. wᵀμ = μ*∫Σ∂∞λ
uantCraft Academy路线图学习路线
Ctrl K
AO
+1.2k 位学习者
登录加入 ↗
路线图学习路线
AO
+1.2k 位学习者
登录
  • English
  • Français
  • Español
  • العربية
  • Português
  • Deutsch
  • 日本語
  • 中文
SciPy 学习路线›模块 3 · 矩阵、信号与结构›主题 3.1·~45分钟中级

scipy.linalg 中的线性代数要点

路线进度模块 3/3 · 主题 1/5
3.1 scipy.linalg 中的线性代数要点
—实验得分— / 100总 XP—连续天数—

矩阵是投资组合的机器

投资组合问题就是矩阵问题。协方差矩阵 Σ\SigmaΣ 包含各资产的方差和联动情况,几乎每项任务都要用它做点什么。scipy.linalg.solve(A, b) 对未知数 x\mathbf xx 解 Ax=bA\mathbf x=\mathbf bAx=b。不要先算逆 inv(A) 再相乘:直接求解工作量更小,精度损失也更少。乔列斯基分解 linalg.cholesky(S, lower=True) 把协方差矩阵分成 Σ=LL⊤\Sigma=LL^{\top}Σ=LL⊤,其中 LLL 是下三角矩阵,即对角线上方全是零。若 z\mathbf zz 是独立标准正态数构成的向量,则 LzL\mathbf zLz 的协方差就是 Σ\SigmaΣ,这就是模拟相关收益的方法。

Σ\SigmaΣ 的特征值告诉你真正有多少个独立的风险来源。linalg.eigvalsh(S) 对对称矩阵按从小到大返回特征值。两个相关系数为 ρ\rhoρ 的资产,其相关矩阵的特征值为 1+ρ1+\rho1+ρ 和 1−ρ1-\rho1−ρ,所以高度相关的资产有一个大特征值和一个极小特征值。最大特征值与最小特征值之比是条件数。条件数大意味着矩阵接近奇异,也就是几乎无法求逆,数据的微小变化就可能使求解的结果大幅摆动。使用 Σ\SigmaΣ 的逆的优化器对此尤其敏感。

Ax=b ⇒ x=solve(A,b),Σ=LL⊤,r=Lz,κ(Σ)=λmax⁡λmin⁡A\mathbf x=\mathbf b\ \Rightarrow\ \mathbf x=\text{solve}(A,\mathbf b),\qquad \Sigma=LL^{\top},\quad \mathbf r=L\mathbf z,\qquad \kappa(\Sigma)=\frac{\lambda_{\max}}{\lambda_{\min}}Ax=b ⇒ x=solve(A,b),Σ=LL⊤,r=Lz,κ(Σ)=λmin​λmax​​(1)
两个资产的手算取 Σ=(4223)\Sigma=\begin{pmatrix}4&2\\2&3\end{pmatrix}Σ=(42​23​)。它的乔列斯基因子是 L=(2012)L=\begin{pmatrix}2&0\\1&\sqrt2\end{pmatrix}L=(21​02​​),因为 LL⊤LL^{\top}LL⊤ 给出 444、222、222 和 1+2=31+2=31+2=3。对独立抽样 z=(1,1)z=(1,1)z=(1,1),相关的抽样为 Lz=(2, 1+2)=(2, 2.414)Lz=(2,\,1+\sqrt2)=(2,\,2.414)Lz=(2,1+2​)=(2,2.414)。解 (2113)x=(35)\begin{pmatrix}2&1\\1&3\end{pmatrix}\mathbf x=\begin{pmatrix}3\\5\end{pmatrix}(21​13​)x=(35​),消元得 x=(0.8, 1.4)\mathbf x=(0.8,\,1.4)x=(0.8,1.4)。ρ=0.9\rho=0.9ρ=0.9 的相关矩阵特征值为 1.91.91.9 和 0.10.10.1,所以第一个因子承载总方差的 1.9/2=95%1.9/2=95\%1.9/2=95%。特征值为 111 和 333 的矩阵条件数为 333。在真实数据上,SPY、QQQ、TLT 在 5,4045{,}4045,404 天里,SPY 与 QQQ 的相关系数为 0.920.920.92,它们各自与 TLT 的相关系数约为 −0.3-0.3−0.3。相关矩阵的特征值为 0.080.080.08、0.860.860.86、2.062.062.06,所以一个因子承载 69%69\%69% 的方差,条件数为 262626。
  • 求解而不是求逆:solve(A, b) 比 inv(A) @ b 更快更准。
  • 乔列斯基制造相关性:把独立正态数乘以 LLL,得到协方差为 Σ\SigmaΣ 的收益。
  • 留意条件数:高度相关的资产使 Σ\SigmaΣ 接近奇异,解变得不稳定。

实验:评分内容

  • 乔列斯基因子20 分
  • 解方程组10 分
  • 条件数10 分
  • 因子的方差占比10 分
  • 各例程的用途15 分
  • 模拟相关收益10 分
  • 为什么不求逆25 分
0/ 已答 7 题
任务
1矩阵 · 向量20 分未作答

求下三角矩阵 LLL,使 LL⊤=Σ=(4223)LL^{\top}=\Sigma=\begin{pmatrix}4&2\\2&3\end{pmatrix}LL⊤=Σ=(42​23​)。输入 LLL(2\sqrt22​ 取 1.41421.41421.4142)。

L=L =L=
2数值作答10 分未作答

解 2x1+x2=32x_1+x_2=32x1​+x2​=3 与 x1+3x2=5x_1+3x_2=5x1​+3x2​=5。x2x_2x2​ 是多少?保留一位小数。

x=x =x=允许误差:± 0.02
3数值作答10 分未作答

某对称矩阵的特征值为 111 和 333。它的条件数(最大特征值除以最小特征值)是多少?

k=k =k=允许误差:± 0.01
4数值作答10 分未作答

相关系数为 0.90.90.9 的两个资产,其相关矩阵特征值为 1.91.91.9 和 0.10.10.1。第一个因子承载总方差的百分之几?

s=s =s=允许误差:± 0.5
5配对15 分未作答

把 scipy.linalg 的每个例程与它在组合管理中的作用配对。

为左侧每一项选择配对项。

solve
cholesky
eigvalsh
lstsq
6排列步骤10 分未作答

把模拟相关日收益的步骤排好顺序。

拖动以重新排序;也可聚焦某项,按空格抬起,用方向键移动,再按空格放下。

  1. 1检查样本协方差是否接近目标
  2. 2把正态抽样乘以 L
  3. 3由历史数据估计协方差矩阵
  4. 4抽取独立的标准正态数
  5. 5用乔列斯基分解
7用文字解释25 分未作答

请用一两句话解释为什么 solve(A, b) 优于 inv(A) @ b,以及大条件数在警告什么。

数学模式键盘或 LaTeX 输入第 1/7 题 · Ctrl ⏎ 检查

登录后即可运行你的代码。

所有讲解均可免费阅读。创建账户或登录后,即可运行代码、运行测试并提交此实验。

  • 浏览器内 IDE 与 bash 终端,无需安装
  • 即时评分、XP 以及你在学习路线中的位置
创建账户登录
或
使用 GitHub 继续