2014-09-18 2 views
0

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

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) 

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

ответ

1

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

predict(model, newdata=*, type="response") 
3

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

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

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

+0

, даже если я использую прогноз() Я столкнулся с той же проблемой. Predict также производит выход, который не имеет образцов, равных данным тренировки. Нужно ли что-либо делать с приложением или отсоединением? – Nikita

+1

Правильный аргумент - 'newdata', а не 'data' – rvl

+1

Это не имеет никакого отношения к 'attach 'или' detach', но по другим причинам я настоятельно рекомендую вам избегать использования 'attach' и' detach'. Где существуют аргументы 'data =', используйте их и в более общем случае используйте 'with'. Это означает немного больше печатать, но это сэкономит вам много боли позже. Вы должны использовать точно правильные имена аргументов (и предсказать - это конкретный ошибка, если ваши новые данные не имеют одинаковых имен столбцов для оригинала, хотя я не думаю, что у вас есть эта проблема). –

Смежные вопросы