我已将数据加载到具有列标题的多索引的数据框中。目前我一直在按列索引对数据进行分组,以获取组的平均值并计算 95% 的置信区间,如下所示:
from pandas import *
import pandas as pd
from scipy import stats as st
#Normalize to starting point then convert
normalized = (data - data.ix[0]) * 11.11111
#Group normalized data based on slope and orientation
grouped = normalized.groupby(level=['SLOPE','DEPTH'], axis=1)
#Obtain mean of each group
means = grouped.mean()
#Calculate 95% confidence interval for each group
ci = grouped.aggregate(lambda x: st.sem(x) * 1.96)
但是这样做的问题是,在组上使用的 mean 函数会忽略 NaN 值,而 scipy 函数 st.sem 如果组中有 NaN 则返回 NaN。我需要计算标准误差,同时像 mean 函数一样忽略 NaN。
我尝试过像这样计算 95% 的置信区间:
#Calculate 95% confidence interval for each group
ci = grouped.aggregate(lambda x: np.std(x) / ??? * 1.96)
numpy 中的 std 会给我忽略 NaN 值的标准偏差,但我需要将其除以忽略 NaN 的组大小的平方根,以获得标准误差。
在忽略 NaN 的情况下计算标准误差的最简单方法是什么?