❶ 拓端tecdat|R语言股票收益分布一致性检验KS检验Kolmogorov-Smirnov、置换检验Permutation Test可视化
今年的收益是否真的与典型年份的预期不同?这是一个常见的问题,可以通过均值相等或方差相等的测试来回答。然而,问题进一步深化时,我们开始关注收益密度之间的差异,这涉及所有时刻和尾部行为的比较。这个问题的答案往往不那么直观。
在正式检验收益密度之间差异的方法中,Kolmogorov-Smirnov检验和置换检验(Permutation Test)是两种常用手段。Kolmogorov-Smirnov检验基于经典的统计理论,通过比较两个分布的累积分布函数(CDF)来评估它们的相似性。置换检验则是一种现代方法,它通过模拟来评估两个样本是否来自相同的分布。
首先,我们从价格数据中提取每日收益。通过计算均值和标准差,我们可以观察到2018年与其它年份的收益存在轻微差异。为了更直观地理解这些差异,我们可以估算收益密度。
接下来,我们通过Kolmogorov-Smirnov检验来评估2018年收益分布与其它年份收益分布之间的差异。这一检验通过计算累积分布函数之间的最大差异来量化分布的相似性。最大差异的分布已知,且作为检验统计量,如果该值在理论分布的尾部显着,则可以推断分布存在差异。
在R语言中,我们能够轻松执行Kolmogorov-Smirnov检验,得到最大差异为0.067和P值为0.3891,表明没有证据表明2018年的分布与其他年份的分布存在显着差异。
置换检验作为另一种方法,同样能够用于比较两个密度或分布的相似性。相比于Kolmogorov-Smirnov检验依赖于极限分布,置换检验通过模拟提供了一种不依赖于渐进性的方法。通过在假设下排列数据,我们可以估计实际差异是否显着大于预期差异,从而得出分布是否相同的结论。
在R语言中,执行置换检验后,我们得到的P值与Kolmogorov-Smirnov检验结果相当,进一步验证了我们的假设,即2018年的每日收益分布与其它年份的分布没有显着差异。
此外,我们还介绍了两种方法的R语言代码实现,以便读者能够直接在自己的环境中进行操作和验证。
最后,提及了关于Matlab、R语言在疾病制图、随机波动率模型、贝叶斯估计、生存分析等领域应用的其他文章,旨在提供更广泛的统计分析工具和方法。
❷ 资产组合理论 选择最佳的股票投资比例 R语言 量化投资
本文探讨如何使用R语言实现计算马科维茨模型的有效边界及夏普比率,以便找出基于历史数据的最佳资产投资比例方案。首先,简要介绍马科维茨模型和效率边界,强调在投资组合中考虑风险和预期收益的重要性。接着,解析计算投资组合预期收益和风险的公式。通过示例展示如何构建有效边界,并解释其在投资决策中的意义。
本文以R语言为基础,利用Rmarkdown进行编程分析,利用Tushare平台获取股票日线数据。选择ROE在20%以上的股票作为研究对象,并分析近3年的数据。通过计算日收益率序列、数据清洗及蒙特卡洛方法绘制有效边界,最终得出投资组合的有效性。在代码实现部分,介绍如何使用R语言和Portfolio库绘制有效边界,并提供数据清洗函数。
通过绘制不同仓位比例下的收益和风险图,识别出风险最小和夏普比率最大的投资组合。分析结果显示,基于最小风险的仓位方案在风险与收益之间提供了最佳平衡。最后,强调本文结论不构成投资建议,旨在提供理论框架与方法论参考。重要的是,投资者在实际投资时应考虑更多因素,包括市场变化、经济状况和个人风险偏好。
总结,本文旨在通过实证分析,为投资者提供一种利用历史数据优化资产组合的方法。通过计算马科维茨模型的有效边界和夏普比率,帮助投资者找到风险与收益之间的最佳平衡点,进而做出更明智的投资决策。在实际应用中,投资者应结合市场动态和个人投资目标,灵活调整策略,以实现长期稳定收益。
❸ CAPM 在 R语言中实现
通过CAPM模型在R语言中实现计算贝塔系数,我们以三支股票的每日收盘价和上证指数每月收益,以及无风险利率Rf为输入数据,旨在计算出每只股票的收益R。随后,我们用R与Rm-Rf进行回归,从而得出贝塔系数。
步骤如下:
1. **计算股票收益**:首先,我们需要计算三只股票的收益。这一操作直接关系到后续CAPM模型的准确性。
2. **处理SSE指数的超额收益**:由于数据为每月的上证指数收盘价,我们需要将其转化为每日收益,并计算超额收益,即上证指数收益与无风险利率的差值。
3. **合并数据**:将股票收益与上证指数超额收益合并为同一表格,为后续的回归分析做好准备。
4. **回归分析**:使用R语言的lm函数进行回归分析,得到的输出结果包含截距和贝塔值。我们关注的是贝塔值,它代表了股票相对于市场组合的价格波动情况。
具体操作中,我们以单个资产为例,利用lm函数进行回归分析,通过summary(lm(a~b))得到的回归结果,我们可以用特定代码提取出贝塔值。在数据处理时,我们使用group_by(issue_id,yymm)对数据进行分组,计算每只股票每月的贝塔值。
整个过程不仅涉及数据的预处理、模型的构建与回归分析,还涵盖了对CAPM模型原理的理解与应用。个人笔记中的步骤和代码示例仅供参考,欢迎在实际操作中进行修正与优化。
❹ R语言中的时间序列分析模型:ARIMA-ARCH / GARCH模型分析股票价格
在金融时间序列分析中,时域方法如ARIMA和ARCH / GARCH模型对于股票价格预测至关重要。这些模型帮助我们理解数据特征并预测未来值,尤其在非平稳序列处理和波动性分析上。
首先,确保时间序列的平稳性是建模的前提。通过差分或对数转换将非平稳序列转换为平稳序列,如苹果股票价格示例所示,对数价格的差分更利于稳定方差。
ARIMA模型(自回归整合移动平均模型)通过观察自相关和偏自相关来识别,如在Apple股票的ACF和PACF图中所示。识别规则包括观察ACF和PACF的截断点,例如ARIMA(1,0,0)可能是Log Apple股票的模型。
在选择模型时,使用AICc来权衡模型复杂度与拟合度,如ARIMA(2,1,2)可能是合适的。检查残差的ACF和PACF以确认模型的有效性,例如Apple股票的ARIMA模型的残差显示为无明显滞后。
当ARIMA模型的残差显示波动性时,引入ARCH / GARCH模型。通过观察残差平方和ACF/PACF,判断是否需要建模序列的条件方差。例如,对于Apple,选择的ARCH 8模型反映了价格的波动性。
混合模型如ARIMA(2,1,2) - ARCH(8)结合了ARIMA的线性预测和ARCH的波动性分析,能更准确地预测价格变化,如Apple股票在2012年7月的预测。
时域分析在金融时间序列预测中不可或缺,ARIMA和ARCH / GARCH模型组合提供了更精确的预测。理解序列的平稳性,选择合适的模型,以及利用新信息更新模型,都是有效应用这些模型的关键。
❺ 散户想做量化交易,看这篇就够了
大家好,我是喵酱,一枚沪漂转行学量化的女汉纸,酷爱rap。
量化交易不等同于高频交易,尽管高频交易在量化中占重要位置,但它的门槛极高,需要极高的硬件成本和人工成本,延迟、性能和稳定性要求也非常高。因此,对于普通散户来说,高频交易可能难以触及。
从交易频率来看,量化交易可分为高频、中低频和超低频。其中高频交易适合专业人士,而中低频和超低频则更加适合普通散户。搭建一套自己的策略环境,通常包括四个步骤:开发环境搭建、数据准备、交易策略开发和回归测试。
在开发环境搭建上,目前主流的两种平台是Python和R语言,它们提供了回测框架、时间序列分析、统计分析等库,如开源回测框架BackTrader,在AQF量化金融分析师课程中有详细教学。
数据准备阶段,需要收集与交易策略相关的数据,包括历史价格、成交量、财务数据等。数据来源包括金融数据供应商、证券交易所、财务报表等,其中tushare提供成熟接口获取数据。
交易策略开发阶段,每个股民都有自己的选股理论,如市盈率、换手率等。程序可以简化这些筛选工作,解决从数千股票中筛选的难题。
回归测试阶段,帮助交易者了解策略在过去的表现,为未来的实盘交易提供参考。如果回测效果不错,各项指标如收益率、最大回撤率、Sharp值等在可接受范围内,即可进入下一步。
模拟交易阶段,实盘交易前的模拟交易(paper trading)是常见的做法。回测使用历史数据,通过不断调整参数优化指标,但需注意避免过度拟合,市场总是变化无常。模拟交易效果通常取决于程序的灵活性以及良好的风险和资金管理算法。
个人从事量化交易是可行的,但能否赚钱则取决于个人修养和能力。总结而言,量化交易为普通散户提供了新的投资途径,但需要深入了解和实践。
❻ R语言,estudy2包,事件分析法
estudy2包的安装需从GitHub下载,完成安装后,可以使用R中内置的install_github()函数。
事件分析法的实施包括以下几个步骤:首先准备两家公司的收盘价格和选定指数的收盘数据,然后利用线性模型估计股票回报率与市场回报率之间的关系。具体公式如下:
公式1:股票回报率 = 市场回报率 * 回归系数 + 常数项
接下来,使用窗口期的市场回报率预测窗口期的股票回报率,计算异常回报率(AR)和累计异常回报率(CAR)。异常回报率(AR)计算公式如下:
公式2:AR = 实际股票回报率 - 预测股票回报率
累计异常回报率(CAR)的计算公式为:
公式3:CAR = ∑AR(从事件开始到结束)
若事件窗口期实际的股票回报率与预测的股票回报率无显着差异,则表明股票回报率的变化遵循原有的趋势,事件影响不显着。
estudy2包中涉及的主要函数包括:
get_rates_from_prices():从收盘价直接计算回报率。
apply_market_model():使用特定市场模型对股票回报率进行预测,例如单一指数模型(SIM)。
parametric_tests():对窗口期的每一天进行参数检验,获取统计显着性。
car_lamb():检验累计异常回报率是否显着区别于零。
上述函数的具体使用方法和帮助文档可查阅estudy2包的官方文档。
在使用时需注意,使用parametric_tests()和car_lamb()检验异常回报率和累计异常回报率时,样本需要包含两家公司的收盘价。若只有一家公司的收盘价,可能会出现错误。
如果文章对您有帮助,请给予赞同和喜欢。这将对文章的影响力和质量提升至关重要。
最后,感谢您阅读此内容。