Разработка полноценной методологии для прогнозирования товарооборота в торговом объекте

Обзор методов оценки товарооборота. Способы оценки структуры расходов покупателей. Разработка и объединение элементов методологии, включая модели прогнозирования товарооборота, оценки структуры расходов и конкуренции в зоне охвата торговых центров.

Рубрика Маркетинг, реклама и торговля
Вид дипломная работа
Язык русский
Дата добавления 30.01.2016
Размер файла 708,3 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Табл. 14. Текущая и прогнозная численность населения Москвы, тыс. чел.

Год

Численность

Прирост за год, %

Изменение к 2012

2012

11796,2

1,9%

100,0%

2013

12016,2

0,8%

101,9%

2014

12115,9

0,8%

102,7%

2015

12213,4

0,8%

103,5%

2016

12308,7

0,7%

104,3%

2017

12400,6

0,7%

105,1%

2018

12488,3

0,7%

105,9%

2019

12571,2

0,6%

106,6%

2020

12649,6

0,5%

107,2%

2021

12714,8

0,5%

107,8%

2022

12780,4

 

108,3%

Оборот розничной торговли в Москве в 2012 году составил 3,64 трлн рублей[14]. В рамках курсовой работы было выбрано пять товарных категорий, соответствующих одной или более позиции в структуре розничного оборота:

· еда и товары быстрого потребления;

· одежда и обувь;

· электроника;

· товары для дома;

· косметика и товары для здоровья.

Общий их вес в структуре расходов составляет 70,4%.

Компанией Knight Frank была представлена доля расходов, приходящаяся на арендаторов одного профиля, приблизительно одинаковая для ряда крупных торговых центров Москвы, что дало возможность взять её в качестве структуры потребительских расходов, характерной для посетителей ТЦ.

Табл. 15. Новая структура расходов потребителей

Профиль

Доля

Одежда

45,0%

Еда и товары быстрого потребления

15,5%

Рестораны

8,0%

Электроника

7,7%

Обувь

6,4%

Аксессуары

5,1%

Спорттовары

4,4%

Косметика и товары для здоровья

3,9%

Услуги и развлечение

2,9%

Товары для дома

1,1%

В новой структуре расходов, приведенной в таблице 12, присутствует несколько категорий, не соответствующих данным ФСГС. В частности, объем рынка общественного питания в Москве составляет порядка 150 млрд рублей в год[15]. Совокупные кассовые сборы в России в 2012 году составили 1,2 млрд. долларов США[16], т.е. порядка 40 млрд. рублей; кинотеатры, в свою очередь, формируют большую часть оборота среди арендаторов из категории «услуги и развлечение».

Было сделано предположение, что совокупный объем расходов потребителей в Москве, приходящийся на объекты данного профиля, составляет 2,73 триллиона рублей, т.е. 75% от величины розничного оборота.

Коэффициенты роста рынка розничной торговли взяты из прогноза Минэкономразвития[17].

Табл. 16. Общее конечное потребление, млн. руб.

Год

Объем потребления

Прирост за год, %

2012

2729786,3

5,50%

2013

2879924,6

5,50%

2014

3038320,4

5,50%

2015

3205428,0

5,50%

2016

3381726,6

4,50%

2017

3533904,3

4,50%

2018

3692930,0

4,50%

2019

3859111,8

4,50%

2020

4032771,9

4,50%

2021

4214246,6

3,30%

2022

4353316,7

 

В качестве данных по численности населения и долям рынка в зонах охвата были взяты результаты запусков под номером 2 из разделов 3.3 - 3.4. Доли рынка для каждой товарной категории были взяты эквивалентными доле рынка всего ТЦ, но при этом последняя была уменьшена на одну треть в рамках предположения, что часть оборота в реальности уходит в пользу не включенных в оценку торговых объектов. Доли рынка в прогнозном году идентичны долям для базового года.

