Py学习  »  Python

Python:Z score参数计算

Abhishek Kulkarni • 6 年前 • 2393 次点击  

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

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/55509
文章 [ 1 ]  |  最新文章 6 年前
ecortazar
Reply   •   1 楼
ecortazar    7 年前

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

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

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