数据拟合

R语言基于ARMA-GARCH-VaR模型拟合和预测实证研究分析案例

匿名 (未验证) 提交于 2019-12-02 23:42:01
版权声明:本文为博主原创文章,未经博主允许不得转载。咨询链接:http://y0.cn/teradat 博文链接: https://blog.csdn.net/qq_19600291/article/details/89921719 本文显示了如何基于潜在的ARMA-GARCH过程(当然也涉及更广泛意义上的QRM)来拟合和预测风险价值(VaR)。 我们考虑使用\(t \)分布式创新的ARMA(1,1)-GARCH(1,1)过程。 模拟一条路径(用于说明目的)。 nu <- 3 # d.o.f. of the standardized distribution of Z_t fixed.p <- list(mu = 0, # our mu (intercept) ar1 = 0.5, # our phi_1 (AR(1) parameter of mu_t) ma1 = 0.3, # our theta_1 (MA(1) parameter of mu_t) omega = 4, # our alpha_0 (intercept) alpha1 = 0.4, # our alpha_1 (GARCH(1) parameter of sigma_t^2) beta1 = 0.2, # our beta_1 (GARCH(1) parameter of sigma_t^2) shape

高斯(Gaussian)拟合的实现

匿名 (未验证) 提交于 2019-12-02 23:39:01
转载于: https://blog.csdn.net/c914620529/article/details/50393238 高斯 拟合 (Gaussian Fitting) 即使用形如: 的 高斯函数 对数据点集进行函数逼近的 拟合 方法。 其实可以跟 多项式 拟合 类比起来,不同的是 多项式 拟合是用 幂函数 系, 而高斯拟合是用 高斯函数 系。 使用 高斯函数 来进行拟合,优点在于计算积分十分简单快捷。这一点 在很多领域都有应用,特别是 计算化学 。著名的 化学软件 Gaussian98 就是建立在高斯 基函数 拟合的 数学基础 上的。 double [,] a = new double [fitDatas.Count, 3 ]; double [] b = new double [fitDatas.Count]; double [] X = new double [ 3 ] { 0 , 0 , 0 }; for ( int i = 0 ; i < fitDatas.Count; i++) { b[i] = Math.Log(fitDatas[i].Intensity); a[i, 0 ] = 1 ; a[i, 1 ] = fitDatas[i].WaveLength; a[i, 2 ] = a[i, 1 ] * a[i, 1 ]; } // Matrix.Equation

过拟合及欠拟合的产生及解决方案

匿名 (未验证) 提交于 2019-12-02 23:35:02
版权声明:努力成为大腿 https://blog.csdn.net/Xin_101/article/details/90512441 1 简介 拟合:依据自变量,优化自变量观测参数,使因变量无限接近有效的真实数据的过程. 过拟合:观测参数"学习"到了自变量数据集的所有特征,包括有效数据和噪声(异常)数据,该模型在训练数据集的成绩斐然,但是,泛化能力较弱,在测试数据集上表现一般,因为该模型将无效数据的特征也提取出来了; 欠拟合:观测参数不能充分学习自变量数据集的特征,属于"差生",一般很少提到欠拟合,因为只要模型不能很好地预测训练集和测试集,就是欠拟合,训练过程中的每一步都是欠拟合的过程,所以,一般不提欠拟合. 2 产生的原因 2.1 过拟合产生的原因 训练集数据量较少,抽样方法错误,样本标签标注错误,导致训练集数不足以表示分类或识别任务; 训练集数据噪声(无效数据,异常数据)过多,使训练过程中将噪声识别为有效特征,破坏了分类或识别; 假设的模型无法合理存在,或假设成立的条件实际不成立,如逻辑回归需要自变量独立,但是图像分割任务中,有数据交叉,不能实现独立; 自变量观测参数太多,模型过于复杂; 决策树模型如果对叶节点没有合理剪枝,使分类阈值无法满足测试数据,泛化能力变弱; 神经网络,训练集数据可能存在分类决策面(分类标准)不唯一,随优化迭代,神经网络权重可能收敛于过于复杂的决策面

用Python为直方图绘制拟合正态分布曲线的两种方法

