Предупреждение Ошибки в R studio при запуске при попытке вычислить Akaike Information Criterion - PullRequest
1 голос
/ 15 апреля 2020

Я новичок в Rstudio и Stack и пытаюсь вычислить AI C для моей модели с 8 переменными (один манекен), но только с 10 наблюдениями (не уверен, что это проблема). Код, который я запустил до сих пор:

library("MASS")

energy_data <- read.table('energy.txt', header = T)
full <- lm(y~., data = energy_data)

После этого я получаю предупреждение

Предупреждающие сообщения:

1: In model.response(mf, "numeric") :
  using type = "numeric" with a factor response will be ignored
2: In Ops.factor(y, z$residuals) : ‘-’ not meaningful for factors

Я просматривал другие темы форума. но я не уверен, применимы ли они в моем случае.

Я также пытался запустить это как файл CSV, но в этом случае я получаю ошибку:

Ошибка в model.frame.default (формула = y ~., Данные = Energy, drop.unused.levels = TRUE): переменные длины различаются (найдено для «GSP»), где GSP x1

Опять же, это уже спрашивалось ранее, но я не уверен, как обратиться в моем case. txt data CSV data

Заранее спасибо!

1 Ответ

0 голосов
/ 15 апреля 2020

Проблема заключается в , в столбце y, что является фактором. Вы можете исправить это, удалив ,, используя gsub, но для этого вам нужно сначала изменить его на символ. После удаления , вам необходимо изменить его на цифру c.

library(MASS)

energy_data <- read.table(text="x1  x2  x3  x4  x5  x6  x7  x8  y
361 79.7    2.983013699 1.683972603 4.35    2573.2  2048    0   77,465.59
369 86.9    2.814684932 1.701424658 4.7 2599    2094.5  0   76,705.04
375 100 2.780956284 2.006202186 3.7 2634.2  2141    0.5 72,704.99
384 119.3   3.594931507 1.448   2.75    2669.4  2266    1   70,061.93
392 123.5   3.354246575 1.522657534 2.5 2704.6  2391    0.5 69,587.52
402 114.5   3.17438562  1.653780822 2.1 2739.8  2418    0   70,138.85
410 109.3   3.691912568 1.346284153 1.75    2775    2445    0   70,405.99
418 120.8   3.725232877 1.818520548 1.5 2859.7  2586    0   70,879.50
421 136.6   3.681369863 1.79890411  1.5 2944.4  2726    0   70,436.26
431 135.2   3.960821918 1.959369863 1.2 3029.1  2867    0   70,161.83", header=T, sep="\t")

energy_data$y <- as.numeric(gsub(",","",as.character(energy_data$y)))
full <- lm(y~., data = energy_data)

. Вы также можете решить эту проблему, отредактировав прочитанный файл, чтобы удалить ,. * 1010. *

energy_data <- read.table(text="x1  x2  x3  x4  x5  x6  x7  x8  y
361 79.7    2.983013699 1.683972603 4.35    2573.2  2048    0   77465.59
369 86.9    2.814684932 1.701424658 4.7 2599    2094.5  0   76705.04
375 100 2.780956284 2.006202186 3.7 2634.2  2141    0.5 72704.99
384 119.3   3.594931507 1.448   2.75    2669.4  2266    1   70061.93
392 123.5   3.354246575 1.522657534 2.5 2704.6  2391    0.5 69587.52
402 114.5   3.17438562  1.653780822 2.1 2739.8  2418    0   70138.85
410 109.3   3.691912568 1.346284153 1.75    2775    2445    0   70405.99
418 120.8   3.725232877 1.818520548 1.5 2859.7  2586    0   70879.50
421 136.6   3.681369863 1.79890411  1.5 2944.4  2726    0   70436.26
431 135.2   3.960821918 1.959369863 1.2 3029.1  2867    0   70161.83", header=T, sep="\t")

full <- lm(y~., data = energy_data)
...