### 1.calculate_parameters文件夹:
- 1.1 以begin为前缀的py文件是通过wind的数据接口下载数据存储到本地的mysql数据库中,会得到两个数据表:table_day_data,table_month_data。
- 1.2 以calculate为前缀的py文件是计算我们自己的因子库,并把计算的结果存储到1.1中的table_month_data数据表中。
- 1.3 recover_month_data.py是用来修复经过1.1和1.2之后的数据表。
- 1.4 以stocks开头的py文件是用来存储沪深300和中证500的股票信息。
- 1.5 deal_with_day_data.py是提供一些基本的功能函数。
### 2.clean文件夹:
- 2.1 add_industry_dummy_variables.py是把行业数据添加到table_month_data数据表中
- 2.2 get_clean_store_data.py对table_month_data中的数据进行清洗得到一个新的数据表all_stocks_cleaned_factors_table,final_clean.py是对all_stocks_cleaned_factors_table中的数据进行清洗得到一个新的数据表final_all_stocks_cleaned_factors_table
- 2.3 auto_regression_tvalue_correlation.py是计算得到t值和ic值 ,auto_regression_improved_correlation.py是对ic值计算方法改进后,得到的ic值
#### 3.backtest文件夹:
- 3.1 tmp.py进行回测,在控制台会输出每个月末选出的股票组合,该组合中各个股票的收益率,以及该组合总体的收益率,最后绘制出2010年到2016年收益率的曲线图。
**注意:回测中采用的均是等权重**
### 补充:
#### 去极值的方法:
##### 一. 分位数去极值
比如前后5%的分位数点,将大于或小于分位数的点的值删除掉
##### 二. 3倍标准差
当数据的分布是类正态分布的时候,可以使用3倍标准差的方法。注意使用的是**均值**
##### 三. 中位数去极值
- 中值滤波,使用中值滤波非常有可能改变原有位置的值,在wiki中举的例子可以明显看到
- 中位数去极值,直接使用与中位数的相对距离去除异常值
- MAD方法,与上面提到的3倍标准差法很相似,但是用的是中位数,而不是均值。
#### 更具体点(参考优矿)
#### 异常值的识别
##### 1. 固定比例法
把上下2%的值进行拉回,认为这些数据不可信。
##### 2. 均值标准差法
这种想法的思路来自于正态分布,假设X∼N(μ,σ2),那么:
P(|X−μ|>k∗σ)={0.317,k=1 0.046,k=2 0.003,k=3
通常把三倍标准差之外的值都视为异常值,不过要注意的是样本均值和样本标准差都不是稳健统计量,其计算本身受极值的影响就非常大,所以可能会出现一种情况,那就是我们从数据分布图上能非常明显的看到异常点,但按照上面的计算方法,这个异常点可能仍在均值三倍标准差的范围内。因此按照这种方法剔除掉异常值后,需要重新观察数据的分布情况,看是否仍然存在显著异常点,若存在则继续重复上述步骤寻找异常点。
理解:因为剔除掉极值后,样本的方差可能发生变化了(正如文中所说,它不是一个稳健的估计量),每次剔除通常都会变化——就是因为这个,所以需要重复的去做。
如果数据不服从正态分布,可以通过切比雪夫不等式依然可以对均值的若干倍标准差之外的样本数据量的占比进行估计:
P(|X−μ|>k∗σ)<=1/k2
坏处对于这样的方法,上面不等式右边的上界数值会偏大,在数据分布的偏度和峰度影响下,这种方法可能会把过量的数据认定为异常点。 如果通过Box-Cox变换将不服从正态分布的数据转化为服从正态分布的数据,那么是否可行呢?熟悉Box-Cox变换方法的都知道,经过这样的一个变换,例如就取对数,它会缩小数据之间的距离,这样可能会使得原来是异常值的点变为不是异常值。
##### 3. MAD法
MAD 法是针对均值标准差方法的改进,把均值和标准差替换成稳健统计量,样本均值用样本中位数代替,样本标准差用样本MAD(Median Absolute Deviation)代替:
md=median(xi,i=1,2,…,n)
MAD=median(|xi−md|,i=1,2,…,n)
MADe=1.483∗MAD
通常把偏离中位数三倍以上的数据作为异常值。和均值标准差方法比,中位数和MAD的计算不受极端异常值的影响,结果更加稳健。
##### 4. boxplot法
我们知道箱线图上其实也会注明异常值,假设Q1和Q3分别为数据从小到大排列的25%和75%分位数,记IQR=Q1−Q3, 把(−∞,Q1−3∗IQR)⋃(Q3+3∗IQR,+∞)区间里的数据标识为异常点。分位数也是稳健统计量,因此Boxplot 方法对极值不敏感,但如果样本数据正偏严重,且右尾分布明显偏厚时,Boxplot 方法会把过多的数据划分为异常数据,因此Hubert& Vandervieren (2007)对原有Boxplot 方法进行了偏度调整。首先样本偏度定义采用了Brys(2004)提出的MedCouple方法:
md=median(xi,i=1,2,…,n)
mc=median(\frac{(x_{i}-md)-(md-x_{j})}{x_{i}-x_{j}},x_{i}>=md&x_{j}<=md)
然后给出了经偏度调整boxplot方法上下限:
L={Q1−1.5∗exp(−3.5∗mc)∗IQR,mc>=0 Q1−1.5∗exp(−4∗mc)∗IQR,mc<0
U={Q3+1.5∗exp(4∗mc)∗IQR,mc>=0 Q3+1.5∗exp(3.5∗mc)∗IQR,mc<0
区间(−∞,L)⋃(U,+∞)上的点视为异常点。和原始Boxplot 方法相比,当样本数据分布右偏时,此法会提升正常数据区间上限的数值;样本数据左偏时,则会降低正常数据区间下限的数值。 这个mc可以使用statsmodels包中的函数直接进行计算
没有合适的资源?快使用搜索试试~ 我知道了~
Wind_Python-master.zip_FamaFench 三因子、五因子模型
共121个文件
py:101个
csv:6个
txt:5个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 16 下载量 184 浏览量
2022-09-19
12:07:20
上传
评论 6
收藏 11.98MB ZIP 举报
温馨提示
python实现FamaFrench三因子和五因子模型,需要借助wind金融终端提取数据。
资源详情
资源评论
资源推荐
收起资源包目录
Wind_Python-master.zip_FamaFench 三因子、五因子模型 (121个子文件)
final_all_stocks_cleaned_factors_table.csv 42.31MB
output_include_dummy.csv 393KB
output_correlation.csv 281KB
date_industry_30.csv 27KB
test.csv 10KB
describe_date_industry_30.csv 2KB
Wind_Python资料.iml 284B
README.MD 5KB
README.md 4KB
begin_Store_Month_data.py 13KB
stocks_pool_for_HZ300.py 13KB
begin_Store_Month_data.py 13KB
begin_Store_Month_data.py 13KB
stocks_pool_for_HZ300_add_industry.py 13KB
calculate_momentum_factor.py 12KB
calculate_momentum_factor.py 12KB
calculate_momentum_factor.py 12KB
wind_python_example.py 12KB
wind_python_example.py 12KB
calculate_momentum_factor.py 11KB
wind_python_example.py 11KB
auto_regression_tvalue_correlation.py 11KB
deal_with_day_data.py 11KB
deal_with_day_data.py 11KB
calculate_volatility_factor.py 10KB
deal_with_day_data.py 10KB
deal_with_day_data.py 10KB
datacleaner_example.py 10KB
calculate_volatility_factor.py 10KB
calculate_volatility_factor.py 10KB
auto_regression_improved_correlation.py 10KB
stocks_pool_for_HZ300.py 10KB
datacleaner_example.py 10KB
stocks_pool_for_ZZ500.py 10KB
stocks_pool_for_HZ300.py 10KB
stocks_pool_for_ZZ500.py 10KB
stocks_pool_for_ZZ500.py 10KB
calculate_volatility_factor.py 10KB
begin_Store_3Month_data.py 9KB
begin_Store_3Month_data.py 9KB
begin_Store_3Month_data.py 9KB
begin_Store_Month_data.py 9KB
tmp.py 9KB
auto_regression_include_IndustryDummyOLS_WLS_RLM.py 9KB
calculate_ratio_factor.py 8KB
calculate_ratio_factor.py 8KB
calculate_ratio_factor.py 8KB
calculate_ratio_factor.py 8KB
get_clean_store_data.py 8KB
begin_Store_wgsd_com_eq.py 7KB
begin_Store_wgsd_com_eq.py 7KB
get_clean_store_data.py 7KB
get_clean_store_data.py 7KB
begin_Store_wgsd_com_eq.py 7KB
begin_Store_Day_data.py 7KB
begin_Store_Day_data.py 7KB
begin_Store_Day_data.py 7KB
begin_Store_Day_data.py 7KB
my_function.py 7KB
calculate_new_index.py 7KB
auto_regression_OLS_WLS_RLM.py 6KB
calculate_GPG_EPSG_ROEG_ROAG.py 6KB
calculate_STD_Month.py 6KB
calculate_GPG_EPSG_ROEG_ROAG.py 6KB
calculate_STD_Month.py 6KB
calculate_GPG_EPSG_ROEG_ROAG.py 6KB
calculate_STD_Month.py 6KB
main.py 5KB
calculate_GPG_EPSG_ROEG_ROAG.py 5KB
stocks_pool.py 5KB
calculate_STD_Month.py 5KB
recover_month_data.py 5KB
recover_month_data.py 5KB
calculate_log_factor.py 5KB
recover_month_data.py 5KB
calculate_turn_factor.py 5KB
calculate_log_factor.py 5KB
calculate_log_factor.py 5KB
calculate_log_factor.py 5KB
calculate_turn_factor.py 5KB
calculate_turn_factor.py 5KB
calculate_add_divide.py 4KB
calculate_add_divide.py 4KB
add_industry_dummy_variables.py 4KB
auto_regression.py 4KB
calculate_add_divide.py 4KB
add_industry_dummy_variables.py 4KB
calculate_turn_factor.py 4KB
calculate_multiply_divide.py 4KB
recover_month_data_improvement.py 4KB
calculate_multiply_divide.py 4KB
calculate_multiply_divide.py 4KB
calculate_multiply_divide.py 4KB
recover_month_data_improvement.py 4KB
auto_regression.py 4KB
final_clean.py 2KB
insert_data.py 2KB
use_statsmodels.py 1KB
use_statsmodels.py 1KB
select_data.py 1KB
共 121 条
- 1
- 2
寒泊
- 粉丝: 75
- 资源: 1万+
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论15