问题描述
我的因变量是水獭遭遇率,我将其绘制在箱须图中。我的教授建议我将其转换为序数值,以便将序数回归与栖息地参数作为自变量一起使用。我正在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(...)代码。
为levels
中factor()
的排名顺序命名四个四分位数。
您可以从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/。