匿名 (未验证) 提交于 2019-12-02 22:54:36
直方图是用于展示数据的分组分布状态的一种图形,用矩形的宽度和高度表示频数分布,通过直方图,用户可以很直观的看出数据分布的形状、中心位置以及数据的离散程度等。 在python中一般采用matplotlib库的hist来绘制直方图,至于如何给直方图添加拟合曲线(密度函数曲线),一般来说有以下两种方法。 方法一:采用matplotlib中的mlab模块 mlab模块是Python中强大的3D作图工具,立体感效果极佳。在这里使用mlab可以跳出直方图二维平面图形的限制,在此基础上再添加一条曲线。在这里,我们以鸢尾花iris中的数据为例,来举例说明。 import numpy as np import matplotlib.mlab as mlab import matplotlib.pyplot as plt import pandas # Load dataset url = "https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data" names = ['sepal-length', 'sepal-width','petal-length', 'petal-width', 'class'] dataset = pandas.read_csv(url, names=names) print

线性回归中“回归”的含义

孤街浪徒 提交于 2019-12-02 12:31:27
原文地址: https://blog.csdn.net/laputa_ml/article/details/80072570#comments 今天我就简单谈谈自己的一些新想法。我们从最基本的容易引起歧义的地方出发。很多人问我,回归(regression)和拟合(fitting)有什么不同?其实如果你想从数学的角度去区分它们,你就出不来了。知识往往都有“先入为主”的那种影响。我们接触的第一类回归问题,就是简单线性回归,或者多项式回归,而这恰恰和我们接触的拟合问题“天然地相似”:最小二乘法求解参数。因此,那些数学出身的学生,就始终很难将这两类问题真正区分开。但是如果从历史发展的角度,结合更多实际问题来看,这个问题是很容易体会清楚的。 开始的时候,人们得到了很多组数据,这些数据之间貌似是有联系的,于是人们想要找到一种近似的函数关系,来对这些组变量的联系进行某种描述,进而获得某种解释。 当然,人们十分清楚,如果这些数据都是精确无误的,那么经过这些点的插值函数就能较好地解决问题。但是现在,这些采集得到的数据可能是有误差的,或者是biased的,于是插值函数的准确性就反而要被质疑了。于是人们就想找一条不经过任何点,但是却能描述这些数据的基本规律的曲线。这就是拟合。拟合最初是由勒让德和高斯两位数学家在1804年和1809年提出的,那个时候,概率和统计和现在相比,简直还处于原始阶段

机器学习中用来防止过拟合的方法有哪些?

房东的猫 提交于 2019-12-02 12:27:14
是什么 过拟合(overfitting)是指在模型参数拟合过程中的问题,由于训练数据包含抽样误差,训练时,复杂的模型将抽样误差也考虑在内,将抽样误差也进行了很好的拟合。 具体表现就是最终模型在训练集上效果好;在测试集上效果差。模型泛化能力弱。 为什么 为什么要解决过拟合现象?这是因为我们拟合的模型一般是用来预测未知的结果(不在训练集内),过拟合虽然在训练集上效果好,但是在实际使用时(测试集)效果差。同时,在很多问题上,我们无法穷尽所有状态,不可能将所有情况都包含在训练集上。所以,必须要解决过拟合问题。 为什么在机器学习中比较常见?这是因为机器学习算法为了满足尽可能复杂的任务,其模型的拟合能力一般远远高于问题复杂度,也就是说,机器学习算法有「拟合出正确规则的前提下,进一步拟合噪声」的能力。 而传统的函数拟合问题(如机器人系统辨识),一般都是通过经验、物理、数学等推导出一个含参模型,模型复杂度确定了,只需要调整个别参数即可。模型「无多余能力」拟合噪声。 怎么样 既然过拟合这么讨厌,我们应该怎么防止过拟合呢?最近深度学习比较火,我就以神经网络为例吧: 获取更多数据 这是解决过拟合最有效的方法,只要给足够多的数据,让模型「看见」尽可能多的「例外情况」,它就会不断修正自己,从而得到更好的结果: 如何获取更多数据,可以有以下几个方法: 从数据源头获取更多数据:这个是容易想到的,例如物体分类

10、应用机器学习的建议(Advice for Applying Machine Learning)