Табл. 17. Население и доли рынка для зон охвата объектов

4 км

8 км

12 км

Население, Метрополис, тыс. чел.

641,343

1713,144

1882,733

Население, Филион, тыс. чел.

501,582

1642,922

2278,081

Доли рынка, Метрополис

12,2%

1,8%

0,5%

Доли рынка, Филион

7,3%

1,3%

0,5%

Поскольку, общие потребительские расходы в Москве, а также их структура одинаковы для обоих торговых центров, расходы одного человека на товарную категорию в денежном выражении также оказались одинаковыми.

Табл. 18. Индивидуальные потребительские расходы, тыс. руб.

Товарная категория

2012

2017

Одежда

103,582

127,559

Еда и товары быстрого потребления

35,609

43,852

Кафе и рестораны

18,377

22,631

Электроника

17,640

21,724

Обувь

14,833

18,267

Аксессуары

11,756

14,477

Спорттовары

10,193

12,553

Косметика и здоровье

8,994

11,075

Услуги и развлечение

6,763

8,329

Товары для дома

2,486

3,062

Всего:

230,234

283,528

Итоговые объемы совокупного товарооборота для каждого из торговых центров представлены в таблице 16. Процентное соотношение каждой из категорий товаров идентично представленному в таблице 12, поскольку для каждой из них были взяты одинаковые доли рынка.

Табл. 19. Полученные с помощью исходной модели оценки товарооборота

2012

2017

прирост

%

Метрополис

27586,29131

35712,43

8126,14238

29,5%

Филион

16045,14037

20771,59

4726,445237

29,5%

Сравнить полученные оценки с реальными данными по товарообороту в рамках ВКР не было возможным в виду отсутствия сведений по последним. Однако можно определить, что при данных входных параметрах соотношение полученных оборотов для «Филиона» и «Метрополиса» составляет приблизительно 0.58, что отличается от представленного в таблицах 8 и 9, которое равняется 0.4.

3.7 Запуск модели оценки структуры расходов

В виду отсутствия сведений о величине или структуре товарооборота для достаточного числа объектов, а также о соответствующих им долях рынков в разных товарных категориях, запуск данной модели на реальных данных не был возможен. Вместо этого, с целью проверки работоспособности, был осуществлен запуск модели на случайно сгенерированном наборе данных, включающем в себя сведения о восьми объектах. Были взяты те же десять товарных категорий, что и при оценке товарооборота исходной моделью в разделе 3.6. Таблица 20 содержит входные данные относительно структуры товарооборота в каждом из 8 торговых объектов.

Табл. 20. Доли категорий в товарообороте.

Для каждого ТЦ рассматривалось три зоны охвата, численность населения в которых приведена в таблице 21.

Табл. 21. Население в зонах охвата ТЦ, тыс. чел.

Зона 1

Зона 2

Зона 3

Всего

591

1159

2235

3985

491

1184

2238

3913

438

1462

2155

4055

584

1142

2387

4113

420

1209

2045

3674

419

1009

2233

3661

451

1422

2431

4304

492

1214

2033

3739

Для каждого торгового объекта были указаны соответствующие ему доли рынка, занимаемые в каждой из товарных категорий внутри каждой из трех зон охвата.

Табл. 22. Уровни конкуренции для категории «Одежда и обувь»

Объект

Зона #1

Зона #2

Зона #3

Всего посетителей, тыс.

#1

8,5%

3,9%

1,3%

124,491

#2

8,4%

3,2%

0,6%

92,56

#3

7,7%

4,4%

0,8%

115,294

#4

7,2%

3,9%

1,4%

120,004

#5

7,8%

4,2%

1,4%

112,168

#6

7,4%

4,5%

1,1%

100,974

#7

7,0%

5,0%

0,7%

119,687

#8

7,3%

4,3%

1,5%

118,613

Табл. 23. Структура расходов, полученная в результате работы модели.

Категория

Доля

Одежда

