Как правильно использовать lm () в R для запуска теста ANCOVA? - PullRequest
0 голосов
/ 06 мая 2020

Я сейчас работаю над проектом, в котором мне нужно запустить тест ANCOVA с набором данных, интегрированным в R. (Iris)

Я пытаюсь выяснить, как настроить lm () в чтобы запустить этот тест. Мне не нужен полный ответ, потому что я очень хочу узнать.

Итак, в основном мне нужно запустить ANCOVA, используя iris набора данных в r. Он просит меня сравнить Sepal.Length по всем трем видам при настройке на Sepal.Width.

Я перепробовал все, у меня ничего не работает, и я знаю, что это определенно ошибка пользователя.

Я новичок в использовании r, так что будьте любезны.

У меня сейчас есть:

fit2 <- lm(Sepal.Length ~ Species + Sepal.Width, data = iris_data) 

Мне нужно умножить индивидуальное Species на Sepal.width в разных случаях. Я даже создавал разные объекты, чтобы умножить их на ширину, но я получил бесчисленное количество ошибок.

Текущие объекты, которые я создал, следующие:

setosa     <- iris[iris$Species == "setosa", ]
versicolor <- iris[iris$Species == "versicolor", ]
virginica  <- iris[iris$Species == "virginica", ]`

Пожалуйста, помогите направить меня в правильном направлении, спасибо! Нет полных ответов, мне просто нужно знать, как его настроить, или, может быть, я не знаю о функции, которая поможет мне в этой ситуации.

Любая помощь приветствуется. Спасибо

1 Ответ

0 голосов
/ 07 мая 2020

Ковариационный анализ включает факторные и непрерывные переменные в качестве независимых переменных в линейной модели.

Для набора данных iris мы бы запустили следующее:

  lm(Sepal.Length ~ Sepal.Width + Species,data = iris)

Итак, исходный код в OP действительно является правильным способом настройки анализа, но Ключевым моментом является то, что точка пересечения представляет уровень фактора, который не указан в выходных данных, а другие уровни факторов интерпретируются как различия относительно видов, представленных точкой пересечения.

enter image description here

Поскольку вид Setosa не указан в списке коэффициентов регрессии, он представлен членом перехвата. Следовательно, коэффициенты для других видов интерпретируются как «влияние вида = Virginica на длину чашелистика составляет x относительно Setosa, net ширины чашелистика».

Чтобы использовать коэффициенты для прогнозирования значений Sepal.Length, если Species = Setosa, можно игнорировать коэффициенты для Virginica и Versicolor (т.е. установить их значения на 0).

Создание прогнозов

Чтобы делать прогнозы с помощью модели, мы сохраняем объект модели и используем его с функцией predict().

fit <- lm(Sepal.Length ~ Sepal.Width + Species,data = iris)

# predict some values
# first, set up the independent variables
Species <- c("setosa","setosa","virginica","versicolor","setosa")
Sepal.Width <- c(3.1,3.2,3.8,2.9,3.25)

# next, build a data frame
data <- data.frame(Species,Sepal.Width)

# predict and print 
data$predicted <- predict(fit,data)
data

... и вывод:

> data
     Species Sepal.Width predicted
1     setosa        3.10  4.742432
2     setosa        3.20  4.822788
3  virginica        3.80  7.251741
4 versicolor        2.90  6.040463
5     setosa        3.25  4.862966
> 
...