sub_labels_inds = [] for reg in regions: for lab_idx, lab in enumerate(labels): if reg == lab.name: sub_labels.append(lab) sub_labels_inds.append(lab_idx) fdr_thresh = 0.05 filelist = listdir(proc_dir + freq) models = [{} for reg in regions] for filename in filelist: if not re.search("[0-9].pickle", filename): continue source_idx = int(re.search("src_([0-9]*)", filename).groups()[0]) dest_idx = int(re.search("dest_([0-9]*)", filename).groups()[0]) models[source_idx][dest_idx] = MixedLMResults.load("{}{}/{}".format( proc_dir, freq, filename)) indep_vars = [ "Block[T.visselten]", "Block[T.visual]", "Wav[T.4000cheby]", "Wav[T.4000fftf]", "Wav[T.7000Hz]", "Laut", "Angenehm", "visual-visselten" ] iv_disp = { "Block[T.visselten]": "audio-visselten", "Block[T.visual]": "audio-visual", "Wav[T.4000cheby]": "4000Hz-4000cheby", "Wav[T.4000fftf]": "4000Hz-4000fftf", "Wav[T.7000Hz]": "4000Hz-7000Hz", "Laut": "Laut", "Angenehm": "Angenehm", "visual-visselten": "visual-visselten" }
var_base = "C(Block, Treatment('rest'))" # stem of the condition names in statsmodels format stat_conds = [var_base + "[T." + cond + "]" for cond in conds[1:]] if calc_aic: # get permutations with open("/home/jev/ATT_dat/proc/dics_aic_perm.pickle", "rb") as f: perms = pickle.load(f) aics = {mod: np.empty(node_n) for mod in models} aics_params = {mod: [None for n in range(node_n)] for mod in models} aics_confint = {mod: [None for n in range(node_n)] for mod in models} aics_pvals = {mod: [None for n in range(node_n)] for mod in models} for mod in models: for n_idx in range(node_n): print(n_idx) this_mod = MixedLMResults.load( "{}{}/{}_reg70_lmm_{}.pickle".format(proc_dir, band, mod, n_idx)) aics[mod][n_idx] = this_mod.aic aics_pvals[mod][n_idx] = this_mod.pvalues aics_params[mod][n_idx] = this_mod.params aics_confint[mod][n_idx] = this_mod.conf_int() # calculate the AIC delta thresholds from the permutations null_tile = np.tile(np.expand_dims(aics["null"], 1), (1, 1024)) perm_simp_diff = perms["simple"] - null_tile perm_simp_maxima, perm_simp_minima = (perm_simp_diff.max(axis=1), perm_simp_diff.min(axis=1)) simp_thresh = np.quantile(perm_simp_minima, threshold / 2) perm_avg_tile = np.tile(np.mean(perms["simple"], axis=1, keepdims=True), (1, 1024))
perm_count = 200 perm_num = 5 vec_mat_len = 2415 effect_names = [ "C(Block, Treatment('rest'))[T.audio]", "C(Block, Treatment('rest'))[T.visselten]", "C(Block, Treatment('rest'))[T.visual]", "C(Block, Treatment('rest'))[T.zaehlen]" ] effects = ["audio", "visselten", "visual", "zaehlen"] # load up the main result mod_fits = [] for vml in range(vec_mat_len): mod_fits.append( MixedLMResults.load("{}{}/reg70_lmm_{}.pickle".format( proc_dir, band, vml))) # extract p and z values eff_dict = { e: { "effect_name": en, "pvals": [], "zvals": [] } for e, en in zip(effects, effect_names) } for effect in effects: for mf in mod_fits: pval = mf.pvalues.get(eff_dict[effect]["effect_name"]) zval = mf.tvalues.get(eff_dict[effect]["effect_name"]) eff_dict[effect]["pvals"].append(pval)
with open("{}{}".format(perm_dir, pf), "rb") as f: this_perm = pickle.load(f) perms["simple"] = np.hstack((perms["simple"], this_perm["simple"])) perms["cond"] = np.hstack((perms["cond"], this_perm["cond"])) aics = {mod: np.zeros(node_n) for mod in models} aics_pvals = {mod: [None for n in range(node_n)] for mod in models} aics_params = {mod: [None for n in range(node_n)] for mod in models} aics_confint = {mod: [None for n in range(node_n)] for mod in models} aics_predicted = {mod: [None for n in range(node_n)] for mod in models} for mod in models: for n_idx in range(node_n): print(n_idx) try: this_mod = MixedLMResults.load( "{}{}/{}_reg70_byresp_lmm_{}{}.pickle".format( lmm_dir, band, mod, n_idx, z_name)) except: continue aics[mod][n_idx] = this_mod.aic aics_pvals[mod][n_idx] = this_mod.pvalues aics_params[mod][n_idx] = this_mod.params aics_confint[mod][n_idx] = this_mod.conf_int() predicts = pd.Series({en: 0 for en in this_mod.model.exog_names}, dtype=float) for en_idx, en in enumerate(this_mod.model.exog_names): vector = np.zeros(len(this_mod.model.exog_names)) vector[0] = 1 vector[en_idx] = 1 predicts[en] = this_mod.model.predict(this_mod.params, vector)