44,5%

Еда и тов. быстр. потр.

13,1%

Кафе и рестораны

9,8%

Электроника

3,3%

Обувь

8,3%

Аксессуары

4,5%

Спорттовары

4,4%

Косметика и здоровье

3,2%

Услуги и развлечение

1,6%

Товары для дома

7,4%

Всего

100,0%

Заключение

Разработанная в рамках ВКР методология оценки оборота торговых объектов включает в себя ряд взаимосвязанных модулей, предназначенных для прогнозирования как непосредственно товарооборота, так и вспомогательных данных, к которым относятся численность населения и уровень конкуренции в зонах охвата объектов, а также структура расходов потребителей. Применение этой методологии дает необходимую информацию для оценки величины арендных платежей в существующих и проектируемых торговых центрах, а, следовательно, и их рентабельности.

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

Прежде всего, возникновение отклонений прогнозов вызвано доступностью информации лишь о небольшом числе торговых объектов, равно как и низким уровнем её детализации. В ходе прогнозирования с помощью регрессионных уравнений, обучающая и проверочная выборки включали, в общей сложности, всего семь объектов. Прямая оценка качества работы исходной модели оборота и вовсе не представилась возможной, поскольку не было фактических сведений о величине оборота объектов в денежном выражении.

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

Несмотря на описанные ограничения, всё же можно сказать, что в ходе работы были полностью выполнены поставленные задачи. Были рассмотрены возможны подходы к оценке оборота и доработке исходной модели, созданной в рамках курсового проекта. С учетом имеющихся теоретических сведений была разработана полноценная методология прогнозирования товарооборота. Наконец, с помощью этой методологии были составлены прогнозы по обороту в ряде существующих, а также одном проектируемом объекте.

Дальнейшее улучшение созданной методологии может проводиться по ряду направлений:

· увеличение числа объектов, для которых доступна информация, на основе которой может проводиться прогнозирование: точность регрессионных моделей, как правило, возрастает с ростом числа наблюдений, а наличие сведений об абсолютных величинах товарооборотов для значительного числа объектов даст возможность осуществления калибровки остальных моделей;

· получение более детальной информации об арендаторах торговых центров, а также о наиболее крупных объектах, работающих в исследуемых товарных категориях, что дало бы возможность проводить более гибкую оценку положения на рынке того или иного ТЦ;

· расширение имеющихся сведений о характеристиках объектов, которое позволило бы более точно оценивать их привлекательность для посетителей, а, следовательно, и занимаемую ими долю рынка; общая арендуемая площадь, безусловно, оказывает влияние на итоговую величину товарооборота, однако было бы целесообразно рассмотреть и иные факторы, вроде расположения относительно транспортных путей, числа парковочных мест или наличия иных предоставляемых дополнительно услуг;

· внесение изменений в модуль оценки численности населения с целью повышения точность его работы или его реализация средствами одной из геоинформационных систем, позволяющих значительно более точно определять границы зон охвата и число попадающих в них людей.

Литература

1. Структура ВВП России // www.newsruss.ru - http://newsruss.ru/doc/index.php/Структура_ВВП_России

2. http://tass.ru/ekonomika/1728983

3. Рынок торговой недвижимости // Knight Frank. Москва, 2014.

4. Лазаренко А. А. Методы оценки конкурентоспособности [Текст] / А. А. Лазаренко // Молодой ученый. -- 2014. -- №1. -- С. 374-377.

5. Павлова Н. Н. Маркетинговый подход к оценке конкурентоспособности магазина (сервиса) // "Маркетинг в России и за рубежом" -- 2005 -- №1.

6. David L. Huff. Parameter Estimation in the Huff Model // ArcUser, October -- December, 2003 -- esri.com

7. Российский статистический ежегодник - 2013 г. // Федеральная служба государственной статистики, 2013.

8. Административные округа и районы Москвы // портал «Электронная Москва» -- http://mosopen.ru/regions.

