Петли регрессии

Чао, у меня есть несколько столбцов, в которых представлены оценки. Я хочу оценить модели, в которых каждый СЧЕТ является функцией ВРЕМЕНИ ИЗУЧЕНИЯ. Итак, я хочу запустить столько моделей, сколько столбцов SCORE - все простые модели, которые являются функциями STUDYTIME. Затем я хочу сохранить коэффициенты STUDYTIME в новом столбце с именами строк, равными имени столбца SCORE. И, наконец, я не уверен, как выполнить кластеризацию на линейных моделях, потому что СТУДЕНТЫ присутствуют в данных два раза.

Вот мой повторяющийся пример. Вот данные, которые у меня есть сейчас:

df <- data.frame(replicate(5, rnorm(10)))
df[1]<-c(1,1,2,2,3,3,4,4,5,5)
colnames(df) <- c('student','studytime', 'score1','score2','score3')

Это моя попытка кодирования:

for (i in 1:nrow(df)) {
  dfx         <- df[,i]
  lm    <- lm(dfx[,3:5] ~ study_time)
  resdat[,i] = summary(lm)$coefficients[2]
}
0
0
43
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете сделать это, просто используя функцию lapply и sapply.

Вот код r:

Создание данных

df <- data.frame(replicate(5, rnorm(10)))
df[1]<-c(1,1,2,2,3,3,4,4,5,5)
colnames(df) <- c('student','studytime', 'score1','score2','score3')

Сохранение результатов

Results <- lapply(df[, -c(1,2)], FUN = function(x) lm(x ~ df$studytime))
Coef <- sapply(Results, FUN = coefficients)

Нирадж: на самом деле это наоборот. Я хочу регрессировать переменные SCORE во время учебы.

bvowe 13.09.2018 20:11

Просто поменяйте местами зависимые и независимые переменные.

Neeraj 13.09.2018 20:25

Это отличный @Neeraj. Наконец, что, если необходимо сохранить p-значение и остаток. Я попробовал остаток lm $, но это не сработало

bvowe 13.09.2018 20:53

Результат сохраняет вывод каждой регрессии в списке. Просто подберите то, что вам нужно, используя функцию lapply или sapply.

Neeraj 14.09.2018 07:13

Другие вопросы по теме