Tải bản đầy đủ (.pptx) (44 trang)

Dự báo chuỗi thời gian trong hệ thống thông tin bệnh viện

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (5.33 MB, 44 trang )

Đại Học Quốc Gia Thành Phố Hồ Chí Minh
Trường Đại Học Bách Khoa

BÁO CÁO LUẬN VĂN THẠC SĨ

DỰ BÁO CHUỖI THỜI GIAN TRONG
HỆ THỐNG THÔNG TIN BỆNH VIỆN

GVHD: PGS.TS DƯƠNG TUẤN ANH


QUÁ TRÌNH THỰC NGHIỆM

 Tập dữ liệu Phòng khám đa khoa
 Kỹ thuật làm trơn
 Mô hình ARIMA
 Mô hình SARIMA


QUÁ TRÌNH THỰC NGHIỆM

 Tập dữ liệu Phòng khám đa khoa
 Kỹ thuật làm trơn
 Mô hình ARIMA
 Mô hình SARIMA


KỸ THUẬT LÀM TRƠN






Xác định các phương pháp của kỹ thuật làm trơn mũ đối với tập dữ liệu.
Áp dụng các phương pháp đã lựa chọn vào tập dữ liệu.
So sánh kết quả giữa giá trị làm trơn và giá trị thực tế.
Đánh giá kết quả dự báo.


Xác định các phương pháp của kỹ thuật làm trơn mũ



Biểu đồ dữ liệu doanh thu phòng khám đã được làm trơn bằng phương pháp trung bình di
động
> smPK <- SMA(seriesPK1,n=5)
> plot(smPK,type="l", main='Biểu đồ dữ liệu PKDK sau khi làm trơn')

1400
1200

Dữ liệu có xu hướng nên sử dụng: Kỹ thuật làm trơn mũ Holt và Kỹ thuật làm trơn mũ Winters
600



800

1000

smPK


1600

1800 2000

Bieu do du lieu PKDK sau khi lam tron

2009.0

2009.5

2010.0

2010.5
Time

2011.0

2011.5


KỸ THUẬT LÀM TRƠN MŨ HOLT

> #Mô hình kỹ thuật làm trơn mũ Holt
> modelHoltPK1 <- HoltWinters(seriesPK1,

gamma = F); modelHoltPK1

Warning message:
In HoltWinters(seriesPK1, gamma = F) :

optimization difficulties: ERROR: ABNORMAL_TERMINATION_IN_LNSRCH
Holt-Winters exponential smoothing with trend and without seasonal component.
Call:
HoltWinters(x = seriesPK1, gamma = F)
Smoothing parameters:
alpha:

0.6670203

beta :

0.04979754

gamma:

FALSE

Coefficients:
[,1]
a 1959.98979
b

56.03317


GIÁ TRỊ THỰC TẾ VÀ GIÁ TRỊ LÀM TRƠN (Holt)
> #Biểu đồ doanh thu thực tế so với doanh thu dự đoán từ mô hình
> plot(modelHoltPK1,type="l", main='Doanh thu thực tế & Doanh thu theo Mô hình modelHoltPK1')

1500

1000
500

Observed / Fitted

2000

Doanh thu thuc te & Doanh thu theo mo hinh modelHoltPK1

2009.5

2010.0

2010.5
Time

2011.0

2011.5


DỰ BÁO CHUỖI THỜI GIAN (Holt)
> #Tập giá trị dự đoán từ mô hình, với khoảng dự đoán = số lượng dữ liệu để kiểm định valPK.period
> HoltResultPK1=forecast.HoltWinters(modelHoltPK1,h= valPK.period)
> HoltResultPK1$residuals[1:5] #5 giá trị đầu của sai số dự báo
[1]

-8.00000

-37.39811


85.05513 -140.99562 -167.58261

> HoltResultPK1 #Kết quả dự báo từ mô hình
Point Forecast

Lo 80

Hi 80

Lo 95

Hi 95

Dec 2011

2016.023 1743.894 2288.152 1599.838 2432.208

Jan 2012

2072.056 1739.844 2404.269 1563.981 2580.131

Feb 2012

2128.089 1740.529 2515.649 1535.368 2720.811

Mar 2012

2184.122 1743.975 2624.270 1510.974 2857.271


Apr 2012

2240.156 1749.125 2731.186 1489.189 2991.122

May 2012

2296.189 1755.348 2837.030 1469.044 3123.333

Jun 2012

2352.222 1762.233 2942.211 1449.912 3254.532

> HoltResultPK1$mean[1: valBV.period]
[1] 2016.023 2072.056 2128.089 2184.122 2240.156 2296.189 2352.222
> ForecastHoltPK1=HoltResultPK1$mean
> plot(HoltResultPK1, ylab='Doanh thu', xlab='Time')


DỰ BÁO CHUỖI THỜI GIAN (Holt) (tt)

2000
1500
500

1000

Doanh thu

2500


3000

Forecasts from HoltWinters

2009.0

2009.5

