R: Прогнозирование с использованием гамма-семейства glm ()

Я использую функцию glm () в R со ссылкой = log, чтобы соответствовать моей модели. Я читал на различных веб-сайтах, что fit () возвращает значение, которое мы можем сравнить с исходными данными по сравнению с predic (). У меня возникла проблема при установке модели.

data<-read.csv("training.csv")
data$X2 <- as.Date(data$X2, format="%m/%d/%Y")
data$X3 <- as.Date(data$X3, format="%m/%d/%Y")
data_subset <- subset(...)
attach(data_subset)

#define variable
Y<-cbind(Y)
X<-cbind(X1,X2,X3,X4,X5,X6,X7,X8,X9,X10,X11,X12,X14)

# correlation among variables
cor(Y,X)

model <- glm(Y ~ X , data_subset,family=Gamma(link="log"))
summary(model)

detach(data_subset)

validation_data<-read.csv("validation.csv")

validation_data$X2 <- as.Date(validation_data$X2, format="%m/%d/%Y")
validation_data$X3 <- as.Date(validation_data$X3, format="%m/%d/%Y")

attach(validation_data)
predicted_valid<-predict(model, newdata=validation_data)

Я не уверен, как работает прогнозирование со ссылкой на гамма-журнал. Я хочу преобразовать предсказанные значения, чтобы их можно было сравнить с исходными данными. Кто-нибудь может мне помочь.


person Nikita    schedule 18.09.2014    source источник


Ответы (2)


Добавьте type="response" к своему predict вызову, чтобы получить прогнозы по шкале ответов. См. ?predict.glm.

predict(model, newdata=*, type="response")
person Hong Ooi    schedule 20.09.2014

Мне кажется, fitted работает не так, как вы думаете.

Вы, вероятно, захотите использовать там predict, поскольку вам кажется, что вы хотите передать ему данные.

см. ?fitted против ?predict

person Glen_b    schedule 18.09.2014
comment
даже если я использую pred (), я сталкиваюсь с той же проблемой. Predict также производит выходные данные, в которых нет выборок, равных обучающим данным. Это связано с прикреплением или отсоединением? - person Nikita; 18.09.2014
comment
Это не имеет ничего общего с attach или detach, но по другим причинам я настоятельно рекомендую вам избегать использования attach и detach. Если существуют data= аргументы, используйте их и вообще используйте with. Это означает, что вам придется немного больше печатать, но позже это избавит вас от лишней боли. Вы должны использовать точно правильные имена аргументов (и предсказать - это особая проблема, если ваши новые данные не имеют идентичных имен столбцов исходным, хотя я не думаю, что у вас есть эта проблема). - person Glen_b; 18.09.2014
comment
@glen_b Большое спасибо за помощь. Я получаю сообщение об ошибке 1. 'newdata' имеет 2496 строк, но найденные переменные имеют 1639 строк 2. В predic.lm (object, newdata, se.fit, scale = 1, type = ifelse (type ==: prediction from a rank -дефицитная посадка может вводить в заблуждение - person Nikita; 18.09.2014
comment
@glen_b Я использовал X ‹- cbind (data_subset $ X1, data_subset $ X2 ..), и после того, как я изменил его на X‹ -cbind (X1, X2 ...), я больше не получаю сообщение об ошибке. У меня вопрос, как преобразовать прогнозируемое значение, чтобы оно было сопоставимо с исходными данными. - person Nikita; 20.09.2014