Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:Z评分参数计算_Python_Pandas_Statistics - Fatal编程技术网

Python:Z评分参数计算

Python:Z评分参数计算,python,pandas,statistics,Python,Pandas,Statistics,我知道使用Python进行滚动z分数计算 给定原始分数和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

我知道使用Python进行滚动z分数计算

给定原始分数和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'))
如果raw2和z_score2都有相同数量的观察值,如何计算用于计算z分数的观察值数量?
非常感谢您。

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

根据数据的大小,我建议使用暴力手段。下面的操作很好

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