2010.0

2010.5

2011.0

2011.5

2012.0

2012.5

Time



Biểu đồ thể hiện giá trị doanh thu ước lượng từ mô hình, khu vực màu cam là khu vực ước
đoán ở mức 95% và màu vàng là khu vực 80%.


So sánh giá trị dự báo và giá trị thực tế (Holt)
> ymaxPK11 <- Max(futurePK1 , ForecastHoltPK1)

> yminPK11 <- Min(futurePK1 , ForecastHoltPK1)
> plot(futurePK1 , type="l", ylim=c(yminPK11,ymaxPK11), ylab = "Doanh thu")
> par(new=TRUE)
>

plot(ForecastHoltPK1,col=2,

axes=FALSE,

Actual & Fitted")

type="l",

ylab="Doanh

thu",

xlab="Time",

ylim=c(yminPK11,ymaxPK11),

2100
1900
1700

Doanh thu

2300

Actual & Fitted


2011.9

2012.0

2012.1

2012.2
Time

2012.3

2012.4

main="PKDK:


ĐÁNH GIÁ DỮ LIỆU
> #Đánh giá mô hình
> valHoltPK1 <- criteriaForecast(futurePK1, ForecastHoltPK1)
> valHoltPK1
MAE

MSE

RMSE

1.698302e+02

5.013489e+04


2.239082e+02

MAPE

MPE

8.755515e-02 -4.873609e-02


KỸ THUẬT LÀM TRƠN MŨ WINTERS

> #Mô hình kỹ thuật làm trơn mũ Holt-Winters
> modelHoltPK2 <- HoltWinters(seriesPK1); modelHoltPK2
Holt-Winters exponential smoothing with trend and additive seasonal component.
Call:
HoltWinters(x = seriesPK1)
Smoothing parameters:
alpha:

0.02614712

beta :

1

gamma:

1



GIÁ TRỊ THỰC TẾ VÀ GIÁ TRỊ LÀM TRƠN (Winters)
> #Biểu đồ doanh thu thực tế so với doanh thu dự đoán từ mô hình
> plot(modelHoltPK2,type="l", main='Doanh thu thuc te & Doanh thu theo Mô hình modelHoltPK2')

1500
1000
500

Observed / Fitted

2000

Doanh thu thuc te & Doanh thu theo mo hinh modelHoltPK3

2010.0

2010.5

2011.0
Time

2011.5


DỰ BÁO CHUỖI THỜI GIAN (Winters)
> #Tập giá trị dự đoán từ mô hình, với khoảng dự đoán = số lượng dữ liệu để kiểm định valPK.period
> HoltResultPK2=forecast.HoltWinters(modelHoltPK2, h=valPK.period)
> HoltResultPK2$residuals[1:5]
[1]


90.45887

95.68031 101.13847 101.26776

84.91248

> HoltResultPK2
Point Forecast

Lo 80

Hi 80

Lo 95

Hi 95

Dec 2011

1969.477 1778.077 2160.878 1676.756 2262.199

Jan 2012

1954.245 1762.583 2145.906 1661.123 2247.366

Feb 2012

1575.738 1383.489 1767.986 1281.718 1869.757


Mar 2012

2116.963 1923.675 2310.251 1821.354 2412.572

Apr 2012

2233.819 2038.917 2428.720 1935.743 2531.894

May 2012

2125.545 1928.344 2322.745 1823.952 2427.137

Jun 2012

2260.497 2060.209 2460.785 1954.183 2566.812

> HoltResultPK2$mean[1: valBV.period]
[1] 1969.477 1954.245 1575.738 2116.963 2233.819 2125.545 2260.497
> ForecastHoltPK2 = HoltResultPK2$mean
> plot(HoltResultPK2, ylab='Doanh thu', xlab='Time')


DỰ BÁO CHUỖI THỜI GIAN (Winters) (tt)

2000
1500
500

1000


Doanh thu

2500

3000

Forecasts from HoltWinters

2009.0

2009.5

2010.0

2010.5

2011.0

2011.5

2012.0

2012.5

Time



Biểu đồ thể hiện giá trị doanh thu ước lượng từ mô hình, khu vực màu cam là khu vực ước
đoán ở mức 95% và màu vàng là khu vực 80%.



So sánh giá trị dự báo và giá trị thực tế (Winters)
> win.graph(width=7,height=4,pointsize=9)
> ymaxPK21 <- Max(futurePK1 , ForecastHoltPK2)
> yminPK21 <- Min(futurePK1 , ForecastHoltPK2)
> plot(futurePK1 , type="l", ylim=c(yminPK21,ymaxPK21), ylab='Doanh thu')
> par(new=TRUE)
> plot(ForecastHoltPK2,col=2, axes=FALSE, type="l", ylab="Doanh thu",

xlab="Time", ylim=c(yminPK21,ymaxPK21), main="PKDK:

Actual & Fitted")

2100
1900
1700

Doanh thu

2300

Actual & Fitted

2011.9

2012.0

2012.1


2012.2
Time

2012.3

2012.4


ĐÁNH GIÁ DỮ LIỆU (Winters)
> valHoltPK2 <- criteriaForecast(futurePK1, ForecastHoltPK2)
> valHoltPK2
MAE

MSE

RMSE

MAPE

MPE

1.735483e+02 5.283631e+04 2.298615e+02 8.799934e-02 2.701944e-02


Đánh giá phương pháp của kỹ thuật làm trơn mũ - PKĐK
> #So sánh kết quả các chỉ tiêu so sánh đánh giá mô hình
> rbind(modelHoltPK1 = valHoltPK1, modelHoltPK2 = valHoltPK2)
MAE

MSE


RMSE

MAPE

MPE

modelHoltPK1 169.8302 50134.89 223.9082 0.08755515 -0.04873609
modelHoltPK2 173.5483 52836.31 229.8615 0.08799934

0.02701944

Hay:

Phương pháp

MAE

MSE

RMSE

MAPE

MPE

Dữ liệu Phòng khám đa khoa
Holt
Winters


169.8302

50,134.89

223.9082

0.08755515

-0.04873609

173.5483

52,836.31

229.8615

0.08799934

0.02701944


QUÁ TRÌNH THỰC NGHIỆM

 Tập dữ liệu Phòng khám đa khoa
 Kỹ thuật làm trơn
 Mô hình ARIMA
 Mô hình SARIMA


MÔ HÌNH ARIMA – PHÒNG KHÁM ĐA KHOA




Quá trình thực nghiệm của phương pháp này



Kiểm tra tính dừng của chuỗi dữ liệu



Xác định các hệ số p, d, q



Thực hiện các mô hình đề xuất



Lựa chọn mô hình



Dự báo chuỗi thời gian từ các mô hình đề xuất



So sánh kết quả giữa giá trị dự báo từ mô hình và giá trị thực tế.




Đánh giá kết quả dự báo.


KIỂM TRA TÍNH DỪNG
> win.graph(width=6,height=4,pointsize=8)
> plot(seriesPK, type='l', ylab='Doanh thu PKDK')

1500
1000
500

Doanh thu PKDK

2000

> plot(seriesPK1, type='l', ylab='Doanh thu PKDK', xlab='Thời gian')

2009.0

2009.5

2010.0

2010.5

2011.0

2011.5


Thời gian

Biểu đồ thể hiện doanh thu Phòng khám đa khoa từ 01/2009 đến 11/2011 là chuỗi dữ liệu có xu hướng và tính mùa


KIỂM TRA TÍNH DỪNG (tt)
Biểu đồ tương quanACF

> #Vẽ biểu đồ tương quan ACF

Series seriesPK

0.2
-0.2

0.0

AC F

0.4

0.6

0.8

> acf(seriesPK)

2

4


6

8

10

12

14

Lag

Kết luận
Dựa vào biểu đồ thể hiện doanh thu và biểu đồ tự tương quan thì ta có thể kết luận tập dữ liệu doanh thu PKDK mẫu là chuỗi không dừng


Xác định các hệ số p, d, q




Loại bỏ yếu tố xu hướng và mùa vụ
Sử dụng phương pháp lấy sai phân bậc 1 cho tập dữ liệu
> #Dữ liệu PKDK mẫu sau khi Sai phân bậc 1
> seriesPK.diff = diff(seriesPK)





Kết quả cho thấy dữ liệu sau khi lấy sai phân bậc 1 vẫn chưa đạt là chuỗi dừng.
Biểu đồ dữ liệu doanh thu bệnh viện sau khi lấy sai phân bậc 2

> #Sai phân bậc 2
> seriesPK.diff2 = diff(diff(seriesPK))
> plot(seriesPK.diff2, type='l', main='Dữ liệu PKDK sau khi lấy sai phân bậc 2')


0
-500

seriesPK.diff2

500

Xác định các hệDữsốliệup,PKDK
d, sau
q (tt)
khi lấy sai phân bậc 2

0

5

10

15

20


25

Index
Hình 5.22 Biểu đồ dữ liệu doanh thu PKDK mẫu sau khi lấy sai phân bậc 2
Dữ liệu sau khi lấy sai phân bậc 2 đã đạt là chuỗi dừng, vì vậy d=2

30


Xác định các hệ số p, d, q (tt)
Biểu đồ tương quan ACF và tương quan riêng phần PACF của dữ liệu PKDK mẫu sau khi lấy sai
phân bậc 2
> op <- par(mfrow = c(2,1), mar = c(5,4,1,2)+.1, oma = c(0,0,2,0))
> acf(seriesPK.diff2)
> pacf(seriesPK.diff2)

0.5
0.0
-0.5

ACF

1.0

Series seriesPK.diff2

0

5


10

15

Lag
Series seriesPK.diff2

d=2
q=3

-0.2

0.2

p=3

-0.6

Partial ACF



2

4

6

8
Lag


10

12

14


×