예제 #1
0
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"
}
예제 #2
0
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))
예제 #3
0
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)
예제 #4
0
        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)