Mô hình IO (Input-Output), là một trong các mô hình toán học được sử
dụng để phân tích và dự báo kinh tế. So với các mô hình kinh tế lượng khác, mô
hình IO phản ánh được mối quan hệ giữa các ngành kinh tế. Vì vậy mô hình này
IO đang ngày càng được ứng dụng rộngrãi trong phân tích và dự báo kinh tế ở
nhiều nước trên thế giới trong đó có Việt Nam.
99 trang |
Chia sẻ: lylyngoc | Lượt xem: 2557 | Lượt tải: 4
Bạn đang xem trước 20 trang tài liệu Luận văn Đánh giá hiệu quả các ngành kinh tế Việt Nam giai đoạn 2000-2008 bằng mô hình toán học, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
trọng xuất khẩu lớn, %
Giai
đoạn
2000-
2007
Giai
đoạn
2000-
2007
Giai
đoạn
1996-
2000
Giai
đoạn
2000-
2007
ISFDE ISIDE ISFDE ISIDE TCE CFE TCE CFE
N5 -125,44 -21,90 0.67 0.41 901,00 -614,73 6,13 -31,33
N8 -88,73 -31,12 8.23 4.40 -29,05 192,49 -5,41 -141,90
N10 -0,43 -0,90 -0.49 -0.71 -0,57 1,75 8,52 6,72
N17 8,67 11,90 -0.22 0.23 274,57 -54,46 1,14 -0,64
N21 17,21 21,20 105.52 -92.15 -5,70 8,47 25,36 -76,86
N30 -4,37 -6,32 -229.14 53.33 5,03 0,74 -8,69 -69,73
N31 63,61 9,70 -88.95 -32.59 0,23 6,98 56,08 59,96
N32 12,73 8,13 171.17 -109.23 3,62 0,31 0,71 -26,96
Nguồn: Tính toán của tác giả.
Bảng 16: Đóng góp của các thành phần cầu đối với sự gia tăng đầu ra của
các sản phẩm phục vụ thị trường tiêu dùng nội địa, %
Giai đoạn 1996-2000 Giai đoạn 2000-2007
EE CPE EE CPE
Chế biến bảo quản
thịt và các sản phẩm
từ thịt; Dầu mỡ thực
vật, động vật; Sản
phẩm bơ sữa; Bánh,
mứt, kẹo, ca cao,
sôcôla (N4) 41,95 54,59 12,24 77,72
Rượu, bia, nước uống
không cồn (N6) -2,53 107,00 30,55 32,58
46
Giai đoạn 1996-2000 Giai đoạn 2000-2007
EE CPE EE CPE
Đường các loại (N7)
1,16 100,98
-
50,11
-
173,19
Thuốc lá, thuốc lào
(N9) 17,70 61,99 24,94 34,78
Xay xát, chế biến
lương thực và thực
phẩm khác (N11) 11,78 52,01 89,09 81,12
Giấy, các sản phẩm từ
giấy (N16) 42,59 34,87 41,26 38,38
Dược phẩm (N20) 23,93 83,70 22,24 30,45
Xà phòng, các chất
tẩy (N22) 7,36 49,36 -1,90 55,38
Sản phẩm công
nghiệp khác (chế biến
thức ăn gia súc, sản
phẩm công nghiệp in,
sản phẩm công nghiệp
khác còn lại) (N33) 201,33 -32,33 69,77 76,86
Sản phẩm của nhà
xuất bản (N34) 48,43 88,50 9,55 75,49
Nguồn: Tính toán của tác giả.
Bảng 16 (tiếp): Đóng góp của các thành phần cầu đối với sự gia tăng đầu
ra của các sản phẩm phục vụ thị trường tiêu dùng nội địa, %
Giai đoạn
1996-2000
Giai đoạn
2000-2007
Giai đoạn
1996-2000
Giai đoạn
2000-2007
ISFDE ISIDE ISFDE ISIDE TCE CFE TCE CFE
N4 1,74 -0,74 12,71 3,87 -0,93 2,42 11,48 -15,73
N6 -8,55 -1,17 -3,68 -0,06 0,77 4,11 1,73 38,66
N7 1,27 0,22 -20,54 6,36 -5,52 -1,35 -4,19 344,60
N9 -43,51 -19,93 16,46 0,98 86,84 5,94 -8,40 29,58
N11 9,86 -0,52 2,25 -5,05 16,04 11,48 72,09 -137,85
N16 -9,25 -0,54 2,13 0,40 17,23 13,87 9,08 3,84
N20 -16,76 -4,78 5,27 3,47 -21,53 18,41 22,66 11,04
N22 32,07 5,13 -92,78 138,72 5,09 0,95 -124,10 125,05
N33 -20,60 -163,01 5,97 18,02 132,08 -19,20 -34,46 -40,80
47
Giai đoạn
1996-2000
Giai đoạn
2000-2007
Giai đoạn
1996-2000
Giai đoạn
2000-2007
ISFDE ISIDE ISFDE ISIDE TCE CFE TCE CFE
N34 -118,23 -96,86 -17,75 -1,24 175,33 -91,94 -10,26 1,97
Nguồn: Tính toán của tác giả.
Bảng 17: Đóng góp của các thành phần cầu đối với sự gia tăng đầu ra của
các sản phẩm vật liệu xây dựng, %
Giai đoạn 1996-2000 Giai đoạn 2000-2007
EE CPE EE CPE
Gạch ngói (các loại) (N13) 3,90 8,45 -1550,5 -314,30
Xi măng (N14) 8,00 5,64 46,42 6,77
Vật liệu xây dựng khác
(N15) -22,08 -10,78 92,05 12,71
Nguồn: Tính toán của tác giả.
Bảng 17 (tiếp): Đóng góp của các thành phần cầu đối với sự gia tăng đầu
ra của các sản phẩm vật liệu xây dựng, %
Giai đoạn
1996-2000
Giai đoạn
2000-2007
Giai đoạn
1996-2000
Giai đoạn
2000-2007
ISFDE ISIDE ISFDE ISIDE TCE CFE TCE CFE
N13 -2,42 -20,82 372,67 -172,41 71,10 41,34 611,08 1206,27
N14 -1,21 11,43 -1,25 1,04 25,45 52,40 7,07 38,86
N15 2,25 13,64 32,76 15,39 134,12 -18,37 23,31 -11,07
Nguồn: Tính toán của tác giả.
- Nhóm các sản phẩm công nghiệp hóa chất:
+ Do nhóm sản phẩm này chủ yếu được sử dụng cho chi phí trung gian
nên các nhân tố thay thế nhập khẩu và xuất khẩu (phục vụ đầu vào trung gian
của nước nhập khẩu) là các nhân tố chính quyết định sự mở rộng sản lượng của
nhóm này. Nhân tố xuất khẩu (EE) có đóng góp khá cao trong giai đoạn 2000-
2007 ở tất cả các sản phẩm thuộc nhóm này. Nếu các tính toán của Đề tài cũng
như chất lượng các bảng IO là chính xác, đáng tin cậy thì kết quả này có nghĩa
rằng việc đầu tư vào các ngành công nghiệp hóa chất của Việt Nam thời gian
vừa qua đã phần nào tạo ra được năng lực cạnh tranh.
+ Kết quả trong các bảng dưới đây cho thấy Việt Nam đã thay thế nhập
khẩu cho tiêu dùng cuối cùng (ISFDE) và tiêu dùng trung gian (ISIDE) của hầu
hết các sản phẩm hóa chất như hóa chất vô cơ, phân bón, chất dẻo nhưng vẫn
phải nhập khẩu hoàn toàn xăng cho tiêu dùng trung gian. Do bảng IO 2007 đã
được tiến hành điều tra trước khi Nhà máy lọc hóa dầu Dung Quất đi vào hoạt
48
động nên kết quả này sẽ không phản ánh thực tiễn kinh tế nước ta trong những
năm tới đây.
Bảng 18: Đóng góp của các thành phần cầu đối với sự gia tăng đầu ra của
các sản phẩm công nghiệp hóa chất, %
Giai đoạn 1996-2000 Giai đoạn 2000-2007
EE CPE EE CPE
Hóa chất hữu cơ
và vô cơ căn bản
(N18) 425,66 216,95 44,48 12,08
Phân bón, thuốc
trừ sâu (N19) 9,87 14,52 71,36 16,80
Chất dẻo, các sản
phẩm làm từ chất
dẻo (N23) 13,05 5,90 41,86 14,28
Sản phẩm hóa
chất khác (N24) -254,92 -304,22 39,53 11,41
Xăng, dầu mỡ
(N35) 74,53 7,83 402,64
-
51,89
Nguồn: Tính toán của tác giả.
Bảng 18 (tiếp): Đóng góp của các thành phần cầu đối với sự gia tăng đầu
ra của các sản phẩm công nghiệp hóa chất, %
Giai đoạn
1996-2000
Giai đoạn
2000-2007
Giai đoạn
1996-2000
Giai đoạn
2000-2007
ISFDE ISIDE ISFDE ISIDE TCE CFE TCE CFE
N18 53,85 -79,82 13,68 6,49 -504,45 -64,24 -1,21 22,67
N19 7,51 80,96 10,33 -5,54 -16,22 7,23 19,02 -12,45
N23 0,80 28,09 24,61 10,72 30,31 26,25 -9,17 19,64
N24 149,02 1746,28 9,57 6,82 -557,17 -519,95 4,16 29,52
N35 -3,60 -12,79 -46,70 -203,06 30,55 5,67 14,35 -31,57
Nguồn: Tính toán của tác giả.
Nhìn chung đóng góp của nhân tố thay thế hệ số kỹ thuật (TCE) của nhóm
ngành này là thấp ở cả hai giai đoạn 1996-2000 và 2000-2007. Riêng các ngành
phân bón, thuốc trừ sâu và xăng dầu mỡ có sự cải tiến đáng kể về vai trò của
nhân tố thay thế hệ số kỹ thuật là nhờ Việt Nam đã đầu tư xây dựng các tổ hợp
khí điện đạm ở phía Nam. Như vậy, việc gia tăng đầu tư của Việt Nam trong
giai đoạn 2000-2007 đã có những đóng góp nhất định cho tiến bộ công nghệ ở
một số ngành.
49
Nhóm các sản phẩm công nghiệp nặng và máy móc thiết bị:
Đây là nhóm chiếm tỉ trọng trong mở rộng sản lượng đầu ra và VA lớn
nhất trong nhóm ngành công nghiệp chế tác. Động lực cho sự mở rộng này tập
trung ở các nhân tố tích lũy vốn, xuất khẩu và thay thế nhập khẩu.
Bảng 19: Đóng góp của các thành phần cầu đối với sự gia tăng đầu ra của
các sản phẩm công nghiệp nặng và máy móc thiết bị, %
Giai đoạn 1996-2000 Giai đoạn 2000-2007
EE CPE EE CPE
Các sản phẩm khác
bằng kim loại (dụng
cụ y tế, thiết bị chính
xác quang học, đồng
hồ các loại, dụng cụ
gia đình, mô tô xe
máy, xe đạp và các
máy móc thông dụng
khác) (N25) 22,98 10,24 -300,04 -72,33
Chế tạo máy (máy
công cụ, máy chuyên
dùng, ô tô các loại và
thiết bị vận tải khác)
(N26) 79,25 4,53 24,38 4,91
Các sản phẩm điện,
điện tử (máy móc
thiết bị điện, máy
móc thiết bị truyền
thanh, truyền hình và
thông tin) (N27) 90,42 -12,67 7,83 17,12
Luyện kim đen và
các sản phẩm bằng
kim loại đen đúc sẵn
(trừ máy móc, thiết
bị) (N28) 29,66 5,71 46,56 6,23
Luyện kim màu và
các sản phẩm bằng
kim loại màu đúc sẵn
(trừ máy móc, thiết 77,61 9,33 36,07 5,72
50
Giai đoạn 1996-2000 Giai đoạn 2000-2007
EE CPE EE CPE
bị) (N29)
Nguồn: Tính toán của tác giả.
Bảng 19 (tiếp): Đóng góp của các thành phần cầu đối với sự gia tăng đầu
ra của các sản phẩm công nghiệp nặng và máy móc thiết bị, %
Giai đoạn
1996-2000
Giai đoạn
2000-2007
Giai đoạn
1996-2000
Giai đoạn
2000-2007
ISFDE ISIDE ISFDE ISIDE TCE CFE TCE CFE
N25 33,91 38,07 232,76 -122,3 6,73 5,09 113,86 227,29
N26 -6,81 -4,98 18,45 0,38 -1,45 27,74 -1,90 53,55
N27 -4,63 -7,04 50,07 10,98 13,07 20,34 -1,56 16,94
N28 7,17 37,48 6,44 -23,46 -5,00 28,34 15,19 46,63
N29 6,69 29,29 3,28 1,00 -34,23 20,05 3,74 51,40
Nguồn: Tính toán của tác giả.
+ Do sản phẩm đầu ra của nhóm ngành này được đưa vào tích lũy nên
nhân tố tích lũy vốn giữ vai trò quan trọng nhất. Tác động của nhân tố này trong
giai đoạn 2000-2007 mạnh hơn nhiều giai đoạn 1996-2000. Điều này là hoàn
toàn phù hợp với thực tế nền kinh tế đã đang duy trì tốc độ tăng tích lũy vốn
khoảng trên 13%/năm.
+ Tác động của nhân tố thay thế nhập khẩu là khá tích cực, đặc biệt là
thay thế nhập khẩu cho tiêu dùng cuối cùng, điển hình là các sản phẩm điện tử
và viễn thông. Các giá trị âm của thay thế nhập khẩu cho tiêu dùng trung gian
trong các ngành thiết bị chính xác và luyện kim đen là do Việt Nam đang phải
nhập khẩu các loại linh kiện có độ phức tạp cao chưa sản xuất được cũng như
nhập khẩu phôi thép cho ngành luyện kim.
+ Trong cơ cấu cầu của nhóm ngành này, nhân tố xuất khẩu chiếm tỉ trọng
tương đối cao. Như vậy, Việt Nam đã có khả năng xuất khẩu một vài sản phẩm
của ngành thâm dụng vốn.
+ Tương tự như các nhóm ngành ở trên, đóng góp của nhân tố thay thế hệ
số kỹ thuật là rất khiêm tốn trong cả hai giai đoạn 1996-2000 và 2000-2007.
2.3. Kết luận
Trong phần này tác giả đã trình bày cơ sở lý thuyết để tính toán ra một số
kỹ thuật phân tích kinh tế cơ bản và kỹ thuật phân rã tăng trưởng áp dụng tính
toán cho 38 ngành công nghiệp chế tác của Việt Nam trên dữ liệu 3 bảng IO do
tổng cục Thống kê đưa ra (Bảng IO 1996, 2000 và 2007). Dựa trên phần lý
51
thuyết đưa ra, tác giả đã xây dựng từng bước tính toán cho ra kết quả để đánh
giá quá trình phát triển nghành công nghiệp chế tác trong tổng thể các ngành
kinh tế của Việt Nam. Một bất cập trong chương này là quá trình tính toán cho
ra kết quả cuối cùng rất lớn và đòi hỏi quá trình tính toán tỷ mỷ mà chưa có
công cụ hỗ trợ cho quá trình trên. Đây chính là tiền đề cho tác giả quyết định
xây dựng chương trình tin học hỗ trợ cho các nhà kinh tế bằng bảng IO.
Hiện tại quá trình tính toán bằng tay (phần mềm hỗ trợ là Excel) đang có
một số hạn chế sau:
1. Quá trình nhóm gộp các ngành từ các bảng IO về số ngành mình cần
nghiên cứu rất vất vả và không thuận tiện cho quá trình làm việc (Nhất là nhóm
gộp thành số ngành bất kỳ theo hướng nghiên cứu).
2. Đòi hỏi các bước tính toán lớn, rất mất thời gian và công sức, đặc biệt
có thể nhầm lẫn cao trong quá trình tính toán kết quả phân tích.
Trong chương tiếp theo, luận văn sẽ vận dụng các phương pháp tính ở
phần trên để xây dựng chương trình Đánh giá hiệu quả các ngành kinh tế Việt
Nam bằng các bảng IO.
52
CHƯƠNG III: XÂY DỰNG CHƯƠNG TRÌNH ĐÁNH GIÁ HIỆU QUẢ
CÁC NGÀNH KINH TẾ VIỆT NAM BẰNG MÔ HÌNH IO
Các nội dung của Chương I và Chương II đã cung cấp những khái niệm
cơ bản về mô hình IO, những kỹ thuật phân tích trên bảng IO và ứng dụng cho
phân tích trong 38 ngành công nghiệp chế tác của Việt Nam. Trong chương này
tác giả sẽ trình bầy việc xây dựng chương trình tin học nhằm tự động hóa quá
trình tính toán của các nhà phân tích kinh tế bằng mô hình IO.
3.1. Xác định bài toán
Hiện tại các nhà phân tích kinh tế bằng mô hình IO chưa có công cụ hỗ
trợ cho phân tích các ngành kinh tế, các nhà phân tích muốn phân tích đánh giá
một số ngành trong tổng thể nền kinh tế đều phải làm bằng tay, phần mềm hỗ trợ
cho quá trình tính toán chỉ là phần mềm Excel dẫn đến một số hạn chế sau:
- Quá trình nhóm gộp các ngành từ các bảng IO về số ngành cần nghiên cứu
rất vất vả và không thuận tiện cho quá trình làm việc (Nhất là nhóm gộp thành
số ngành bất kỳ theo hướng nghiên cứu).
- Đòi hỏi các bước tính toán lớn, rất mất thời gian và công sức, đặc biệt có
thể nhầm lẫn cao trong quá trình tính toán kết quả phân tích.
Từ những nhu cầu bức thiết trên cần phải xây dựng một chương trình tin
học giúp tự động hóa quá trình phân tích, quá trình nhóm gộp các ngành
3.2. Phân tích bài toán
Chương trình tin học phải đáp ứng được các yêu cầu sau:
o Xây dựng chương trình cho phép quá trình nhóm gộp các ngành từ các
bảng IO về số ngành bất kỳ.
o Xây dựng được các phương pháp phân tích cơ bản dựa vào dữ liệu đầu
vào là các bảng IO.
o Xây dựng phương pháp kỹ thuật phân rã tăng trưởng. Đây là một trong
những kỹ thuật rất phức tạp đòi hỏi quá trình tính toán công phu và
mất thời gian.
o Một số tính năng hỗ trợ (Cho phép đưa giữ liệu từ Excel vào hệ thống,
sau khi phân tích ra kết quả thì xuất ra Excel …).
3.3. Mô hình nghiệp vụ của hệ thống
Một số ký pháp được sử dụng trong mô hình nghiệp vụ:
53
Ký hiệu Giải thích
Tên hệ thống, hoặc tên tiến trình (Hay còn gọi là chức
năng): được biểu diễn bởi một oval trên có chỉ số, bên
dứơi là tên của chức năng đó.
Tên tác nhân:tác nhân được vẽ bằng một hình chữ nhật,
bên trong có tên tác nhân.
Các luồng dữ liệu: được vẽ trong dưới dạng một mũi tên,
trên đó có viết tên của luồng dữ liệu.
Các kho dữ liệu: được vẽ trong một dưới dạng 2 đoạn
thẳng nằm ngang, kẹp giữa tên của kho dữ liệu.
Kho dữ liệu (data store) Một kho dữ liệu (đơn hay có cấu trúc) được lưu
lại, để có thể được truy nhập nhiều lần về sau.
Tên của kho dữ liệu phải là một danh từ, kèm theo tính ngữ nếu cần, cho
phép hiểu một cách vắn tắt nội dung của dữ liệu được lưu giữ.
Luồng dữ liệu là một tuyến truyền dẫn thông tin vào hay ra một chức
năng nào đó.
Tên luồng dữ liệu phải là một danh từ, kèm thêm tính ngữ nếu cần, cho
phép hiểu vắn tắt nội dung của dữ liệu được chuyển giao.
Tiến trình (process) là một quá trình biến đổi dữ liệu (thay đổi giá trị,
cấu trúc, vị trí của một dữ liệu, hoặc từ một số dữ liệu đã cho, tạo ra một
dữ liệu mới).
Tên tiến trình (chức năng) phải là một động từ, có thêm bổ ngữ nếu cần,
cho phép hiểu một cách vắn tắt chức năng (tiến trình) làm gì.
Tác nhân (actor: Một đối tác) (còn gọi là tác nhân ngoài, hay điểm mút)
là một thực thể ngoài hệ thống, có trao đổi thông tin với hệ thống.
Tên đối tác phải là một danh từ, cho phép hiểu vắn tắt đối tác là ai, hoặc
là gì (người, tổ chức, thiết bị, tệp, v.v..).
3.3.1. Các chức năng nghiệp vụ
3.3.1.1. Chức năng nhập, sửa đổi bảng IO
Chức năng này cho phép người dùng có thể nhập hoặc sửa đổi tên các
bảng IO, các ngành và dữ liệu ngành của bảng. Bảng IO có thể do Tổng cục
thống kê điều tra, xây dựng hoặc bảng IO do người dùng tạo ra để phân tích,
54
đánh giá các ngành theo tiêu chí riêng của người sử dụng. Chức năng này mục
đích đưa các bảng IO và dữ liệu bảng IO vào trong cơ sở dữ liệu để lưu trữ phục
vụ cho mục đích sử dụng lâu dài. Chức năng này phải hỗ trợ cho người sử dụng
2 nhiệm vụ sau:
Cho phép nhập, sửa đổi bảng IO, các ngành và dữ liệu các ngành của
bảng IO bằng tay.
Cho phép đưa các ngành, dữ liệu ngành từ bảng Excel vào hệ thống.
Giúp cho quá trình nhập liệu được nhanh chóng, chính xác và hiệu
quả.
3.3.1.2. Chức năng tìm kiếm bảng IO
Chức năng này cho phép người dùng có thể tìm kiếm các bảng IO có
trong hệ thống một cách nhanh chóng theo các tiêu chí:
Đưa ra tất cả các bảng IO?
Đưa ra các bảng IO có tên tìm kiếm?
Đưa ra các bảng IO theo năm công bố?
Đưa ra các bảng IO do tổng cục thống kê đưa ra hay không?
3.3.1.3. Chức năng xóa bảng IO
Chức năng này cho phép người dùng có thể xóa các bảng IO trong hệ
thống.
3.3.1.4. Chức năng nhóm gộp các ngành
Chức năng này cho phép người dùng có thể nhóm góp các ngành về
ngành cần nghiên cứu một cách nhanh chóng hiệu quả. Hỗ trợ cho người sử
dụng có thể lựa chọn một hoặc nhiều ngành trong bảng IO để gộp thành 1
ngành. Các ngành khi lựa chọn sẽ có chú thích mô tả các ngành để tiện cho quá
trình hình dung về các ngành gộp. Chức năng gộp ngành sẽ có nhiệm vụ sau:
Lấy thông tin các ngành của bảng IO lựa chọn để gộp hiện thị lên màn
hình để người sử dụng nhóm gộp.
Sau khi lựa chọn xong tiến hành quá trình tự động tính toán để gộp các
ngành lựa chọn về ngành cần nghiên cứu.
3.3.1.5. Chức năng các kỹ thuật phân tích
Chức năng này hỗ trợ người dùng các kỹ thuật phân tích giảm bớt gánh
nặng tính toán. Quá trình phân tích tự động đưa đầu vào là các bảng IO sẽ cho
kết quả phân tích theo các kỹ thuật phân tích được tác giả xây dựng. Bao gồm
các kỹ thuật phân tích sau:
Kỹ thuật tính tỷ lệ VA/GO
55
Kỹ thuật các tỷ lệ thành phần của VA
Kỹ thuật đo lường đóng góp của nhân tố lao động vào giá trị gia tăng
(VA) của ngành
Kỹ thuật tỉ trọng đóng góp của các ngành vào giá trị gia tăng (VA)
Kỹ thuật ma trận hệ số kỹ thuật A(ij)
Kỹ thuật tỉ lệ chi phí trung gian của ngành
Ma trận Leontief
o Hệ số nhân tử đầu ra - Output Multiplier
o Hệ số nhân tử đầu vào - Input Multiplier
Kỹ thuật phân rã tăng trưởng
3.3.2. Sơ đồ ngữ cảnh của hệ thống
Hình 3.1. Sơ đồ ngữ cảnh của hệ thống
Nhập bảng IO gộp cần phân tích
Người
dùng
0
Hệ thống
đánh giá hiệu
quả các ngành
KTVN
Kết quả tìm kiếm
Nhóm gộp các ngành
Thông tin tìm kiếm
Kết quả phân tích
Kết quả nhóm gộp
Tổng
cục
thống
kê
Dữ liệu
bảng IO
chuẩn
Các kỹ thuật phân tích
56
3.3.3. Mô hình hóa quá trình xử lý
Hình 3.2. Mô hình hóa quá trình xử lý
1.0
Nhập bảng IO
2.0
Tìm kiếm bảng IO
Bảng IO
Bảng dữ liệu
Bảng ngành
Người dùng
Nhập bảng IO
Người dùng
Tìm kiếm
bảng IO
Người dùng
Lựa chọn kỹ
thuật phân tích
3.0
Các kỹ thuật phân
tích bảng IO
Kết quả
tìm kiếm
57
3.4. Mô hình kiến trúc hệ thống
Hình 3.3. Mô hình kiến trúc hệ thống
3.4. Xây dựng chương trình
3.4.1. Xây dựng các hàm cho hệ thống
Để xây dựng chương trình tác giả đã tiến hành xây dựng các hàm, các
module xử lý các quá trình tính toán của hệ thống:
Truy nhập hệ thống
Thực đơn chính
Hệ thống Thanh công cụ Trợ giúp
Nhập bảng IO Toolbar
Statusbar
Hướng dẫn
Tác giả Tìm kiếm IO
Các kỹ thuật
phân tích
Thoát
Tỷ lệ VA/GO
Các tỷ lệ thành phần VA
Đo lường đóng gớp nhân tố ld VA
Tỷ lệ đóng góp các ngành vào VA
Ma trận hệ số kỹ thuật
Tỷ lệ chi phí trung gian của ngành
Ma trận Leontief
Các phân tích từ ma trận Leontief
Kỹ thuật phân rã tăng trưởng
58
Các hàm sử dụng chung lặp lại trong nhiều bước tính toán trung gian như
cộng, trừ, nhân và nghịch đảo ma trận (Chi tiết code các hàm này được
trình bày trong PHỤ LỤC của luận văn).
o Hàm nhân hai ma trận: Hàm này dùng để tính tích 2 ma trận với
nhau. Đầu vào và đầu ra của hàm được mô tả bởi bảng sau:
Đầu vào
Biến đầu vào Kiểu dữ liệu Mô tả
A[,] Double Mảng ma trận 2 chiều để lưu dữ liệu giá trị xij
giá trị hàng i, cột j trong ma trận bảng IO hoặc
bước trung gian quá trình tính toán của bảng IO.
colA Int Số cột ma trận A
rowA Int Số dòng của ma trận A
B[,] Double Mảng ma trận 2 chiều để lưu dữ liệu giá trị xij
giá trị hàng i, cột j trong ma trận bảng IO hoặc
bước trung gian quá trình tính toán của bảng IO.
colB Int Số cột ma trận B
rowB Int Số dòng của ma trận B
Đầu ra
Biến đầu ra Kiểu dữ liệu Mô tả
C[,] Double Mảng ma trận 2 chiều kết quả của phép nhân 2
ma trận A và B.
o Hàm hiệu hai ma trận: Hàm này dùng để tính hiệu 2 ma trận với
nhau. Đầu vào và đầu ra của hàm được mô tả bởi bảng sau:
Đầu vào
Biến đầu vào Kiểu dữ liệu Mô tả
A[,] Double Mảng ma trận 2 chiều để lưu dữ liệu giá trị xij
giá trị hàng i, cột j trong ma trận bảng IO hoặc
bước trung gian quá trình tính toán của bảng IO.
colA Int Số cột ma trận A
59
rowA Int Số dòng của ma trận A
B[,] Double Mảng ma trận 2 chiều để lưu dữ liệu giá trị xij
giá trị hàng i, cột j trong ma trận bảng IO hoặc
bước trung gian quá trình tính toán của bảng IO.
colB Int Số cột ma trận B
rowB Int Số dòng của ma trận B
Đầu ra
Biến đầu ra Kiểu dữ liệu Mô tả
C[,] Double Mảng ma trận 2 chiều kết quả của phép trừ 2 ma
trận A và B.
o Hàm tổng hai ma trận: Hàm này dùng để tính tổng 2 ma trận với
nhau. Đầu vào và đầu ra của hàm được mô tả bởi bảng sau:
Đầu vào
Biến đầu vào Kiểu dữ liệu Mô tả
A[,] Double Mảng ma trận 2 chiều để lưu dữ liệu giá trị xij
giá trị hàng i, cột j trong ma trận bảng IO hoặc
bước trung gian quá trình tính toán của bảng IO.
colA Int Số cột ma trận A
rowA Int Số dòng của ma trận A
B[,] Double Mảng ma trận 2 chiều để lưu dữ liệu giá trị xij
giá trị hàng i, cột j trong ma trận bảng IO hoặc
bước trung gian quá trình tính toán của bảng IO.
colB Int Số cột ma trận B
rowB Int Số dòng của ma trận B
Đầu ra
Biến đầu ra Kiểu dữ liệu Mô tả
C[,] Double Mảng ma trận 2 chiều kết quả của phép cộng 2
ma trận A và B.
60
o Hàm nghịch đảo ma trận: Hàm này dùng để tính nghịch đảo của
một ma trận. Đầu vào và đầu ra của hàm được mô tả bởi bảng sau:
Đầu vào
Biến đầu vào Kiểu dữ liệu Mô tả
A[,] Double Mảng ma trận 2 chiều để lưu dữ liệu giá trị xij
giá trị hàng i, cột j trong ma trận bảng IO hoặc
bước trung gian quá trình tính toán của bảng IO.
colA Int Số cột ma trận A
rowA Int Số dòng của ma trận A
Đầu ra
Biến đầu ra Kiểu dữ liệu Mô tả
C[,] Double Mảng ma trận 2 chiều kết quả của phép nghịch
đảo ma trận A.
Các hàm sử dụng cho các module chương trình (Chi tiết code một số hàm
cho module trong PHỤ LỤC của luận văn).
o Hàm tính tỷ lệ VA/GO: Hàm này dùng để tính tỷ lệ VA chia cho
GO của bảng IO. Đầu vào và đầu ra của hàm được mô tả bởi bảng
sau:
Đầu vào
Biến đầu vào Kiểu dữ liệu Mô tả
IO_ID Int Khóa chính của bảng IO cần tính tỷ lệ VA/GO.
Đầu ra
Biến đầu ra Kiểu dữ liệu Mô tả
A[] Double Mảng ma trận 1 chiều A[n] trong đó n là số
ngành của bảng IO là kết quả của phép tính tỷ lệ
VA/GO theo từng ngành.
o Hàm các tỷ lệ thành phần của VA: Hàm này dùng để tính tỷ lệ các
tỷ lệ VA của bảng IO. Đầu vào và đầu ra của hàm được mô tả bởi
bảng sau:
61
Đầu vào
Biến đầu vào Kiểu dữ liệu Mô tả
IO_ID Int Khóa chính của bảng IO cần tính tỷ lệ các thành
phần VA.
Đầu ra
Biến đầu ra Kiểu dữ liệu Mô tả
A[,] Double Mảng ma trận 2 chiều A[5,n] trong đó n là số
ngành của bảng IO là kết quả của phép tính tỷ lệ
thành phần VA theo từng ngành.
o Hàm đo lường đóng góp của nhân tố lao động vào giá trị gia tăng
(VA) của ngành: Hàm này dùng để tính tỷ lệ đóng góp nhân tố lao
động vào giá trị ngành của bảng IO. Đầu vào và đầu ra của hàm
được mô tả bởi bảng sau:
Đầu vào
Biến đầu vào Kiểu dữ liệu Mô tả
IO_ID Int Khóa chính của bảng IO cần tính tỷ lệ đóng góp
nhân tố lao động.
Đầu ra
Biến đầu ra Kiểu dữ liệu Mô tả
A[] Double Mảng ma trận 1 chiều A[n] trong đó n là số
ngành của bảng IO là kết quả của phép tính tỷ lệ
thành phần VA theo từng ngành.
o Hàm tỉ trọng đóng góp của các ngành vào giá trị gia tăng (VA):
Hàm này dùng để tính tỷ lệ đóng góp ngành vào VA của bảng IO.
Đầu vào và đầu ra của hàm được mô tả bởi bảng sau:
Đầu vào
Biến đầu vào Kiểu dữ liệu Mô tả
IO_ID Int Khóa chính của bảng IO cần tỷ trọng đóng góp
ngành vào VA.
62
Đầu ra
Biến đầu ra Kiểu dữ liệu Mô tả
A[] Double Mảng ma trận 1 chiều A[n] trong đó n là số
ngành của bảng IO là kết quả của phép tính tỷ
trọng đóng góp ngành vào VA.
o Hàm ma trận hệ số kỹ thuật A(ij): Hàm này dùng để tính ma trận
Aij ma trận hệ số kỹ thuật của bảng IO. Đầu vào và đầu ra của hàm
được mô tả bởi bảng sau:
Đầu vào
Biến đầu vào Kiểu dữ liệu Mô tả
IO_ID Int Khóa chính của bảng IO cần tính ma trận Aij
Đầu ra
Biến đầu ra Kiểu dữ liệu Mô tả
A[,] Double Mảng ma trận 2 chiều A[n,n] trong đó n là số
ngành của bảng IO là kết quả của phép tính tỷ lệ
giá trị ngành cho giá trị sản xuất (GO).
o Hàm tỉ lệ chi phí trung gian của ngành: Hàm này dùng để tính tỷ lệ
chi phí trung gian ngành của bảng IO. Đầu vào và đầu ra của hàm
được mô tả bởi bảng sau:
Đầu vào
Biến đầu vào Kiểu dữ liệu Mô tả
IO_ID Int Khóa chính của bảng IO cần tính tỷ lệ chi phí
trung gian của ngành.
Đầu ra
Biến đầu ra Kiểu dữ liệu Mô tả
A[,] Double Mảng ma trận 2 chiều A[n,n] trong đó n là số
ngành của bảng IO là kết quả của phép tính tỷ lệ
chi phí trung gian từng ngành của bảng IO.
63
o Hàm ma trận Leontief: Hàm này dùng để tính ma trận Leontief
(I-A)-1 của bảng IO. Đầu vào và đầu ra của hàm được mô tả bởi
bảng sau:
Đầu vào
Biến đầu vào Kiểu dữ liệu Mô tả
IO_ID Int Khóa chính của bảng IO cần tính ma trận
Leontief
Đầu ra
Biến đầu ra Kiểu dữ liệu Mô tả
A[,] Double Mảng ma trận 2 chiều A[n,n] trong đó n là số
ngành của bảng IO là kết quả của phép tính ma
trận Leontief.
o Hàm hệ số nhân tử đầu ra - Output Multiplier: Hàm này dùng để
tính nhân tử đầu ra của bảng IO. Đầu vào và đầu ra của hàm được
mô tả bởi bảng sau:
Đầu vào
Biến đầu vào Kiểu dữ liệu Mô tả
IO_ID Int Khóa chính của bảng IO hệ số nhân tử đầu ra
Đầu ra
Biến đầu ra Kiểu dữ liệu Mô tả
A[] Double Mảng ma trận 1 chiều A[n] trong đó n là số
ngành của bảng IO là kết quả của phép nhân tử
đầu ra từ ma trận (I-A)-1
o Hàm hệ số nhân tử đầu vào - Input Multiplier: Hàm này dùng để
tính nhân tử đầu vào của bảng IO. Đầu vào và đầu ra của hàm được
mô tả bởi bảng sau:
Đầu vào
Biến đầu vào Kiểu dữ liệu Mô tả
IO_ID Int Khóa chính của bảng IO hệ số nhân tử đầu vào
64
Đầu ra
Biến đầu ra Kiểu dữ liệu Mô tả
A[] Double Mảng ma trận 1 chiều A[n] trong đó n là số
ngành của bảng IO là kết quả của phép tính nhân
tử đầu vào từ ma trận (I-A)-1
Các module của chương trình.
o Module đưa dữ liệu từ Excel vào hệ thống
o Module đưa dữ liệu phân tích từ hệ thống ra Excel
o Module nhóm gộp các ngành
o Module kỹ thuật phân tích cơ bản. Bao gồm các module sau:
Module tính tỷ lệ VA/GO
Module các tỷ lệ thành phần của VA
Module đo lường đóng góp của nhân tố lao động vào giá trị
gia tăng (VA) của ngành
Module tỉ trọng đóng góp của các ngành vào giá trị gia tăng
(VA)
Module ma trận hệ số kỹ thuật A(ij)
Module tỉ lệ chi phí trung gian của ngành
Module ma trận Leontief
Module hệ số nhân tử đầu ra - Output Multiplier
Module hệ số nhân tử đầu vào - Input Multiplier
o Module kỹ thuật phân rã tăng trưởng
3.4.2. Xây dựng các màn hình chức năng cho hệ thống
Từ những hàm, module chính ở phần trên ta tiến hành xây dựng chương
trình để đáp ứng được các yêu cầu trong phần lý thuyết chương I và chương II.
- Xây dựng màn hình cho phép nhập bảng IO.
- Xây dựng màn hình tìm kiếm bảng IO.
- Xây dựng màn hình cho phép nhóm gộp các ngành trong bảng IO về
số ngành nghiên cứu.
65
- Xây dựng màn hình các kỹ thuật phân tích (hiện luận văn đã trình bày
8 kỹ thuật phân tích cơ bản và một kỹ thuật phân tích nâng cao).
- Xây dựng màn hình cho phép hỗ trợ đưa dữ liệu từ Excel vào hệ thống
để tiến hành phân tích.
3.5. Môi trường thử nghiệm
Phần mềm thử nghiệm được xây dựng trên môi trường Microsoft Visual
Studio 2008, hệ điều hành Windows XP hoặc Windows Vistar.
Ngôn ngữ lập trình: C#.net.
Hệ quản trị Cơ sở dữ liệu Microsoft SQL Server 2005.
3.6. Cài đặt chương trình
Copy phần mềm Hệ thống đánh giá hiệu quả các ngành kinh tế vào thư
mục IOProject trong ổ D.
Chạy file D:\IOProject\setup.exe để cài đặt chương trình.
3.7. Dữ liệu đầu vào của hệ thống
Đầu vào cho chương trình chính là các bảng IO do cục thống kê đưa ra.
Hiện giờ tổng cục thống kê đưa ra 4 bảng IO đã có kết quả điều tra là:
- Bảng IO 1996: là bảng IO lần thứ 2 được xây dựng vào năm 1996 với
kích cỡ 97 x 97 ngành sản phẩm với kinh phí của Nhà nước và một phần của
Ngân hàng phát triển Châu Á (ADB).
- Bảng IO 2000: là Bảng IO thứ 3 được xây dựng vào năm 2000 với kích
cỡ 112 x 112 ngành sản phẩm.
- Bảng IO 2007: là bảng IO thứ 4 được xây dựng năm 2007 với kích cỡ
138 x 138 ngành sản phẩm.
Kết quả: Sau khi đưa dữ liệu đầu vào chúng ta tiến hành nhóm gộp các
ngành trong các bảng IO về 38 ngành công nghiệp chế tác như mục 2.2.1.1 sử
dụng các kỹ thuật phân tích cơ bản và kỹ thuật phân rã tăng trưởng cho kết quả
đúng và chính xác như quá trình thực hiện trên Excel một cách nhanh chóng và
thuận tiện.
3.8. Một số giao diện thực hiện chương trình
Giao diện đăng nhập hệ thống
Khi chạy chương trình sẽ hiện thị màn hình đăng nhập hệ thống để nhập
user/pass vào hệ thống.
66
Hình 3.4. Giao diện đăng nhập hệ thống
Giao diện chính của chương trình
Sau khi đăng nhập thành công giao diện chính của chương trình sẽ hiện
thị ra như sau:
Hình 3.5. Giao diện chính của chương trình
Giao diện nhập bảng IO
- Nhập bằng tay
67
Hình 3.6. Giao diện nhập bảng IO
- Import file từ excel
Hình 3.7. Giao diện nhập để cho phép Import từ Excel
68
Hình 3.8. Giao diện Import Ngành và DL ngành từ Excel
Giao diện tìm kiếm bảng IO
Hình 3.9. Giao diện tìm kiếm bảng IO
Giao diện thông tin bảng IO
69
Hình 3.10. Giao diện thông tin bảng IO
Giao diện gộp ngành
Hình 3.11. Giao diện gộp ngành
70
Giao diện nhập giá trị các ngành (gộp các giá trị các ngành)
Hình 3.12. Giao diện nhập hoặc gộp giá trị ngành
Giao diện các kỹ thuật phân tích
Hình 3.13. Giao diện các kỹ thuật phân tích
71
Hình 3.14 Giao diện kết quả phân tích
Giao diện kỹ thuật phân rã tăng trưởng
Hình 3.15 Giao diện kỹ thuật phân rã tăng trưởng
3.9. Kết luận
Trong chương này tác giả đã trình bày cách xây dựng chương trình tin học
để tính toán ra một số kỹ thuật phân tích kinh tế cơ bản và kỹ thuật phân rã tăng
trưởng áp dụng tính toán cho 38 ngành công nghiệp chế tác của Việt Nam trên
72
dữ liệu 3 bảng IO do tổng cục Thống kê đưa ra (Bảng IO 1996, 2000 và 2007).
Dựa trên phần lý thuyết chương I và chương II đưa ra, tác giả đã xây dựng phần
mềm tính toán cho ra kết quả để đánh giá quá trình phát triển nghành công
nghiệp chế tác trong tổng thể các ngành kinh tế của Việt Nam.
Tác giả đã xây dựng thành công chương trình đánh giá hiệu quả các ngành
kinh tế Việt Nam bằng mô hình IO. Chương trình đã đáp ứng được các yêu cầu
sau:
Quá trình nhóm gộp các ngành từ các bảng IO về số ngành bất kỳ rất
nhanh chóng và thuận tiện.
Xây dựng được các phương pháp phân tích cơ bản dựa vào dữ liệu đầu
vào là các bảng IO trước khi đi vào những kỹ thuật phức tạp.
Lập trình kỹ thuật phân rã tăng trưởng đây là một trong những kỹ thuật rất
phức tạp đòi hỏi quá trình tính toán công phu và mất thời gian.
Tự động hóa quá trình làm bằng Excel bằng phần mềm lập trình.
73
KẾT LUẬN
Mô hình IO (Input-Output), là một trong các mô hình toán học được sử
dụng để phân tích và dự báo kinh tế. So với các mô hình kinh tế lượng khác, mô
hình IO phản ánh được mối quan hệ giữa các ngành kinh tế. Vì vậy mô hình này
IO đang ngày càng được ứng dụng rộng rãi trong phân tích và dự báo kinh tế ở
nhiều nước trên thế giới trong đó có Việt Nam.
Trên cơ sở tìm hiểu về mô hình IO và ứng dụng mô hình này trong việc
phân tích và đánh giá hiệu quả của các ngành Công nghiệp chế tác, tác giả đã đề
xuất và xây dựng thành công chương trình tin học giúp tự động hoá quá trình
phân tích và đánh giá hiệu quả của các ngành Công nghiệp chế tác bằng ứng
dụng mô hình IO. Chương trình tin học này không chỉ giúp các nhà kinh tế học
giảm bớt được thời gian tính toán, nâng cao độ chính xác của kết quả phân tích;
đưa ra được các kỹ thuật phân tích cơ bản hoặc nâng cao trong phân tích và đánh
giá hiệu quả của các ngành công nghiệp chế tác mà còn có thể ứng dụng chương
trình này khi tiến hành phân tích, đánh giá hiệu quả của các ngành khác trong
nền kinh tế quốc dân.
1. Những kết quả chính đạt được của luận văn
Luận văn đã đạt được một số kết quả chính như sau:
Tìm hiểu về mô hình IO, các bảng IO và việc ứng dụng mô hình IO trong
phân tích và dự báo kinh tế.
Thu thập dữ liệu về các bảng IO của nền kinh tế của Việt Nam phục vụ
cho việc đánh giá hiệu quả các ngành kinh tế, và phân tích xu hướng phát triển
cũng như xác định được những tồn tại của các ngành này.
Đã đề xuất và xây dựng chương trình tin học hỗ trợ hoạt động phân tích
và dự báo kinh tế dựa vào mô hình IO. Chương trình tin học này được phát triển
trong môi trường Microsoft Visual Studio 2008, hệ điều hành Windows XP, hệ
quản trị Cơ sở dữ liệu Microsoft SQL Server 2005, ngôn ngữ lập trình: C#.net.
2. Hướng nghiên cứu, mở rộng
Tiếp tục hoàn thiện chương trình trên cơ sở mở rộng, phát triển thêm một
số kỹ thuật phân tích kinh tế khác dựa vào ứng dụng mô hình IO.
74
TÀI LIỆU KHAM KHẢO
Tiếng Việt
[1]. Nguyễn Khắc Minh, Nguyễn Việt Hùng và Nguyễn thị Cẩm Vân (2006),
“Thay đổi cơ cấu kinh tế theo thời gian tiếp cận từ phí cầu và cung”, Nhà xuất
bản Thống kê.
[2]. Bùi Bá Cường, Bùi Trinh và Dương mạnh Hùng (2004), "Phương pháp
phân tích kinh tế và môi trường thông qua mô hình Input-Output”, Nhà xuất bản
Thống kê.
[3]. Bộ Công Thương (2007), "Chiến lược tổng thể và chính sách bảo hộ sản
xuất công nghiệp trong nước phù hợp các cam kết quốc tế, quy định của WTO
giai đoạn đến 2020”, Thư viện Trung tâm Thông tin và Dự báo kinh tế - xã hội
quốc gia, Hà Nội.
[4]. Bùi Tất Thắng (2006), "Chuyển dịch cơ cấu ngành kinh tế ở Việt Nam”,
Nhà xuất bản Khoa học - Xã hội.
[5]. PGS.TS. Nguyễn Quang Đông, Ngô Quang Thứ, Hoàng Đình Tuấn (2006),
"Giáo trình mô hình toán kinh tế", Nhà xuất bản Thống kê.
Tiếng Anh
[6]. Erick Dietzen Bacher and Michael Lahr (2001) "Wassily Leontief and I-O
Ecomomics" Cambridge University Press.
[7]. Miller, Ronald E. and Peter D. Blair (2009) "Input-Output Analysis:
Foundations and Extensions", 2nd edition. Cambridge University Press.
[8]. Lahr, Michael L. and Erik Dietzenbacher (2001). "Input-Output Analysis:
Frontiers and Extensions." Palgrave.
[9]. Thijs Ten Raa (2005) "The Economics of Input-Output Analysis" Cambridge
University Press.
[10].
[11].
[12].
[13].
75
PHỤ LỤC
Hàm tính tích 2 ma trận:
public static void Tich2MaTran(double[,] A, int colA, int rowA, double[,] B, int
colB, int rowB, ref double[,] C)
{
// Kiem tra so hang so cot 2 ma tran co bang nhau khong?
if (colA != rowB)
{
MessageBox.Show("Hai ma trận không thỏa mãn điều kiện tính tích 2
ma trận.", "Thông báo", MessageBoxButtons.OK,
MessageBoxIcon.Exclamation);
return;
}
// Tinh tich 2 ma tran
for (int i = 0; i < rowA; i++)
{
for (int j = 0; j < colB; j++)
{
C[i,j] = 0;
for (int k = 0; k < colA; k++)
{
C[i, j] += A[i, k] * B[k, j];
}
C[i, j] = Math.Round(C[i, j], 5);
}
}
}
Hàm tính hiệu 2 ma trận:
public static void Hieu2MaTran(double[,] A, int colA, int rowA, double[,] B, int
colB, int rowB, ref double[,] C)
{
// Kiem tra so hang so cot 2 ma tran co bang nhau khong?
if (colA != colB)
{
MessageBox.Show("Hai ma trận không có số cột bằng nhau.", "Thông
báo", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
return;
}
76
if (rowA != rowB)
{
MessageBox.Show("Hai ma trận không có số hàng bằng nhau.",
"Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
return;
}
// Tinh hieu 2 ma tran
for (int i = 0; i < colA; i++)
{
for (int j = 0; j < colB; j++)
{
C[i, j] = Math.Round((A[i, j] - B[i, j]),5);
}
}
}
Hàm tính tổng 2 ma trận:
public static void Tong2MaTran(double [,] A, int colA, int rowA, double [,] B,
int colB, int rowB, ref double[,] C)
{
// Kiem tra so hang so cot 2 ma tran co bang nhau khong?
if ( colA != colB)
{
MessageBox.Show("Hai ma trận không có số cột bằng nhau.", "Thông
báo", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
return;
}
if ( rowA != rowB)
{
MessageBox.Show("Hai ma trận không có số hàng bằng nhau.",
"Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
return;
}
// Tinh tong 2 ma tran
for (int i = 0; i < colA; i++)
{
for (int j = 0; j < colB; j++)
{
77
C[i, j] = Math.Round((A[i, j] + B[i, j]),5);
}
}
}
Hàm tính nghịch đảo của ma trận:
public static bool MaTranNghichDao(double[,] A, int n, ref double[,] C)
{
bool t, t1;
int i = 0;
int j = 0;
int k = 0;
double c;
for (i = 0; i < n; i++)
{
for (j = n; j < (2 * n); j++)
{
if (j == (i + n))
A[i, j] = 1;
else
A[i, j] = 0;
}
//j = j - 1;
}
i = 0;
t1 = true;
while ((t1 == true) && (i < n))
{
if (A[i, i] == 0)
{
t = true;
k = i + 1;
while ((t == true) && (k < n))
{
if (A[k, i] != 0)
{
for (j = 0; j < (2 * n); j++)
{
78
c = A[i, j];
A[i, j] = A[k, j];
A[k, j] = c;
}
t = false;
//j = j - 1;
}
else
k = k + 1;
}
if (k == n)
{
if (A[i, k - 1] == 0)
{
MessageBox.Show("Ma trận suy biến.", "Thông báo",
MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
t1 = false;
return t1;
}
}
}
if (A[i, i] != 0)
{
c = A[i, i];
for (j = i; j < (2 * n); j++)
{
A[i, j] = Math.Round((A[i, j] / c), 5);
}
//j = j - 1;
}
for (k = 0; k < n; k++)
{
if (k != i)
{
c = A[k, i];
for (j = i; j < (2 * n); j++)
{
79
A[k, j] = Math.Round((A[k, j] - (A[i, j] * c)), 5);
}
//j = j - 1;
}
}
i = i + 1;
}
int m;
for (i = 0; i < n; i++)
{
m = 0;
for (j = n; j < (2 * n); j++)
{
C[i, m] = A[i, j];
m++;
}
}
return t1;
}
}
Hàm tính tỷ lệ VA/GO:
public static void VA_GO(ref DataGridView grdData, DataGridView
grdDataIO)
{
if (grdDataIO.Rows.Count > 0)
{
if (grdData.Rows.Count > 0)
{
double[] arrValue = new double[grdDataIO.Columns.Count - 8];
double _VA = 0;
double _GO = 0;
for (int i = 0; i < grdDataIO.Columns.Count - 8; i++)
{
if (grdDataIO.Rows[grdDataIO.Rows.Count - 2].Cells[i].Value
!= null)
{
try
80
{
_VA =
Convert.ToDouble(grdDataIO.Rows[grdDataIO.Rows.Count -
2].Cells[i].Value.ToString());
}
catch { }
}
if (grdDataIO.Rows[grdDataIO.Rows.Count - 1].Cells[i].Value
!= null)
{
try
{
_GO =
Convert.ToDouble(grdDataIO.Rows[grdDataIO.Rows.Count -
1].Cells[i].Value.ToString());
}
catch { }
}
if (_GO != 0)
arrValue[i] = Math.Round((_VA / _GO), 5);
else
arrValue[i] = 0;
}
for (int i = 0; i < grdData.Columns.Count; i++)
{
grdData.Rows[0].Cells[i].Value = arrValue[i].ToString();
}
}
}
}
Hàm tính các tỷ lệ thành phần VA:
public static void CacTyLeVA(ref DataGridView grdData, DataGridView
grdDataIO)
{
if (grdDataIO.Rows.Count > 0)
{
if (grdData.Rows.Count > 0)
81
{
double[,] arrValue = new double[5, grdDataIO.Columns.Count - 8];
double _Value = 0;
double _GO = 0;
double a = 0, b = 0;
for (int i = 0; i < 5; i++)
{
for (int j = 0; j < grdDataIO.Columns.Count - 8; j++)
{
_Value = 0;
_GO = 0;
if (grdDataIO.Rows[grdDataIO.Rows.Count - 1].Cells[j].Value
!= null)
{
try
{
_GO =
Convert.ToDouble(grdDataIO.Rows[grdDataIO.Rows.Count -
1].Cells[j].Value.ToString());
}
catch { }
}
if (i < 4)
{
try
{
_Value =
Convert.ToDouble(grdDataIO.Rows[grdDataIO.Rows.Count - (6 -
i)].Cells[j].Value.ToString());
}
catch{}
if (_GO != 0)
{
arrValue[i, j] = Math.Round(_Value / _GO, 5);
}
}
82
else
{
a = 0;
b = 0;
try
{
a =
Convert.ToDouble(grdDataIO.Rows[grdDataIO.Rows.Count -
2].Cells[j].Value.ToString());
}
catch { }
try
{
b =
Convert.ToDouble(grdDataIO.Rows[grdDataIO.Rows.Count -
4].Cells[j].Value.ToString());
}
catch { }
if (_GO != 0)
{
arrValue[i, j] = Math.Round((a + b) / _GO, 5);
}
}
}
}
for (int i = 0; i < grdData.Rows.Count; i++)
{
for (int j = 0; j < grdData.Columns.Count; j++)
{
grdData.Rows[i].Cells[j].Value = arrValue[i, j].ToString();
}
}
}
}
}
83
Hàm đo lường đóng góp của nhân tố lao động vào giá trị gia tăng (VA) của
ngành
public static void DoLuongDongGop(ref DataGridView grdData,
DataGridView grdDataIO)
{
if (grdDataIO.Rows.Count > 0)
{
if (grdData.Rows.Count > 0)
{
double[] arrValue = new double[grdDataIO.Columns.Count - 8];
double _VA = 0;
double _Alpha = 0;
for (int i = 0; i < grdDataIO.Columns.Count - 8; i++)
{
if (grdDataIO.Rows[grdDataIO.Rows.Count - 2].Cells[i].Value
!= null)
{
try
{
_VA =
Convert.ToDouble(grdDataIO.Rows[grdDataIO.Rows.Count -
2].Cells[i].Value.ToString());
}
catch { }
}
if (grdDataIO.Rows[grdDataIO.Rows.Count - 6].Cells[i].Value
!= null)
{
try
{
_Alpha =
Convert.ToDouble(grdDataIO.Rows[grdDataIO.Rows.Count -
6].Cells[i].Value.ToString());
}
catch { }
}
84
if (_VA != 0)
arrValue[i] = Math.Round((_Alpha / _VA), 5);
else
arrValue[i] = 0;
}
for (int i = 0; i < grdData.Columns.Count; i++)
{
grdData.Rows[0].Cells[i].Value = arrValue[i].ToString();
}
}
}
}
Hàm tỉ trọng đóng góp của các ngành vào giá trị gia tăng (VA)
public static void TyLeDongGop(ref DataGridView grdData, DataGridView
grdDataIO)
{
if (grdDataIO.Rows.Count > 0)
{
if (grdData.Rows.Count > 0)
{
double[] arrValue = new double[grdDataIO.Columns.Count - 8];
double _IC = 0;
double _VA = 0;
for (int i = 0; i < grdDataIO.Columns.Count - 8; i++)
{
if (grdDataIO.Rows[grdDataIO.Rows.Count - 2].Cells[i].Value
!= null)
{
try
{
_VA =
Convert.ToDouble(grdDataIO.Rows[grdDataIO.Rows.Count -
2].Cells[i].Value.ToString());
}
catch { }
}
85
if (grdDataIO.Rows[grdDataIO.Rows.Count -
2].Cells[grdDataIO.Columns.Count - 8].Value != null)
{
try
{
_IC =
Convert.ToDouble(grdDataIO.Rows[grdDataIO.Rows.Count -
2].Cells[grdDataIO.Columns.Count - 8].Value.ToString());
}
catch { }
}
if (_IC != 0)
arrValue[i] = Math.Round((_VA / _IC)*100, 5);
else
arrValue[i] = 0;
}
for (int i = 0; i < grdData.Columns.Count; i++)
{
grdData.Rows[0].Cells[i].Value = arrValue[i].ToString();
}
}
}
}
Hàm ma trận hệ số kỹ thuật A(ij)
public static void MaTranHeSoKT(ref DataGridView grdData, DataGridView
grdDataIO)
{
if (grdDataIO.Rows.Count > 0)
{
if (grdData.Rows.Count > 0)
{
double[,] arrValue = new double[grdDataIO.Rows.Count -7,
grdDataIO.Columns.Count - 8];
double _Sector = 0;
double _GO = 0;
for (int j = 0; j < grdDataIO.Columns.Count - 8; j++)
86
{
if (grdDataIO.Rows[grdDataIO.Rows.Count - 1].Cells[j].Value
!= null)
{
try
{
_GO =
Convert.ToDouble(grdDataIO.Rows[grdDataIO.Rows.Count -
1].Cells[j].Value.ToString());
}
catch { }
}
for (int i = 0; i < grdDataIO.Rows.Count - 7; i++)
{
_Sector = 0;
if (grdDataIO.Rows[i].Cells[j].Value != null)
{
try
{
_Sector =
Convert.ToDouble(grdDataIO.Rows[i].Cells[j].Value.ToString());
}
catch { }
}
if (_GO != 0)
arrValue[i,j] = Math.Round((_Sector / _GO), 5);
else
arrValue[i,j] = 0;
}
}
for (int i = 0; i < grdData.Rows.Count; i++)
{
for (int j = 0; j < grdData.Columns.Count; j++)
{
grdData.Rows[i].Cells[j].Value = arrValue[i, j].ToString();
}
}
87
}
}
}
Hàm tỉ lệ chi phí trung gian của ngành
public static void TyLeChiPhiTG_Nganh(ref DataGridView grdData,
DataGridView grdDataIO)
{
if (grdDataIO.Rows.Count > 0)
{
if (grdData.Rows.Count > 0)
{
//Tinh ma tran trung gian (Ma tran he so ky thuat Aij)
double[,] arrValueTG = new double[grdDataIO.Rows.Count - 7,
grdDataIO.Columns.Count - 8];
double _Sector = 0;
double _GO = 0;
for (int j = 0; j < grdDataIO.Columns.Count - 8; j++)
{
if (grdDataIO.Rows[grdDataIO.Rows.Count - 1].Cells[j].Value
!= null)
{
try
{
_GO =
Convert.ToDouble(grdDataIO.Rows[grdDataIO.Rows.Count -
1].Cells[j].Value.ToString());
}
catch { }
}
for (int i = 0; i < grdDataIO.Rows.Count - 7; i++)
{
_Sector = 0;
if (grdDataIO.Rows[i].Cells[j].Value != null)
{
try
{
88
_Sector =
Convert.ToDouble(grdDataIO.Rows[i].Cells[j].Value.ToString());
}
catch { }
}
if (_GO != 0)
arrValueTG[i, j] = Math.Round((_Sector / _GO), 5);
else
arrValueTG[i, j] = 0;
}
}
// Tinh ty le chi phi trung gian
double _Sum = 0;
for (int j = 0; j < grdDataIO.Columns.Count - 8; j++)
{
_Sum = 0;
for (int i = 0; i < grdDataIO.Rows.Count - 7; i++)
{
_Sum += arrValueTG[i, j];
}
grdData.Rows[0].Cells[j].Value = _Sum;
}
}
}
}
Hàm ma trận Leontief
public static void MaTranLeontief(ref DataGridView grdData, DataGridView
grdDataIO, ref ProgressBar progressBar1)
{
double[,] A;
int m = 0;
if (grdDataIO.Rows.Count > 0)
{
if (grdData.Rows.Count > 0)
{
//Tinh ma tran trung gian (Ma tran he so ky thuat Aij)
89
double[,] matrixAij = new double[grdDataIO.Rows.Count - 7,
grdDataIO.Columns.Count - 8];
double _Sector = 0;
double _GO = 0;
for (int j = 0; j < grdDataIO.Columns.Count - 8; j++)
{
progressBar1.PerformStep();
if (grdDataIO.Rows[grdDataIO.Rows.Count - 1].Cells[j].Value
!= null)
{
try
{
_GO =
Convert.ToDouble(grdDataIO.Rows[grdDataIO.Rows.Count -
1].Cells[j].Value.ToString());
}
catch { }
}
for (int i = 0; i < grdDataIO.Rows.Count - 7; i++)
{
_Sector = 0;
if (grdDataIO.Rows[i].Cells[j].Value != null)
{
try
{
_Sector =
Convert.ToDouble(grdDataIO.Rows[i].Cells[j].Value.ToString());
}
catch { }
}
if (_GO != 0)
matrixAij[i, j] = Math.Round((_Sector / _GO), 5);
else
matrixAij[i, j] = 0;
}
}
// Khoi tao ma tran don vi I
90
double[,] matrixI = new double[grdDataIO.Rows.Count - 7,
grdDataIO.Columns.Count - 8];
for (int j = 0; j < grdDataIO.Columns.Count - 8; j++)
{
for (int i = 0; i < grdDataIO.Rows.Count - 7; i++)
{
if (i == j)
matrixI[i, j] = 1;
else
matrixI[i, j] = 0;
}
}
// Tinh ma tran I-Aij (I la ma tran don vi)
double[,] matrixI_Aij = new double[grdDataIO.Rows.Count - 7,
grdDataIO.Columns.Count - 8];
for (int i = 0; i < grdDataIO.Rows.Count - 7; i++)
for (int j = 0; j < grdDataIO.Columns.Count - 8; j++)
{
matrixI_Aij[i,j] = (matrixI[i, j] - matrixAij[i, j]);
}
// Tinh ma tran nghich dao cua ma tran I-Aij
// Hien thi ra giao dien
A = new double[(grdDataIO.Rows.Count - 7),2
*(grdDataIO.Columns.Count - 8)];
for (int i = 0; i < grdDataIO.Rows.Count - 7; i++)
{
progressBar1.PerformStep();
for (int j = 0; j < grdDataIO.Columns.Count - 8; j++)
{
//grdData.Rows[i].Cells[j].Value = matrixI_Aij[i, j].ToString();
A[i, j] = matrixI_Aij[i, j];
}
}
if (MaTranNghichDao(ref A, (grdDataIO.Columns.Count - 8)))
{
for (int i = 0; i < grdDataIO.Rows.Count - 7; i++)
91
{
m = 0;
for (int j = (grdDataIO.Rows.Count - 7); j < (2 *
(grdDataIO.Rows.Count - 7)); j++)
{
grdData.Rows[i].Cells[m].Value = A[i, j].ToString();
m++;
}
}
}
else
{
for (int i = 0; i < grdDataIO.Rows.Count - 7; i++)
{
for (int j = 0; j < grdDataIO.Rows.Count - 7; j++)
{
if (i == j) grdData.Rows[i].Cells[j].Value = 1;
else grdData.Rows[i].Cells[j].Value = 0;
}
}
}
}
}
}
Hàm hệ số nhân tử đầu ra - Output Multiplier
public static void OutputMultiplier(ref DataGridView grdData, DataGridView
grdDataIO, ref ProgressBar progressBar1)
{
ClassCalculate.MaTranLeontief(ref grdData, grdDataIO, ref
progressBar1);
double _Sum = 0;
double _Temp = 0;
int _Column = grdData.Columns.Count;
double[] arrSum = new double[grdData.Columns.Count];
for (int j = 0; j < grdData.Columns.Count; j++)
92
{
_Sum = 0;
for (int i = 0; i < grdData.Columns.Count; i++)
{
_Temp = 0;
if (grdData.Rows[i].Cells[j].Value != null)
{
try
{
_Temp =
Convert.ToDouble(grdData.Rows[i].Cells[j].Value.ToString());
}
catch { }
}
_Sum += _Temp;
}
arrSum[j] = _Sum;
}
if (grdData.Columns.Count > 0)
{
grdData.RowCount = 1;
grdData.ColumnHeadersDefaultCellStyle.Font = new
Font(grdData.ColumnHeadersDefaultCellStyle.Font, FontStyle.Bold);
grdData.Rows[0].HeaderCell.Value = "OM";
grdData.ColumnCount = _Column + 1;
grdData.Columns[_Column].HeaderText = "Tổng số";
_Sum = 0;
_Temp = 0;
for (int i = 0; i < _Column; i++)
{
grdData.Rows[0].Cells[i].Value = arrSum[i].ToString();
try
{
_Temp = Convert.ToDouble(arrSum[i].ToString());
}
catch { }
93
_Sum += _Temp;
}
grdData.Rows[0].Cells[_Column].Value = _Sum;
}
}
Hàm hệ số nhân tử đầu vào - Input Multiplier
public static void InputMultiplier(ref DataGridView grdData, DataGridView
grdDataIO, ref ProgressBar progressBar1)
{
ClassCalculate.MaTranLeontief(ref grdData, grdDataIO, ref
progressBar1);
double _Sum = 0;
double _Temp = 0;
int _Column = grdData.Columns.Count;
double[] arrSum = new double[grdData.Columns.Count];
for (int i = 0; i < grdData.Columns.Count; i++)
{
_Sum = 0;
for (int j = 0; j < grdData.Columns.Count; j++)
{
_Temp = 0;
if (grdData.Rows[i].Cells[j].Value != null)
{
try
{
_Temp =
Convert.ToDouble(grdData.Rows[i].Cells[j].Value.ToString());
}
catch { }
}
_Sum += _Temp;
}
arrSum[i] = _Sum;
}
94
if (grdData.Columns.Count > 0)
{
grdData.RowCount = 1;
grdData.ColumnHeadersDefaultCellStyle.Font = new
Font(grdData.ColumnHeadersDefaultCellStyle.Font, FontStyle.Bold);
grdData.Rows[0].HeaderCell.Value = "IM";
grdData.ColumnCount = _Column + 1;
grdData.Columns[_Column].HeaderText = "Tổng số";
_Sum = 0;
_Temp = 0;
for (int i = 0; i < _Column; i++)
{
grdData.Rows[0].Cells[i].Value = arrSum[i].ToString();
try
{
_Temp = Convert.ToDouble(arrSum[i].ToString());
}
catch { }
_Sum += _Temp;
}
grdData.Rows[0].Cells[_Column].Value = _Sum;
}
}
Các file đính kèm theo tài liệu này:
- LUẬN VĂN- ĐÁNH GIÁ HIỆU QUẢ CÁC NGÀNH KINH TẾ VIỆT NAM GIAI ĐOẠN 2000-2008 BẰNG MÔ HÌNH TOÁN HỌC.pdf