9. Хортонен А. А. Географические информационные системы как класс систем поддержки принятия решений при управлении пространственность информацией (на примере банковской сферы) // Вестник Астраханского государственного технического университета. Серия: Управление, вычислительная техника и информатика -- 2011 -- №1.

10. Зборовский Р.Д., Сидоренко В. И., Солдатов Г. И. Рынок торговой недвижимости. Модель расчета товарооборота торговых центров // НИУ ВШЭ, 2014.

11. Вычисление расстояния и начального азимута между двумя точками на сфере // www.gis-lab.info -- http://gis-lab.info/qa/great-circles.html

12. Численность постоянного населения на 1 января // Единая межведомственная информационно-статистическая система -- http://www.fedstat.ru/indicator/data.do?id=31557

13. Предположительная численность населения Российской Федерации до 2030 года (статистический бюллетень) // Федеральная служба государственной статистики. Москва, 2013.

14. Розничная торговля и услуги населению // Федеральная служба государственной статистики

15. Рынок общественного питания // Intesco Research Group. Москва, 2014.

16. Обзор российского кинорынка. Итоги 2012 года // Невафильм Research. Санкт-Петербуг, апрель 2013.

17. Прогноз долгосрочного социально-экономического развития РФ до 2030 года // Минэкономразвития России.

Приложение 1

Исходный код написанных для методологии макросов

Блок общего назначения

'получение тела таблицы

Function GetTable(tableName)

GetTable = ThisWorkbook.Sheets("Справочные_данные").ListObjects(tableName).DataBodyRange.Value

End Function

Function GetTable2(sheet, colStart, rowStart, colEnd)

rowEnd = ThisWorkbook.Sheets(sheet).Range(colStart & Rows.Count).End(xlUp).Row

GetTable2 = ThisWorkbook.Sheets(sheet).Range(colStart & rowStart & ":" & colEnd & rowEnd)

End Function

'очистка листа

Sub ClearSheet(sheetname As String)

Sheets(sheetname).Cells.Clear

End Sub

'расчет расстояния меджу объектом и р-ном по формуле гаверсинусов

'координаты - десятичные, расст. в км

Function GetDistance(objLat, objLong, areaLat, areaLong)

With Application.WorksheetFunction

GetDistance = .Atan2(Sin(.Pi() * objLat / 180) * Sin(.Pi() * areaLat / 180) + Cos(.Pi() * objLat / 180) * _

Cos(.Pi() * areaLat / 180) * Cos(Abs(.Pi() * areaLong / 180 - .Pi() * objLong / 180)), _

((Cos(.Pi() * areaLat / 180) * Sin(.Pi() * areaLong / 180 - .Pi() * objLong / 180)) ^ 2 + _

(Cos(.Pi() * objLat / 180) * Sin(.Pi() * areaLat / 180) - Sin(.Pi() * objLat / 180) * _

Cos(.Pi() * areaLat / 180) * Cos(Abs(.Pi() * areaLong / 180 - .Pi() * objLong / 180))) ^ 2) ^ 0.5) * 6372795 _

/ 1000

End With

End Function

Блок расчета численности населения

Sub CalculatePopulation()

General.ClearSheet ("Насел_в_ЗО") 'очистка листа

Let border = ActiveWorkbook.Worksheets("Справочные_данные").Range("_DistanceBorder").Value 'пороговое расстояние для ЗО

objects = General.GetTable("Data_Objects") 'таблицы объектов, ЗО и р-нов

zones = General.GetTable("Data_Zones")

areas = General.GetTable("Data_Areas")

ReDim distances(1 To UBound(objects, 1), 1 To UBound(areas, 1)) 'массив расстояний между объектами и р-нами

ReDim includeCoeffs(1 To UBound(objects, 1), 1 To UBound(areas, 1), 1 To UBound(zones, 1)) 'коэффициенты вхождения р-на в ЗО

