代码之家  ›  专栏  ›  技术社区  ›  Abhishek Kulkarni

Python:Z score参数计算

  •  1
  • Abhishek Kulkarni  · 技术社区  · 6 年前

    给定原始分数和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的观察次数相等? 在期待中感谢你。

    0 回复  |  直到 6 年前
        1
  •  1
  •   ecortazar    6 年前

    不幸的是,我不知道任何可以处理所需整数约束的优化函数。

    根据数据的大小,我建议使用暴力方法。下面的工作很好。

    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()