给定原始分数和z分数,是否可以计算用于计算原始分数平均值的滚动窗口?请提出前进的方向。
def zscore(x, window): r = x.rolling(window=window) m = r.mean().shift(1) s = r.std(ddof=0).shift(1) z = (x-m)/s return z import pandas as pd import numpy as np raw1 = pd.DataFrame(np.random.randn(100, 1), columns=list('A')) z_score1=zscore(raw1,20)
现在,我只有原始分数和z分数,观察的次数相等。
raw2 = pd.DataFrame(np.random.randn(100, 1), columns=list('A')) z_score2 = pd.DataFrame(np.random.randn(100, 1), columns=list('A'))
如何计算用于计算z分数的观察次数,前提是raw2和z}score2的观察次数相等? 在期待中感谢你。
不幸的是,我不知道任何可以处理所需整数约束的优化函数。
根据数据的大小,我建议使用暴力方法。下面的工作很好。
raw2 = pd.Series(np.random.randn(100)) zscore2 = zscore(raw2, 30) err = pd.Series() for widow in range(1, zscore2.shape[0]): err.loc[widow] = (zscore2 - zscore(raw2, widow)).abs().sum() err.idxmin()