故事扮演 提交于 2019-12-02 03:34:17
10.1 决定下一步做什么   到目前为止,我们已经介绍了许多不同的学习算法,如果你一直跟着这些视频的进度学习,你会发现自己已经不知不觉地成为一个了解许多先进机器学习技术的专家了。   然而,在懂机器学习的人当中依然存在着很大的差距,一部分人确实掌握了怎样高效有力地运用这些学习算法。而另一些人他们可能对我马上要讲的东西,就不是那么熟悉了。他们可能没有完全理解怎样运用这些算法。因此总是把时间浪费在毫无意义的尝试上。我想做的是确保你在设计机器学习的系统时,你能够明白怎样选择一条最合适、最正确的道路。因此,在这节视频和之后的几段视频中,我将向你介绍一些实用的建议和指导,帮助你明白怎样进行选择。具体来讲,我将重点关注的问题是假如你在开发一个机器学习系统,或者想试着改进一个机器学习系统的性能,你应如何决定接下来应该选择哪条道路?   为了解释这一问题,我想仍然使用预测房价的学习例子,假如你已经完成了正则化线性回归,也就是最小化代价函数𝐽的值,假如,在你得到你的学习参数以后,如果你要将你的假设函数放到一组新的房屋样本上进行测试,假如说你发现在预测房价时产生了巨大的误差,现在你的问题是要想改进这个算法,接下来应该怎么办?   实际上你可以想出很多种方法来改进这个算法的性能,其中一种办法是使用更多的训练样本。具体来讲,也许你能想到通过电话调查或上门调查来获取更多的不同的房屋出售数据。遗憾的是

matlab自定义公式拟合

点点圈 提交于 2019-12-01 15:21:43
clc,clear %定义一个符号变量t syms t %写入要拟合数据 x=[0;1;3;10;30;100;300;1000;3000;5000;7000;10000]; y=[0;0.003915;-0.01044;-0.01184;-0.03737;-0.14699;-0.41946;-1.00311;-1.94593;-2.56821;-3.07218;-3.65212]; %编辑要拟合的公式,设置变量,设置系数 ft=fittype('a (1-exp(-(t/tau)^beta))','independent','t','coefficients',{'a','tau','beta'}); options = fitoptions(ft); options.StartPoint=[1 10 1]; %设定拟合所用系数的上下限 options.Lower = [-999999 -99999 0]; options.Upper=[100 99999 1]; %进行拟合 cfun=fit(x,y,ft,options) %显示拟合函数,数据必须为列向量形式 xi=0:10:10000; yi=cfun(xi); figure plot(x',y','r ',xi,yi,'b-'); title('拟合函数图形'); 得到的拟合参数: cfun = General model

Python气象数据分析

拜拜、爱过 提交于 2019-11-30 18:26:21
记录《Python数据分析实战》一书中关于意大利北部沿海地区气象数据分析的练习。 此次分析的目的是验证靠海对气候的影响,因此,选取10个城市分析他们的天气数据,其中5个城市距离海100公里以内,另外5个城市距离海100~400公里距离。此外,为了避免山区气候对天气数据造成影响,选取的城市均来自平原地区。 1. 加载数据集 # 导入模块 import numpy as np import pandas as pd import datetime #导入数据可视化模块 %matplotlib inline import matplotlib.pyplot as plt import matplotlib.dates as mdates from dateutil import parser # 加载数据集 df_ferrara = pd.read_csv('WeatherData/ferrara_270615.csv') df_milano = pd.read_csv('WeatherData/milano_270615.csv') df_mantova = pd.read_csv('WeatherData/mantova_270615.csv') df_ravenna = pd.read_csv('WeatherData/ravenna_270615.csv') df_torino

python数据分析学习笔记——numpy来实现数据拟合

妖精的绣舞 提交于 2019-11-30 18:24:56
最近在学习python数据分析,做个笔记记录一下代码,今天是用numpy拟合了一组数据。 先贴拟合的效果出来,蓝色的点是用np生成的20个点,红线是拟合出来的曲线: 下面是代码: import matplotlib.pyplot as plt import numpy as np x = np.linspace(300,400,20) y = x + np.random.random_integers(5,20,20) #随机取5到10中间20个数 poly = np.polyfit(x,y,deg=1) z = np.polyval(poly, x) plt.plot(x, y, 'o') plt.plot(x, z) plt.show() 代码可以分成三部分: 第一部分是生成数据,x是在300到400中间平分的取了20个点(包含300,400)生成一个数组;至于y是在x的每个元素上加了一个5-20之间的随机数的数组。相当于获得了20个点的坐标。第二部分是用polyfit函数,对x,y进行拟合(下面会介绍这个函数);拟合出的曲线对应的z值用polyval获得。第三部分就是绘图了。 下面详细介绍以下polyfit函数的参数以及返回值:这个函数前两个参数是x,y 也就是我们生成的两个20维的数组,代表要拟合的20个点。第三个参数加上1是你要拟合的多项式的项数。比如你选择这个参数为1