如何将箱形晶须图上的四分位数取为序数比例,以用作序数逻辑回归中的因变量?

问题描述

我的因变量是水獭遭遇率,我将其绘制在箱须图中。我的教授建议我将其转换为序数值,以便将序数回归与栖息地参数作为自变量一起使用。我正在R中进行所有分析。我们将不胜感激。

解决方法

您追求的是这样的东西吗?

df <- tibble(num = 1:10)


df %>% 
  mutate(num_ordinal = case_when(
    num > 7 ~ "high",num <= 7 & num > 5 ~ "med",num <= 5 ~ "small"
    ) %>% as.factor()
  ) 

输出

# A tibble: 10 x 2
     num num_ordinal
   <int> <fct>      
 1     1 small      
 2     2 small      
 3     3 small      
 4     4 small      
 5     5 small      
 6     6 med        
 7     7 med        
 8     8 high       
 9     9 high       
10    10 high  
,

要将四分位数的值转换为序数变量,您需要将这些值转换为按因子顺序具有因子水平的因子。

这里是一个例子:

library(tidyverse) # to use the functions below

df <- data.frame(
  otter_encounter = 1:100,# original dependent variable
  habitat_1 = rnorm(100),# independent variable 1
  habitat_2 = rnorm(100) # independent variable 2
) %>% 
  mutate(encounter_quartile = factor(ntile(otter_encounter,4),levels = 1:4)) # your ordinal quartile values

ntile()是可以创建四分位数的函数。如果数据框中已经有一个“四分位数”列,则可以用四分位数列名称替换ntile(...)代码。
levelsfactor()的排名顺序命名四个四分位数。

您可以从polr()开始运行序数逻辑回归:

library(MASS)

m <- polr(encounter_quartile ~ habitat_1 + habitat_2,data = df,Hess=TRUE) 
summary(m)

其中m是您的回归公式。

您将需要更多来完成分析,但这不是您的问题,因此我将其省略。
有关序数逻辑回归的R教程,请参见https://stats.idre.ucla.edu/r/dae/ordinal-logistic-regression/

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...