【问题标题】:Logistic regression detection probability逻辑回归检测概率
【发布时间】:2019-03-09 08:23:25
【问题描述】:

我正在尝试访问检测概率中的关键协变量。

我目前正在使用此代码

    model1 <- glm(P ~ Width +
                MBL +
                DFT +
                SGP +
                SGC +
                Depth,
              family = binomial("logit"), 
              data = dframe2, na.action = na.exclude)
summary.lm(model1)

我的数据结构是这样的-

Site Transect Q  ID   P  Width DFT  Depth    Substrate SGP SGC  MBL
1      Vr1    Q1  1   0    NA  NA   0.5         Sand   0   0    0.00000
2      Vr1    Q2  2   0    NA  NA   1.4 Sand&Searass   1   30   19.14286
3      Vr1    Q3  3   0    NA  NA   1.7 Sand&Searass   1   15   16.00000
4      Vr1    Q4  4   1    17   0   2.0 Sand&Searass   1   95   35.00000
5      Vr1    Q5  5   0    NA  NA   2.4         Sand   0   0    0.00000
6      Vr1    Q6  6   0    NA  NA   2.9 Sand&Searass   1   50   24.85714

我的样本量非常小(n=12),我只有大约 70 行数据。

当我运行它返回的代码时

                      Estimate   Std. Error  t value Pr(>|t|)   
(Intercept)            2.457e+01  4.519e+00   5.437  0.00555 **
Width                  1.810e-08  1.641e-01   0.000  1.00000   
MBL                   -2.827e-08  9.906e-02   0.000  1.00000   
DFT                    2.905e-07  1.268e+00   0.000  1.00000   
SGP                    1.064e-06  2.691e+00   0.000  1.00000   
SGC                   -2.703e-09  3.289e-02   0.000  1.00000   
Depth                  1.480e-07  9.619e-01   0.000  1.00000   
SubstrateSand&Searass -8.516e-08  1.626e+00   0.000  1.00000 

这是否意味着我的数据集太小而无法评估检测概率,还是我做错了什么?

【问题讨论】:

  • T 值为 0.000,即 Estimate/Std。错误。对于除拦截之外的其他功能,估计值更接近于零。从您的数据中,我可以看到有很多 NA 尝试用有意义的东西替换它,例如“Mean of该功能”。由于 n~70 使用像 Bootstrap sampling 这样的采样技术
  • 是的,这几乎肯定与您的样本量有关。你说你有 70 行,看起来很多行都有NA,而你有na.action = na.exclude,所以你的实际样本量可能很小。由于要使用的信息如此之少,毫无疑问,您的模型无法找到模式并返回一堆近似为零的系数。

标签: r logistic-regression glm


【解决方案1】:

根据 Hair(Multivariate Data Analysis 一书的作者)的说法,对于数据的每个特征(列),您至少需要 15 个示例。如果你有 12 个,你只能选择一个特征。

因此,运行 t 检验比较与两个类别中的每一个相关的特征(目标处的 0 和 1 - 因变量),并选择类别之间的平均差异最大的特征(自变量)。这意味着变量可以正确地创建一个边界来分割这两个类。

【讨论】:

  • 用“0”填充“na”是否合适?我最初没有这样做,因为我认为它会扭曲模型,因为宽度不是“0”,只是我们没有在那个间隔检测到物种。
  • 通常你可以用平均值和中位数填充 NaN。但是,如果丢失的数据大于 15%,则不能使用该变量。
  • 好的,所以如果我理解正确,因为该物种在大约 70 次观察中仅观察到 12 次,我不能使用平均值来填充 NaN?
  • 从模型中省略具有如此多 NA 的特征可能会更好,这样您就不会丢失那些整行(观察)。
猜你喜欢
  • 2015-05-04
  • 2013-12-24
  • 2019-04-04
  • 1970-01-01
  • 2013-06-05
  • 2018-07-05
  • 2016-03-08
  • 2017-11-20
  • 2019-04-06
相关资源
最近更新 更多