本文目录一览:
- 1、在python上数据归一化后怎样还原
- 2、如何用Python对数据进行差分
- 3、利用python的statsmodels包 把序列1阶差分后利用plot_acf()画出acf图
- 4、python series 怎么差分
在python上数据归一化后怎样还原
看到各位大佬们都会把原始数据进行归一化,再处理。可是都没有人讲怎样把归一化的数据还原回来。
目前可找到的方法就只有matlab上的这个函数:
xtt = mapminmax('reverse',y1,ps)
在python上,就看到许多人推荐用sklearn进行归一化,但没有还原的方法呀。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
你要问我为什么 要还原?
把日期和气温的数据放到模型里跑半天,想看看下一天的气温,结果出来一个0.837之类东西。
sklearn中transform用来归一化后,可以用inverse_transform还原。
如何用Python对数据进行差分
处理过与时间有关的数据的人都知道,差分变化经常用来使得结果更加直观。在这篇文章里将会教你如何用Python来实现这一目的,读完这篇文章,你将会掌握以下技能:
1、知道什么是差分变换以及滞后差分和差分阶数的设置
2、如何手动计算差分
3、怎样使用Pandas内置的差分函数
所以,让我们赶紧开始吧!
为什么要对时间序列数据进行差分?
首先来看下为什么要对数据进行差分变化,差分变化可以消除数据对时间的依赖性,也就是降低时间对数据的影响,这些影响通常包括数据的变化趋势以及数据周期性变化的规律。进行差分操作时,一般用现在的观测值减去上个时刻的值就得到差分结果,就是这么简单,按照这种定义可以计算一系列的差分变换。
滞后差分
连续观测值之间的差分变换叫做一阶滞后差分。滞后差分的步长需要根据数据的时间结构做调整,例如对于周期性变化的数据,这个时间步长就是数据变化的周期。
差分阶数
在进行一次差分之后,时间项的作用并没有完全去掉,将会继续对差分结果进行差分变化,直到完全消除时间项的影响因素为止,这个过程中进行的差分操作次数就称为差分阶数。
洗发水销售数据
这份数据是三年来每月洗发水的销售情况,总共有36个数据记录,原始数据来自Makridakis, Wheelwright和 Hyndman (1998).,可以从下面的地址下到数据:
下面的代码将会导入数据并将结果画成折线图,如下所示:
手动差分
在这一部分中,我们将会自定义一个函数来实现差分变换,这个函数将会对提供的数据进行遍历并根据指定的时间间隔进行差分变换。具体代码如下:
从上面的代码中可以看到该函数将会根据指定的时间间隔来对数据进行变换,一般来说,通常会计算间隔一个数据的差分,这样的结果比较可靠。当然,我们也可以将上面的函数进行一定的改进,加入差分阶数的指定。
下面将这函数应用到上面洗发水销售的数据中去,运行之后绘出下面的图,具体如下:
自动差分
Pandas库里提供了一个函数可以自动计算数据的差分,这个函数是diff(),输入的数据是“series'或”DataFrame'类型的,像前面自定义函数那样,我们也可以指定差分的时间间隔,不过在这里这个参数叫做周期。
下面的例子是用Pandas内置函数来计算差分的,数据类型是series的,使用Pandas内置函数的好处是代码工作量减少了不少,而且绘出的图中包含更详细的信息,具体效果如下:
总结
读完本文想必你已经学会用python来实现对数据的差分了,尤其是对差分的概念,手动差分,以及使用Pandas内置函数进行差分都有所了解了。如果有什么好的想法欢迎在评论栏里留下。
利用python的statsmodels包 把序列1阶差分后利用plot_acf()画出acf图
dta=np.array(dta,dtype=np.float) //这里要转下数据类型,不然运行会报错
dta=pd.Series(dta)
dta.index = pd.Index(sm.tsa.datetools.dates_from_range('2001','2090')) //应该是2090,不是2100
dta.plot(figsize=(12,8))
plt.show() // 在Scala IDE要输入这个命令才能显示图!
python series 怎么差分
以后应多使用论坛中的Eviews专区。 ln在Eviews中表示为log,如数学中的ln(Q)在Eviews中表示为log(Q) 直接定义啊 y=log(x) 在软件中log,论文模型中ln不用取对数直接在估计的时候用 log( )就好了 如果真要取的话 quick\ generate series\ 输入新变...