コード例 #1
0
def test_plspm_russa_mode_b():
    satisfaction = pd.read_csv("file:tests/data/satisfaction.csv", index_col=0)
    config = c.Config(satisfaction_path_matrix(), scaled=False)
    config.add_lv_with_columns_named("QUAL", Mode.B, satisfaction, "qual")
    config.add_lv_with_columns_named("VAL", Mode.B, satisfaction, "val")
    config.add_lv_with_columns_named("SAT", Mode.B, satisfaction, "sat")
    config.add_lv_with_columns_named("LOY", Mode.B, satisfaction, "loy")
    config.add_lv_with_columns_named("IMAG", Mode.B, satisfaction, "imag")
    config.add_lv_with_columns_named("EXPE", Mode.B, satisfaction, "expe")

    plspm_calc = Plspm(satisfaction, config, Scheme.CENTROID)
    expected_inner_summary = pd.read_csv("file:tests/data/satisfaction.modeb.inner-summary.csv", index_col=0)
    npt.assert_allclose(util.sort_cols(expected_inner_summary.drop(["type"], axis=1)).sort_index(),
                        util.sort_cols(plspm_calc.inner_summary().drop(["type", "r_squared_adj"], axis=1)).sort_index())
    pt.assert_series_equal(expected_inner_summary.loc[:, "type"].sort_index(),
                           plspm_calc.inner_summary().loc[:, "type"].sort_index())
コード例 #2
0
def test_plspm_russa_mode_b():
    russa = pd.read_csv("file:tests/data/russa.csv", index_col=0)
    config = c.Config(russa_path_matrix(), default_scale=Scale.NUM)
    config.add_lv("AGRI", Mode.B, c.MV("gini"), c.MV("farm"), c.MV("rent"))
    config.add_lv("POLINS", Mode.B, c.MV("ecks"), c.MV("demo"), c.MV("inst"),
                  c.MV("death"))
    config.add_lv("IND", Mode.B, c.MV("gnpr"), c.MV("labo"))

    plspm_calc = Plspm(russa, config, Scheme.CENTROID, 100, 0.0000001)
    expected_inner_summary = pd.read_csv(
        "file:tests/data/russa.mode_b_inner_summary.csv", index_col=0)
    npt.assert_allclose(
        util.sort_cols(expected_inner_summary.drop(["type"],
                                                   axis=1)).sort_index(),
        util.sort_cols(plspm_calc.inner_summary().drop(
            ["type", "r_squared_adj"], axis=1)).sort_index())
    pt.assert_series_equal(
        expected_inner_summary.loc[:, "type"].sort_index(),
        plspm_calc.inner_summary().loc[:, "type"].sort_index())
コード例 #3
0
def test_plspm_russa_missing_data():
    russa = pd.read_csv("file:tests/data/russa.csv", index_col=0)
    russa.iloc[0, 0] = np.NaN
    russa.iloc[3, 3] = np.NaN
    russa.iloc[5, 5] = np.NaN
    config = c.Config(russa_path_matrix(), default_scale=Scale.NUM)
    config.add_lv("AGRI", Mode.A, c.MV("gini"), c.MV("farm"), c.MV("rent"))
    config.add_lv("IND", Mode.A, c.MV("gnpr"), c.MV("labo"))
    config.add_lv("POLINS", Mode.A, c.MV("ecks"), c.MV("death"), c.MV("demo"),
                  c.MV("inst"))

    plspm_calc = Plspm(russa, config, Scheme.CENTROID, 100, 0.0000001)
    expected_inner_summary = pd.read_csv(
        "file:tests/data/russa.missing.inner_summary.csv", index_col=0)
    npt.assert_allclose(
        util.sort_cols(expected_inner_summary.drop(["type"],
                                                   axis=1)).sort_index(),
        util.sort_cols(plspm_calc.inner_summary().drop(
            ["type", "r_squared_adj"], axis=1)).sort_index())
    pt.assert_series_equal(
        expected_inner_summary.loc[:, "type"].sort_index(),
        plspm_calc.inner_summary().loc[:, "type"].sort_index())
    assert plspm_calc.unidimensionality().drop(["mode", "mvs"],
                                               axis=1).isnull().values.all()
