2014-09-18 4 views
0

R에 glm() 함수를 사용하여 link = log로 모델에 맞 춥니 다. 다양한 웹 사이트에서 fitted()은 predict()와 비교하여 원본 데이터와 비교할 수있는 값을 반환합니다. 모델을 맞추는 동안 문제가 발생했습니다.R : glm() 감마 패밀리를 사용한 예측

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

?predict 대 응답 규모 예측을 얻기 위해, 당신의 predict 전화에 type="response" 추가를 참조하십시오. ?predict.glm을 참조하십시오.

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

나에게 보이는 것처럼 fitted 당신이 생각하는 것처럼 보이는 방식으로 작동하지 않습니다.

predict을 사용하고 싶습니다. 데이터를 전달하려는 것 같습니다.

?fitted

+0

predict()를 사용하는 경우에도 동일한 문제가 발생합니다. 또한 예측은 학습 데이터와 동일한 샘플이없는 출력을 생성합니다. 그것이 첨부 또는 분리와 함께 무엇을해야합니까? – Nikita

+1

올바른 인수는 'data'가 아닌 'newdata'입니다. – rvl

+1

'attach'또는 'detach'와는 아무런 관련이 없지만 다른 이유로는 'attach'와 'detach'를 사용하지 말 것을 강력히 권합니다. 'data ='인수가 존재하는 곳에서는 그것들을 사용하고 더 일반적으로'with'를 사용합니다. 그것은 조금 더 많은 타이핑을 의미하지만 나중에 많은 고통을 덜어줍니다. 올바른 데이터 이름을 사용해야 만합니다. 새 데이터의 원본 이름이 원본과 동일하지 않은 경우 특정 버그가 있다고 예측할 수 있습니다. 문제가 있다고 생각하지는 않습니다. –