ReDim zonesPop(1 To UBound(objects, 1), 1 To UBound(zones, 1)) 'население в ЗО каждого ТЦ

ReDim zoneBorders(1 To UBound(zones, 1) + 1) 'расширенный массив сграницами ЗО для проверки на полноту вхождения р-нов в ЗО

zoneBorders(1) = -1 * border

For k = 2 To UBound(zoneBorders, 1)

zoneBorders(k) = zones(k - 1, 2)

Next k

For i = 1 To UBound(objects, 1) 'для каждого объекта

If objects(i, 4) = "Да" Then 'если включен в расчет

For j = 1 To UBound(areas, 1)

'определение расст. между i-м объектом и ЗО

distances(i, j) = General.GetDistance(objects(i, 2), objects(i, 3), areas(j, 4), areas(j, 5))

'определение вхождений р-нов в ЗО

For k = 2 To UBound(zoneBorders, 1)

If (zoneBorders(k - 1) - border <= distances(i, j) And _

distances(i, j) < zoneBorders(k - 1) + border) Then 'beta (слишком близко к объекту)

includeCoeffs(i, j, k - 1) = (distances(i, j) - zoneBorders(k - 1) + border) / (2 * border)

ElseIf (zoneBorders(k - 1) + border <= distances(i, j) And _

distances(i, j) < zoneBorders(k) - border) Then '1 (полностью входит)

includeCoeffs(i, j, k - 1) = 1

ElseIf (zoneBorders(k) - border <= distances(i, j) And _

distances(i, j) < zoneBorders(k) + border) Then 'alpha (слишком далеко от объекта)

includeCoeffs(i, j, k - 1) = (zoneBorders(k) + border - distances(i, j)) / (2 * border)

Else

includeCoeffs(i, j, k - 1) = 0

End If

Next k

Next j

'подсчет суммарного населения в ЗО

For k = 1 To UBound(zones, 1)

zonesPop(i, k) = 0

For j = 1 To UBound(areas, 1)

zonesPop(i, k) = zonesPop(i, k) + areas(j, 3) * includeCoeffs(i, j, k)

Next j

Next k

End If

Next i

'вывод результатов на лист

ThisWorkbook.Sheets("Насел_в_ЗО").Cells(3, 1) = "Объекты\зоны"

ThisWorkbook.Sheets("Насел_в_ЗО").Cells(3, 1).Font.Bold = True

ThisWorkbook.Sheets("Насел_в_ЗО").Cells(3, 2 + UBound(zones, 1)) = "Всего"

ThisWorkbook.Sheets("Насел_в_ЗО").Cells(3, 2 + UBound(zones, 1)).Font.Bold = True

For i = 1 To UBound(objects, 1)

ThisWorkbook.Sheets("Насел_в_ЗО").Cells(3 + i, 1) = objects(i, 1)

ThisWorkbook.Sheets("Насел_в_ЗО").Cells(3 + i, 1).Font.Bold = True

Next i

For k = 1 To UBound(zones, 1)

ThisWorkbook.Sheets("Насел_в_ЗО").Cells(3, 1 + k) = zones(k, 1)

ThisWorkbook.Sheets("Насел_в_ЗО").Cells(3, 1 + k).Font.Bold = True

Next k

ThisWorkbook.Sheets("Насел_в_ЗО").[B4].Resize(UBound(zonesPop, 1), UBound(zonesPop, 2)) = zonesPop

For i = 1 To UBound(objects, 1)

Cells(3 + i, 2 + UBound(zones, 1)).Value = _

Application.sum(Range(Cells(3 + i, 2), Cells(3 + i, 1 + UBound(zones, 1))))

Next i

Range(Cells(4, 2), Cells(3 + UBound(objects, 1), 2 + UBound(zones, 1))).NumberFormat = "0.000"

End Sub

Блок расчета долей рынка объектов

Sub ShareButtonClick()

