问题描述
我正在尝试使用 PyPortfolio 的 risk_models 中的 sample_cov 函数,但由于某种原因,它在某个 df 上返回几乎所有的 nan。我有 2009-2021 年 S&P500 收盘价的 df,我运行 cov 函数并返回一个 cov 矩阵。但是当我将 S&P500 与 2009-2019 拼接并尝试运行相同的函数时,它几乎返回所有 nan。
print(sp500_df.tail())
MMM ABT ... ZION ZTS
Date ...
2021-01-11 165.199997 110.395256 ... 49.869999 169.389999
2021-01-12 166.509995 108.403282 ... 50.360001 166.119995
2021-01-13 166.279999 111.700005 ... 49.790001 161.949997
2021-01-14 166.410004 110.040001 ... 50.919998 160.960007
2021-01-15 165.550003 111.300003 ... NaN NaN
[5 rows x 504 columns]
sp5002019 = pd.DataFrame(sp500_df['20080102':'20191231'])
print(sp5002019.tail())
MMM ABT ABBV ... ZBH ZION ZTS
Date ...
2019-12-24 170.337433 85.580559 84.152634 ... 149.438736 49.653328 132.162842
2019-12-26 170.250656 85.580559 84.133904 ... 149.111359 49.778591 132.272202
2019-12-27 170.896606 85.698227 83.543846 ... 148.823654 49.624416 132.490967
2019-12-30 169.517944 85.109917 82.906975 ... 147.573624 49.884586 131.456894
2019-12-31 170.086777 85.168739 82.925713 ... 148.496262 50.029121 131.596085
[5 rows x 504 columns]
除了结束日期之外,数据框看起来都一样。第一个 cov 矩阵看起来不错。
print(risk_models.sample_cov(sp500_df))
Output:
MMM ABT ABBV ... ZBH ZION ZTS
MMM 0.052624 0.023464 0.024383 ... 0.030192 0.052260 0.022737
ABT 0.023464 0.049068 0.030018 ... 0.027599 0.027656 0.031028
ABBV 0.024383 0.030018 0.081892 ... 0.028986 0.027227 0.031080
ABMD 0.033188 0.032398 0.029215 ... 0.033710 0.063857 0.029714
ACN 0.031301 0.027153 0.025652 ... 0.032252 0.044981 0.029861
ATVI 0.021826 0.022935 0.023921 ... 0.018736 0.031229 0.024610
ADBE 0.032903 0.029217 0.031165 ... 0.030865 0.050882 0.032634
AMD 0.042523 0.036737 0.034804 ... 0.042089 0.072795 0.040516
AAP 0.025178 0.020672 0.024203 ... 0.025371 0.041170 0.024762
AES 0.038340 0.023397 0.024108 ... 0.039963 0.073331 0.025160
AFL 0.044464 0.026346 0.025432 ... 0.044552 0.113288 0.027762
A 0.038961 0.030574 0.031437 ... 0.037080 0.064816 0.031587
APD 0.034406 0.025295 0.024556 ... 0.031004 0.051604 0.027288
AKAM 0.031521 0.026439 0.024881 ... 0.026390 0.053587 0.025767
ALK 0.043832 0.026042 0.031339 ... 0.047166 0.080761 0.033610
ALB 0.045296 0.029126 0.025334 ... 0.040942 0.077265 0.031627
ARE 0.035900 0.024384 0.023103 ... 0.031971 0.076300 0.023462
ALXN 0.029687 0.033087 0.041106 ... 0.032400 0.042256 0.032157
ALGN 0.044160 0.041374 0.040065 ... 0.053207 0.065849 0.044842
ALLE 0.031640 0.028391 0.027681 ... 0.033004 0.044273 0.031188
LNT 0.021437 0.018027 0.015366 ... 0.020523 0.029265 0.017602
ALL 0.034743 0.024792 0.021483 ... 0.035532 0.076166 0.024567
GOOGL 0.028971 0.025376 0.028720 ... 0.029479 0.045219 0.028221
GOOG 0.029060 0.025198 0.028590 ... 0.029586 0.045503 0.028164
MO 0.019681 0.017218 0.015343 ... 0.019890 0.022259 0.017586
AMZN 0.026677 0.022868 0.024878 ... 0.024491 0.039035 0.026355
AMCR 0.017236 0.010889 0.010404 ... 0.020770 0.017653 0.014053
AEE 0.022735 0.020096 0.016084 ... 0.019617 0.029254 0.019089
AAL 0.054863 0.030110 0.030088 ... 0.057510 0.107462 0.033565
AEP 0.018154 0.016108 0.013244 ... 0.015221 0.022727 0.014972
... ... ... ... ... ... ...
VNO 0.044229 0.024267 0.024902 ... 0.044596 0.099375 0.023228
VMC 0.037842 0.022388 0.025079 ... 0.038869 0.074202 0.027251
WRB 0.029512 0.023697 0.020820 ... 0.029898 0.055913 0.025015
WAB 0.042811 0.024439 0.027991 ... 0.043960 0.082264 0.027546
WMT 0.015086 0.015828 0.013120 ... 0.009665 0.016128 0.013396
WBA 0.027833 0.023533 0.024841 ... 0.026301 0.044154 0.021086
dis 0.034821 0.022121 0.022360 ... 0.034202 0.060829 0.024608
WM 0.024294 0.019601 0.018229 ... 0.023547 0.035900 0.020957
WAT 0.032464 0.026008 0.027578 ... 0.033631 0.044716 0.027234
WEC 0.019671 0.018611 0.014496 ... 0.016155 0.016651 0.016841
WFC 0.050526 0.031091 0.028623 ... 0.047327 0.150764 0.027511
WELL 0.031998 0.019244 0.022225 ... 0.038771 0.066317 0.023819
WST 0.024363 0.025749 0.025073 ... 0.026957 0.041133 0.026859
WDC 0.042739 0.030026 0.033162 ... 0.044116 0.073640 0.037750
WU 0.031999 0.021716 0.020522 ... 0.030557 0.059615 0.023742
WRK 0.050932 0.036719 0.039445 ... 0.045034 0.082942 0.039414
WY 0.045963 0.032298 0.029116 ... 0.047939 0.084548 0.034711
WHR 0.049995 0.032365 0.029894 ... 0.046949 0.088162 0.035569
WMB 0.040960 0.026998 0.037858 ... 0.043304 0.080750 0.030579
WLTW 0.026414 0.021585 0.020351 ... 0.026741 0.044352 0.023688
WYNN 0.053590 0.027558 0.036621 ... 0.057206 0.109107 0.039082
XEL 0.018366 0.017677 0.014536 ... 0.016419 0.017565 0.017329
XRX 0.045710 0.028037 0.030391 ... 0.050903 0.085452 0.033955
XLNX 0.034990 0.026122 0.026388 ... 0.027270 0.048978 0.029090
XYL 0.034939 0.026976 0.026629 ... 0.029862 0.042624 0.029577
YUM 0.030559 0.022006 0.021038 ... 0.031350 0.046246 0.026969
ZBRA 0.036057 0.030041 0.030166 ... 0.035673 0.056049 0.035629
ZBH 0.030192 0.027599 0.028986 ... 0.073080 0.051597 0.028890
ZION 0.052260 0.027656 0.027227 ... 0.051597 0.223081 0.023668
ZTS 0.022737 0.031028 0.031080 ... 0.028890 0.023668 0.064356
[504 rows x 504 columns]
但是当我尝试使用 2019 df 时,我得到了:
print(risk_models.sample_cov(sp5002019))
MMM ABT ABBV ABMD ACN ATVI ... XYL YUM ZBRA ZBH ZION ZTS
MMM 0.042993 NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN
ABT NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN
ABBV NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN
ABMD NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN
ACN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN
ATVI NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN
ADBE NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN
AMD NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN
AAP NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN
AES NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN
AFL NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN
A NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN
APD NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN
AKAM NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN
ALK NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN
ALB NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN
ARE NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN
ALXN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN
ALGN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN
ALLE NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN
LNT NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN
ALL NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN
GOOGL NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN
GOOG NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN
MO NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN
AMZN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN
AMCR NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN
AEE NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN
AAL NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN
AEP NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN
... ... ... ... ... ... ... ... ... ... ... ... ...
VNO NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN
VMC NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN
WRB NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN
WAB NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN
WMT NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN
WBA NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN
dis NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN
WM NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN
WAT NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN
WEC NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN
WFC NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN
WELL NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN
WST NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN
WDC NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN
WU NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN
WRK NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN
WY NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN
WHR NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN
WMB NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN
WLTW NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN
WYNN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN
XEL NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN
XRX NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN
XLNX NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN
XYL NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN
YUM NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN
ZBRA NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN
ZBH NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN
ZION NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN
ZTS NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN
[504 rows x 504 columns]
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)