如何基于r中的一个变量创建平衡子集?

问题描述 投票:0回答:1

在我的数据中,我想解释是什么影响离线或在线转换。但是,我的数据不平衡。我有12344个在线转化和435个离线转化。因此,当我要运行逻辑回归时会收到警告。

为了解决这个问题,我想在我的逻辑回归中使用一个更平衡的子集,但是我不知道该如何管理。

我的数据如下:

Client id        Conversion_type
    1                Online
    2                Offline
    3                Online
    4                Online
    5                Online
    6                Online
    7                Online

因此,基于转换类型,我希望有一个更加平衡的子集。

r subset
1个回答
0
投票

我们可以将数据帧除以Conversion_type,然后从包含online转换类型的数据帧中随机采样,以至于有很多offline转换类型的采样:

library(dplyr)
df_online <- df %>% 
  filter(Conversion_type == "Online")

df_offline <- df %>% 
  filter(Conversion_type == "Offline")


df_online_sampled <- df[sample(nrow(df), nrow(df_offline)), ]

balanced_df <- bind_rows(df_online_sampled, df_offline)   

但是我认为您的问题可能是类是完全可分离的,例如,关于如何解决这些问题的信息,请参见here

© www.soinside.com 2019 - 2024. All rights reserved.