Dim category As String

category = ActiveWorkbook.Worksheets("Конкуренция").Range("_ShareCategory").Value

zoneShares = GetShares(category)

objects = General.GetTable("Data_Objects")

zones = General.GetTable("Data_Zones")

ClearShares

ThisWorkbook.Sheets("Конкуренция").Cells(4, 1) = "Объекты\зоны"

ThisWorkbook.Sheets("Конкуренция").Cells(4, 1).Font.Bold = True

For i = 1 To UBound(objects, 1)

ThisWorkbook.Sheets("Конкуренция").Cells(4 + i, 1) = objects(i, 1)

ThisWorkbook.Sheets("Конкуренция").Cells(4 + i, 1).Font.Bold = True

Next i

For k = 1 To UBound(zones, 1)

ThisWorkbook.Sheets("Конкуренция").Cells(4, 1 + k) = zones(k, 1)

ThisWorkbook.Sheets("Конкуренция").Cells(4, 1 + k).Font.Bold = True

Next k

ThisWorkbook.Sheets("Конкуренция").[B5].Resize(UBound(zoneShares, 1), UBound(zoneShares, 2)) = zoneShares

Range(Cells(5, 2), Cells(4 + UBound(objects, 1), 2 + UBound(zones, 1))).NumberFormat = "0.00%"

End Sub

Function GetShares(category As String)

Let border = ActiveWorkbook.Worksheets("Справочные_данные").Range("_DistanceBorder").Value 'пороговое расстояние для ЗО

Let x = ActiveWorkbook.Worksheets("Справочные_данные").Range("_X").Value 'корректирующие коэфф.

Let Y = ActiveWorkbook.Worksheets("Справочные_данные").Range("_Y").Value

Let a = ActiveWorkbook.Worksheets("Справочные_данные").Range("_Alpha").Value 'коэфф для полезности

Let b = ActiveWorkbook.Worksheets("Справочные_данные").Range("_Beta").Value

objects = General.GetTable("Data_Objects") 'таблицы объектов, подобъектов, ЗО и р-нов

subobjects = General.GetTable("Data_Subobjects")

zones = General.GetTable("Data_Zones")

Areas = General.GetTable("Data_Areas")

ReDim attr(1 To UBound(objects, 1)) 'привлекательность

ReDim distances(1 To UBound(objects, 1), 1 To UBound(Areas, 1)) 'расстояния

ReDim util(1 To UBound(objects, 1), 1 To UBound(Areas, 1)) 'полезность

ReDim includeCoeffs(1 To UBound(objects, 1), 1 To UBound(Areas, 1), 1 To UBound(zones, 1)) 'коэффициенты вхождения р-на в ЗО

ReDim shares(1 To UBound(objects, 1), 1 To UBound(Areas, 1), 1 To UBound(zones, 1)) 'доли рынка

ReDim zoneShares(1 To UBound(objects, 1), 1 To UBound(zones, 1)) 'доли рынка внутри зон охвата

ReDim zoneBorders(1 To UBound(zones, 1) + 1) 'расширенный массив сграницами ЗО для проверки на полноту вхождения р-нов в ЗО

zoneBorders(1) = -1 * border

For k = 2 To UBound(zoneBorders, 1)

zoneBorders(k) = zones(k - 1, 2)

Next k

'привлекательность, расстояние и полезности

For i = 1 To UBound(objects, 1)

'подсчет суммарной привлекательности объекта в категории

attr(i) = 0

For t = 1 To UBound(subobjects, 1)

If subobjects(t, 3) = category And subobjects(t, 2) = objects(i, 1) Then

attr(i) = attr(i) + subobjects(t, 4)

End If

Next t

'для объектов с ненулевой привлекательностью

If attr(i) > 0 Then

For j = 1 To UBound(Areas, 1)

'определение расстояний до районов

