在statsmodels的開發12版本文檔上正好看到使用三因子模型進行rolling regression,但是代碼來自最新版本,而我的是老版本,運行下列代碼會出現這個問題:
No module named statsmodels.api
import statsmodels.api as sm from statsmodels.regression.rolling import RollingOLS
解決辦法如下:在鏡像網址上下載whl,一定要下載對應版本的
問題一:如何查看對應版本:
1.打開ipython 或python shell
2. 輸入以下命令:
import pip
import pip._internal.pep425tags
print(pip._internal.pep425tags.get_supported())
我的對應版本是:
[<cp37-cp37m-win_amd64 @ 1145465332744>, <cp37-abi3-win_amd64 @ 1145469653448>, <cp37-none-win_amd64 @ 1145469654344>, <cp36-abi3-win_amd64 @ 1145469654728>, <cp35-abi3-win_amd64 @ 1145469654856>, <cp34-abi3-win_amd64 @ 1145469654984>, <cp33-abi3-win_amd64 @ 1145469655112>, <cp32-abi3-win_amd64 @ 1145469655240>, <py37-none-win_amd64 @ 1145469655432>, <py3-none-win_amd64 @ 1145469655560>, <py36-none-win_amd64 @ 1145469655688>, <py35-none-win_amd64 @ 1145469655816>, <py34-none-win_amd64 @ 1145469655944>, <py33-none-win_amd64 @ 1145469656072>, <py32-none-win_amd64 @ 1145469656200>, <py31-none-win_amd64 @ 1145469656328>, <py30-none-win_amd64 @ 1145469656456>, <cp37-none-any @ 1145469656584>, <py37-none-any @ 1145469656648>, <py3-none-any @ 1145469656712>, <py36-none-any @ 1145469656776>, <py35-none-any @ 1145469656840>, <py34-none-any @ 1145469656904>, <py33-none-any @ 1145469656968>, <py32-none-any @ 1145469657032>, <py31-none-any @ 1145470718024>, <py30-none-any @ 1145470718088>]
問題二:那么第二個問題來了,如何下載whl呢?
常用鏡像網址:
https://pypi.tuna.tsinghua.edu.cn/simple/
一定要選擇如上對應的版本,不然會出現is not a supported wheel on this platform的問題。
問題三:如何安裝whl呢
我安裝了anaconda,所以一定要把下載下來的whl放在對應anaconda的文件目錄下:
C:\Users\登錄名\Anaconda3\Lib\site-packages
然后用cmd cd 到這里:
就成功把最新版本的sttsmodel安裝上了,然后就可以用https://www.statsmodels.org/stable/generated/statsmodels.regression.rolling.RollingOLS.html#statsmodels.regression.rolling.RollingOLS
上的代碼跑回歸了。