import pandas as pd
import numpy as np
# some sample data
ts = pd.Series(np.random.randn(1000),
index=pd.date_range('1/1/2000',
periods=1000)).cumsum()
def rsd(ts, window = 60):
"""
Returns the Relative Standard Deviation (RSD),
a.k.a Coefficient of Variation (CV) for a
given rolling window size on a time series data-column.
ts = time series data
window = window size to compute rolling mean, std, rsd
Example:
rolling_rsd, rolling_mean, rolling_std = rsd(ts, window = 60)
"""
rolling_mean = ts.rolling(window=window).mean()
rolling_std = ts.rolling(window=window).std()
rolling_rsd = rolling_std/rolling_mean
return (rolling_rsd, rolling_mean, rolling_std)
详细示例
import pandas as pd
import numpy as np
# some sample data
ts = pd.Series(np.random.randn(1000), index=pd.date_range('1/1/2000', periods=1000)).cumsum()
#plot the time series
ts.plot(style='k ')
def rsd(ts, window = 60):
"""
Returns the Relative Standard Deviation (RSD),
a.k.a Coefficient of Variation (CV) for a
given rolling window size on a time series data-column.
ts = time series data
window = window size to compute rolling mean, std, rsd
Example:
rolling_rsd, rolling_mean, rolling_std = rsd(ts, window = 60)
"""
rolling_mean = ts.rolling(window=window).mean()
rolling_std = ts.rolling(window=window).std()
rolling_rsd = rolling_std/rolling_mean
return (rolling_rsd, rolling_mean, rolling_std)
(rolling_rsd, rolling_mean, rolling_std) = rsd(ts, window = 60)
# calculate a 60 day rolling mean and plot
rolling_mean.plot(style='k')
# add the 20 day rolling standard deviation:
rolling_std.plot(style='b')
# add the 20 day rolling standard deviation:
rolling_rsd.plot(style='r')
注:
您也可以直接如下计算(如果您不想使用另一个函数)。你知道吗
# calculate a 60 day rolling standard deviation (rsd)
rolling_rsd = ts.rolling(window=60).std()/ts.rolling(window=60).mean()
你要计算的是相对标准偏差(RSD)的滚动版本,也就是变异系数(CV)。WikipediaInvestopedia。你知道吗
RSD=CV=SD/平均值。你知道吗
让我们先做一些时间序列数据。你知道吗
解决方案
下面的代码将为您提供所需的内容。你知道吗
选项A
选项B
或者,您可以使用以下方便功能:
详细示例
注:
您也可以直接如下计算(如果您不想使用另一个函数)。你知道吗
相关解决方案/问题:
1How can I simply calculate the rolling/moving variance of a time series in python?
相关问题 更多 >
编程相关推荐