コード例 #4
0
def test_plspm_russa():
    russa = pd.read_csv("file:tests/data/russa.csv", index_col=0)
    config = c.Config(russa_path_matrix(), default_scale=Scale.NUM)
    config.add_lv("POLINS", Mode.A, c.MV("ecks"), c.MV("death"), c.MV("demo"),
                  c.MV("inst"))
    config.add_lv("AGRI", Mode.A, c.MV("gini"), c.MV("rent"), c.MV("farm"))
    config.add_lv("IND", Mode.A, c.MV("gnpr"), c.MV("labo"))

    plspm_calc = Plspm(russa, config, Scheme.CENTROID, 100, 0.0000001)
    expected_scores = pd.read_csv("file:tests/data/russa.scores.csv",
                                  index_col=0)
    npt.assert_allclose(util.sort_cols(expected_scores),
                        util.sort_cols(plspm_calc.scores()))

    expected_inner_model = pd.read_csv("file:tests/data/russa.inner_model.csv",
                                       index_col=0)
    actual_inner_model = plspm_calc.inner_model()
    actual_inner_model = actual_inner_model[actual_inner_model['to'].isin(
        ["POLINS"])].drop(["to"], axis=1)

    npt.assert_allclose(
        util.sort_cols(expected_inner_model).sort_index(),
        util.sort_cols(actual_inner_model.set_index(["from"],
                                                    drop=True)).sort_index())

    expected_outer_model = pd.read_csv("file:tests/data/russa.outer_model.csv",
                                       index_col=0)
    npt.assert_allclose(
        util.sort_cols(
            expected_outer_model.filter(
                ["weight", "loading", "communality",
                 "redundancy"])).sort_index(),
        util.sort_cols(plspm_calc.outer_model()).sort_index())

    expected_crossloadings = pd.read_csv(
        "file:tests/data/russa.crossloadings.csv", index_col=0)
    npt.assert_allclose(
        util.sort_cols(expected_crossloadings.filter(["AGRI", "IND",
                                                      "POLINS"])).sort_index(),
        util.sort_cols(plspm_calc.crossloadings()).sort_index())

    expected_inner_summary = pd.read_csv(
        "file:tests/data/russa.inner_summary.csv", index_col=0)
    npt.assert_allclose(
        util.sort_cols(expected_inner_summary.drop(["type"],
                                                   axis=1)).sort_index(),
        util.sort_cols(plspm_calc.inner_summary().drop(
            ["type", "r_squared_adj"], axis=1)).sort_index())
    pt.assert_series_equal(
        expected_inner_summary.loc[:, "type"].sort_index(),
        plspm_calc.inner_summary().loc[:, "type"].sort_index())

    assert math.isclose(0.643594505232204, plspm_calc.goodness_of_fit())

    plspm_calc_path = Plspm(russa, config, Scheme.PATH, 100, 0.0000001)
    expected_outer_model_path = util.sort_cols(
        pd.read_csv("file:tests/data/russa.outer_model_path.csv",
                    index_col=0).filter(
                        ["weight", "loading", "communality",
                         "redundancy"])).sort_index()
    npt.assert_allclose(
        expected_outer_model_path,
        util.sort_cols(plspm_calc_path.outer_model()).sort_index())

    plspm_calc_factorial = Plspm(russa, config, Scheme.FACTORIAL, 100,
                                 0.0000001)
    expected_outer_model_factorial = util.sort_cols(
        pd.read_csv("file:tests/data/russa.outer_model_factorial.csv",
                    index_col=0).filter(
                        ["weight", "loading", "communality",
                         "redundancy"])).sort_index()
    npt.assert_allclose(
        expected_outer_model_factorial,
        util.sort_cols(plspm_calc_factorial.outer_model()).sort_index())