distances(i, j) = General.GetDistance(objects(i, 2), objects(i, 3), Areas(j, 4), Areas(j, 5))

'определение полезностей

If distances(i, j) > 0 Then

util(i, j) = attr(i) ^ a / distances(i, j) ^ b

End If

'определение вхождений р-нов в ЗО

For k = 2 To UBound(zoneBorders, 1)

If (zoneBorders(k - 1) - border <= distances(i, j) And _

distances(i, j) < zoneBorders(k - 1) + border) Then 'beta (слишком близко к объекту)

includeCoeffs(i, j, k - 1) = (distances(i, j) - zoneBorders(k - 1) + border) / (2 * border)

ElseIf (zoneBorders(k - 1) + border <= distances(i, j) And _

distances(i, j) < zoneBorders(k) - border) Then '1 (полностью входит)

includeCoeffs(i, j, k - 1) = 1

ElseIf (zoneBorders(k) - border <= distances(i, j) And _

distances(i, j) < zoneBorders(k) + border) Then 'alpha (слишком далеко от объекта)

includeCoeffs(i, j, k - 1) = (zoneBorders(k) + border - distances(i, j)) / (2 * border)

Else

includeCoeffs(i, j, k - 1) = 0

End If

Next k

Next j

End If

Next i

'определение долей рынка объектов в каждом районе с разбиением по зонам охвата

For j = 1 To UBound(Areas, 1)

'определение суммарной полезности всех объектов для р-на

sumUtil = 0

For i = 1 To UBound(objects, 1)

sumUtil = sumUtil + util(i, j)

Next i

'если все полезности = 0

If sumUtil = 0 Then

For i = 1 To UBound(objects, 1)

For k = 1 To UBound(zones, 1)

shares(i, j, k) = 0

Next k

Next i

'если существует ненулевая полезность от 1 или более объектов

Else

For i = 1 To UBound(objects, 1)

For k = 1 To UBound(zones, 1)

shares(i, j, k) = includeCoeffs(i, j, k) * util(i, j) / sumUtil

Next k

Next i

End If

Next j

'определение долей рынка объектов в их зонах охвата

For i = 1 To UBound(objects, 1)

For k = 1 To UBound(zones, 1)

sumPop = 0 'общая численность населения р-нов внутри зоны охвата

sharesOnPop = 0 'сумма произведений численностей населения и долей рынка в районах

For j = 1 To UBound(Areas, 1)

If includeCoeffs(i, j, k) > 0 Then

sumPop = sumPop + Areas(j, 3) * includeCoeffs(i, j, k)

sharesOnPop = sharesOnPop + shares(i, j, k) * Areas(j, 3)

End If

Next j

'если в зону охвата объекта попадает хотя бы один район

If sumPop > 0 Then

zoneShares(i, k) = sharesOnPop / sumPop * x - Y

Else

End If

Next k

Next i

GetShares = zoneShares

End Function

Sub ClearShares()

With ThisWorkbook.Sheets("Конкуренция")

.Rows("3:" & Rows.Count).Clear

End With

End Sub

Блок построения регрессионных моделей

Sub RegressionButtonClick()

CalculateRegressions

End Sub

Sub CalculateRegressions()

ClearRegressionData

'линейная модель

rY = General.GetTable2("Регрессии", "B", "6", "B")

rX = General.GetTable2("Регрессии", "C", "6", "D")

lin = Application.WorksheetFunction.LinEst(rY, rX, True, True)

With ThisWorkbook.Sheets("Регрессии")

.Range("P4").Value = lin(3, 1)

.Range("P5").Value = lin(4, 1)

.Range("R4").Value = lin(3, 2)

.Range("R5").Value = lin(4, 2)

.Range("P7").Value = lin(1, 3)

.Range("Q7").Value = lin(1, 2)

.Range("R7").Value = lin(1, 1)

.Range("P8").Value = lin(1, 3) / lin(2, 3)

