Моей зависимой переменной является частота встречаемости выдры, которую я нанес на график с усами. Мой профессор предложил мне преобразовать это в порядковые значения для использования в порядковой регрессии вместе с параметрами среды обитания в качестве независимых переменных. Я делаю все анализы в R. Любая помощь будет высоко оценена.
Как преобразовать значения квартилей на графике с усами в порядковую шкалу, чтобы их можно было использовать в качестве зависимой переменной в порядковой логистической регрессии?
Ответы (2)
Чтобы преобразовать значения квартиля как порядковую переменную, вам необходимо преобразовать значения как факторы с уровнями факторов в последовательном порядке.
Вот пример:
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/.
Что-то вроде этого, что вы после?
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