2017-01-03 6 views
1

저는 현재 24/7 상점에 도착한 고객 수를 예측하기 위해 대학 프로젝트를 진행하고 있습니다. 특정 연도의 모든 고객에게 서비스를 제공 한 날짜와 시간을 (다른 것 중에서) 포함하는 상점의 데이터를 사용하고 있습니다.다중 회귀 분석을위한 교차 유효성 검사

이 데이터 세트를 학습 세트와 교차 유효성 검사 세트로 분할했습니다. 또한, 연중 무휴로 기상 데이터를 집계하고 병합하여 예를 들어 고온으로 인해 더 많은 고객이 발생하는 경우를 확인했습니다.

병합 된 데이터의 단순화 된 버전이 같은 같습니다 올해의 모든 시간

| ServedCustomers | Month | Day | Hour | Temperature (C°) | Rain(binary) 
| --------------- | ----- | --- | ---- | ---------------- | ------------ 
| 1    | 12 | 31 | 12 | 9.2    | 0 
| 0    | 12 | 31 | 13 | 9.8    | 1 
| 2    | 12 | 31 | 14 | 10.1    | 0 

을, 나는 봉사뿐만 아니라 해당 기상 데이터 한 고객의 수 있습니다.

저는 R로 다중 선형 회귀 모델을 작성하여 다른 모든 변수가있는 고객의 수를 예측 변수로 예측했습니다. summary() 명령을 사용하면 MSE, R^2 및 기타 통계가 지금까지 정상적으로 보입니다.

이제 동일한 모델이 교차 유효성 검사 집합과 함께 작동하는지 확인하고 싶습니다. 이를 위해 같은 기상 데이터를 병합하여 위 표와 동일한 구조를 가진 데이터 세트를 얻었으며 다른 고객 수만 확보했습니다.

그러나 내가 현재 고민하고있는 곳입니다. 모델 및 교차 유효성 검사 집합과 함께 predict.lm() 함수를 사용하면 작동하는 것처럼 보이지만 예상 값과 약간의 추가 정보 만 생성합니다.

모델이 다른 데이터 세트에 얼마나 잘 작동하는지에 대한 요약을 만드는 방법이 있습니까? summary() 명령과 유사하지만 선형 모델이 원래 기반으로하지 않은 데이터 세트의 경우?

답변

0

평균 제곱 오차와 평균 제곱 오차를 계산하여 모델이 얼마나 잘 수행되었는지 확인할 수 있습니다.

1) 계수를 가져 와서 훈련 데이터의 공변량 행렬로 곱하십시오. yhat = (X * b)

2) 훈련 세트를 가져 와서 위의 yhat와 차이를 가져 오십시오.

3) 오류

4) 답의 제곱근을 취를 광장 = 루트 평균 제곱 오류

낮은 값은 더 잘 맞는 전체

을 의미한다