.Range("Q8").Value = lin(1, 2) / lin(2, 2)

.Range("R8").Value = lin(1, 1) / lin(2, 1)

End With

'степенная модель

ReDim rY2(1 To UBound(rY, 1), 1 To 1)

ReDim rX2(1 To UBound(rX, 1), 1 To UBound(rX, 2))

For i = 1 To UBound(rY, 1)

rY2(i, 1) = Application.WorksheetFunction.Ln(rY(i, 1))

rX2(i, 1) = Application.WorksheetFunction.Ln(rX(i, 1))

rX2(i, 2) = Application.WorksheetFunction.Ln(rX(i, 2))

Next i

pow = Application.WorksheetFunction.LinEst(rY2, rX2, True, True)

With ThisWorkbook.Sheets("Регрессии")

.Range("P11").Value = pow(3, 1)

.Range("P12").Value = pow(4, 1)

.Range("R11").Value = pow(3, 2)

.Range("R12").Value = pow(4, 2)

.Range("P14").Value = pow(1, 3)

.Range("Q14").Value = pow(1, 2)

.Range("R14").Value = pow(1, 1)

.Range("P15").Value = pow(1, 3) / pow(2, 3)

.Range("Q15").Value = pow(1, 2) / pow(2, 2)

.Range("R15").Value = pow(1, 1) / pow(2, 1)

End With

'экспоненциальная модель

For i = 1 To UBound(rY, 1)

rX2(i, 1) = rX(i, 1)

rX2(i, 2) = rX(i, 2)

Next i

expon = Application.WorksheetFunction.LinEst(rY2, rX2, True, True)

With ThisWorkbook.Sheets("Регрессии")

.Range("P18").Value = expon(3, 1)

.Range("P19").Value = expon(4, 1)

.Range("R18").Value = expon(3, 2)

.Range("R19").Value = expon(4, 2)

.Range("P21").Value = expon(1, 3)

.Range("Q21").Value = expon(1, 2)

.Range("R21").Value = expon(1, 1)

.Range("P22").Value = expon(1, 3) / expon(2, 3)

.Range("Q22").Value = expon(1, 2) / expon(2, 2)

.Range("R22").Value = expon(1, 1) / expon(2, 1)

End With

'логарифмическая модель

For i = 1 To UBound(rY, 1)

rY2(i, 1) = rY(i, 1)

rX2(i, 1) = Application.WorksheetFunction.Ln(rX(i, 1))

rX2(i, 2) = Application.WorksheetFunction.Ln(rX(i, 2))

Next i

logar = Application.WorksheetFunction.LinEst(rY2, rX2, True, True)

With ThisWorkbook.Sheets("Регрессии")

.Range("P25").Value = logar(3, 1)

.Range("P26").Value = logar(4, 1)

.Range("R25").Value = logar(3, 2)

.Range("R26").Value = logar(4, 2)

.Range("P28").Value = logar(1, 3)

.Range("Q28").Value = logar(1, 2)

.Range("R28").Value = logar(1, 1)

.Range("P29").Value = logar(1, 3) / logar(2, 3)

.Range("Q29").Value = logar(1, 2) / logar(2, 2)

.Range("R29").Value = logar(1, 1) / logar(2, 1)

End With

End Sub

'очистка ячеек с информацией о моделях

Sub ClearRegressionData()

With ThisWorkbook.Sheets("Регрессии")

.Range("P4:P5").ClearContents

.Range("R4:R5").ClearContents

.Range("P7:R8").ClearContents

.Range("P11:P12").ClearContents

.Range("R11:R12").ClearContents

.Range("P14:R15").ClearContents

.Range("P18:P19").ClearContents

.Range("R18:R19").ClearContents

.Range("P21:R22").ClearContents

.Range("P25:P26").ClearContents

.Range("R25:R26").ClearContents

.Range("P28:R29").ClearContents

End With

End Sub

-

Размещено на Allbest.ru


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.