2017-04-05 2 views
0

まず輸入パンダと完璧な正規分布とのシリーズを作成します。パンダがsem()を計算する方法は?

import pandas as pd 

lst = [[5 for x in range(5)], [4 for x in range(4)], [3 for x in range(3)], 
     [2 for x in range(2)], [1 for x in range(1)], [2 for x in range(2)], 
     [3 for x in range(3)], [4 for x in range(4)], [5 for x in range(5)]] 

lst = [item for sublists in lst for item in sublists] 

series = pd.Series(lst) 

その分布が正常である、のは、確認してみましょう:

print(round(sum(series - series.mean())/series.count(), 1) == 0) 
# if distribution is normal we'll see True 

今度は宇宙用のSEMを()を印刷してみましょう:

print(series.sem(ddof=0)) 
# 0.21619987017 

サンプル数:

print(series.sem()) # ddof=1 
# 0.220026713637 

しかし、私はそれが宇宙で働くならば、パンダが平均の標準誤差を計算する方法を理解できません。それは使用ですか

se_x = sd_x/sqrt(len(x)) 

またはサンプルを作成しますか?サンプルを作成する場合は、どれくらい、どのようにカウントを設定できますか?

また、ファンダスがサンプルのために計算する方法は、< 30?

答えて

1

Pandas generates sem method dynamically

cls.sem = _make_stat_function_ddof(
     cls, 'sem', name, name2, axis_descr, 
     "Return unbiased standard error of the mean over requested " 
     "axis.\n\nNormalized by N-1 by default. This can be changed " 
     "using the ddof argument", 
     nanops.nansem) 

where nanops.nansem() is

@disallow('M8', 'm8') 
def nansem(values, axis=None, skipna=True, ddof=1): 
    var = nanvar(values, axis, skipna, ddof=ddof) 

    mask = isnull(values) 
    if not is_float_dtype(values.dtype): 
     values = values.astype('f8') 
    count, _ = _get_counts_nanvar(mask, axis, ddof, values.dtype) 
    var = nanvar(values, axis, skipna, ddof=ddof) 

    return np.sqrt(var)/np.sqrt(count) 

あなたはまた、scipy.statsモジュールで利用可能な方法を確認したいことがあり

関連する問題