首先:这个问题可能是重复的/已经解决的/在这个 stackoverflow 帖子中。
我想使用该MatchIt包使用马哈拉诺比斯距离在我的数据集中执行完全分块匹配。我有两个观察到的协变量(年龄和性别),我想将其用于匹配。
我知道我可以使用以下参数执行基于马哈拉诺比斯的匹配:
formula <- as.formula("group ~ sex_boolean + age")
m.out <- matchit(formula=formula,
data=data_df,
distance='mahalanobis')
site_df_matched <- get_matches(m.out,data=data_df)
Run Code Online (Sandbox Code Playgroud)
但这仅使用最近邻居执行基于马哈拉诺比斯的匹配。如果我想更严格怎么办?是否可以在马哈拉诺比斯匹配中引入卡尺?这个想法如下:对于少数群体中的每个单元,在多数群体中找到一个马哈拉诺比斯距离最小且位于定义的卡尺内的单元。如果没有来自多数群体的单元,则应丢弃来自少数群体的相应单元。
结果应该是大小相等的治疗组和对照组,其中包含各自协变量中接近的单位对。“紧密度”应该可以通过卡尺设置的严格程度来控制。更严格的卡尺将导致少数群体丢弃更多单位。
也许我对基于马哈拉诺比斯的匹配过程也有错误的理解,但是是否可以(并推荐)这样做MatchIt?
使用时conda install,是否可以在一行中安装来自不同渠道的不同软件包?例如,人们可以做这样的事情吗?
conda install -c <channel_1> <package_1> -c <channel_2> <package_2> ...?
plotly.express.histogram()我想使用每个子图都有自己的 x轴和 y 轴(为了更好的可读性)来绘制具有行和列面的直方图。在查看文档时(例如,转到“直方图分面网格”部分),我可以看到很多重复 x 轴和 y 轴的示例。但就我而言,这并不是自动完成的。
import numpy as np
import pandas as pd
import plotly.express as px
# create a dummy dataframe with lots of variables
rng = np.random.default_rng(42)
n_vars = 3
n_samples = 10
random_vars = [rng.normal(size=n_samples) for v in range(n_vars)]
m = np.vstack(random_vars).T
columns = pd.MultiIndex.from_tuples([('a','b'),('a','c'),('b','c')],names=['src','tgt'])
df = pd.DataFrame(m,columns=columns)
# convert to long format
df_long = df.melt()
# plot with plotly
fig = px.histogram(df_long,x='value',facet_row='src',facet_col='tgt')
fig.update_layout(yaxis={'side': 'left'})
fig.show()
Run Code Online (Sandbox Code Playgroud)
这给了我:
如何事后配置图形以便为每个子图显示 x 轴和 y …
我用来GridSearchCV在嵌套交叉验证的内循环中找到最佳参数。使用GridSearchCV(scorer='balanced_accuracy')找到“内部赢家” ,因此据我了解文档,内部折叠中平均平衡精度最高的模型是“best_estimator”。我不明白refitin的不同论点GridSearchCV与scorer论点结合起来做什么。如果refit是真,什么计分功能时将使用改装的数据集来估计,“内部赢家”的表现?传递给的相同评分函数scorer(因此在我的情况下为“balanced_accuracy”)?为什么你也可以传递一个字符串给refit? 这是否意味着您可以使用不同的函数来 1.) 找到“内部赢家”和 2.) 来估计“内部赢家”在整个数据集上的表现?
python ×3
anaconda ×1
conda ×1
grid-search ×1
histogram ×1
mahalanobis ×1
matching ×1
plotly ×1
r ×1
scikit-learn ×1
subplot ×1