コード例 #5
0
def test_plspm_satisfaction():
    satisfaction = pd.read_csv("file:tests/data/satisfaction.csv", index_col=0)
    config = c.Config(satisfaction_path_matrix(), scaled=False)
    config.add_lv_with_columns_named("IMAG", Mode.A, satisfaction, "imag")
    config.add_lv_with_columns_named("EXPE", Mode.A, satisfaction, "expe")
    config.add_lv_with_columns_named("VAL", Mode.A, satisfaction, "val")
    config.add_lv_with_columns_named("QUAL", Mode.A, satisfaction, "qual")
    config.add_lv_with_columns_named("SAT", Mode.A, satisfaction, "sat")
    config.add_lv_with_columns_named("LOY", Mode.A, satisfaction, "loy")

    plspm_calc = Plspm(satisfaction, config)
    expected_scores = pd.read_csv("file:tests/data/satisfaction.scores.csv")
    npt.assert_allclose(util.sort_cols(expected_scores), util.sort_cols(plspm_calc.scores()))

    expected_inner_model = pd.read_csv("file:tests/data/satisfaction.inner-model.csv", index_col=0)
    actual_inner_model = plspm_calc.inner_model()
    actual_inner_model = actual_inner_model[actual_inner_model['to'].isin(["SAT"])].drop(["to"], axis=1)
    npt.assert_allclose(util.sort_cols(expected_inner_model).sort_index(),
                        util.sort_cols(actual_inner_model.set_index(["from"],drop=True)).sort_index())
    expected_outer_model = pd.read_csv("file:tests/data/satisfaction.outer-model.csv", index_col=0).drop(["block"], axis=1)
    pt.assert_index_equal(expected_outer_model.columns, plspm_calc.outer_model().columns)
    npt.assert_allclose(
        util.sort_cols(expected_outer_model.sort_index()),
        util.sort_cols(plspm_calc.outer_model()).sort_index())

    expected_crossloadings = pd.read_csv("file:tests/data/satisfaction.crossloadings.csv", index_col=0)
    npt.assert_allclose(util.sort_cols(expected_crossloadings.drop(["block"], axis=1)).sort_index(),
                        util.sort_cols(plspm_calc.crossloadings()).sort_index())

    expected_inner_summary = pd.read_csv("file:tests/data/satisfaction.inner-summary.csv", index_col=0)

    npt.assert_allclose(util.sort_cols(expected_inner_summary.drop(["type"], axis=1)).sort_index(),
                        util.sort_cols(plspm_calc.inner_summary().drop(["type", "r_squared_adj"], axis=1)).sort_index())
    pt.assert_series_equal(expected_inner_summary.loc[:, "type"].sort_index(),
                           plspm_calc.inner_summary().loc[:, "type"].sort_index())

    expected_effects = pd.read_csv("file:tests/data/satisfaction.effects.csv", index_col=0)

    pt.assert_frame_equal(expected_effects.loc[:, ["from", "to"]].sort_index(),
                           plspm_calc.effects().loc[:, ["from", "to"]].sort_index())
    npt.assert_allclose(expected_effects.drop(["from", "to"], axis=1).sort_index(),
                        plspm_calc.effects().drop(["from", "to"], axis=1).sort_index())

    expected_unidimensionality = pd.read_csv("file:tests/data/satisfaction_unidim.csv", index_col=0)
    npt.assert_allclose(util.sort_cols(expected_unidimensionality.drop(["mode"], axis=1)).sort_index(),
                        util.sort_cols(plspm_calc.unidimensionality().drop(["mode"], axis=1)).sort_index())

    assert math.isclose(0.609741624338411,plspm_calc.goodness_of_fit())

    plspm_calc_path = Plspm(satisfaction, config, Scheme.PATH)
    expected_outer_model_path = util.sort_cols(
        pd.read_csv("file:tests/data/satisfaction.outer-model-path.csv", index_col=0).drop(["block"],
                                                                                           axis=1)).sort_index()
    npt.assert_allclose(expected_outer_model_path,
                        util.sort_cols(plspm_calc_path.outer_model()).sort_index())

    plspm_calc_factorial = Plspm(satisfaction, config, Scheme.FACTORIAL)
    expected_outer_model_factorial = util.sort_cols(
        pd.read_csv("file:tests/data/satisfaction.outer-model-factorial.csv", index_col=0).drop(["block"],
                                                                                                axis=1)).sort_index()
    npt.assert_allclose(expected_outer_model_factorial,
                        util.sort_cols(plspm_calc_factorial.outer_model()).sort_index())