From 1052a39657cfcdfc99fe1345a6cebfa1dfd67dac Mon Sep 17 00:00:00 2001 From: altteam Date: Thu, 23 Nov 2023 01:32:17 +0400 Subject: [PATCH] laba 4 ready --- verina_daria_lab_4/README.md | 25 +++ verina_daria_lab_4/economica.csv | 370 +++++++++++++++++++++++++++++++ verina_daria_lab_4/main.py | 32 +++ verina_daria_lab_4/result.png | Bin 0 -> 52506 bytes 4 files changed, 427 insertions(+) create mode 100644 verina_daria_lab_4/README.md create mode 100644 verina_daria_lab_4/economica.csv create mode 100644 verina_daria_lab_4/main.py create mode 100644 verina_daria_lab_4/result.png diff --git a/verina_daria_lab_4/README.md b/verina_daria_lab_4/README.md new file mode 100644 index 0000000..9116236 --- /dev/null +++ b/verina_daria_lab_4/README.md @@ -0,0 +1,25 @@ +# IIS_2023_1 +### Задание +Использовать метод кластеризации по варианту для данных из таблицы 1 по варианту(таблица 9),самостоятельно сформулировав задачу. Интерпретировать результаты и оценить, насколько хорошо он подходит для решения сформулированной вами задачи. +### Задание по варианту и сформированное задание +7(2). linkage +Будем кластеризировать данные методом linkage, используя два выбранных признака ('gdppercent' (процент ВВП) и 'oil_prices'). + + +### Способ запуска лабораторной работы +Выполнить скрипт `verina_daria_lab_4/main.py` + +### Стек технологий +* `Pandas` - библиотека, которая позволяет работать с двумерными и многомерными таблицами, строить сводные таблицы, выделять колонки, использовать фильтры по параметрам, выполнять группировку по параметрам, запускать функции (сложение, нахождение медианы, среднего, минимального, максимального значений), объединять таблицы и многое другое +* `Sklearn` - предоставляет ряд инструментов для моделирования данных, включая классификацию, регрессию, кластеризацию и уменьшение размерности. +* `Matplotlib` - это библиотека для визуализации данных в Python, предоставляющая инструменты для создания статических, анимированных и интерактивных графиков и диаграмм. + +### Описание кода +Этот код выполняет кластеризацию данных методом linkage, используя два выбранных признака ('gdppercent' - это процент ВВП и 'oil_prices'). Процесс включает в себя предварительную обработку данных (заполнение пропущенных значений и стандартизацию), а затем применение агломеративной кластеризации. Результаты визуализируются на графике, который сохраняется в папке проекта под названием 'result.png'. + +График: + +![result.png](result.png) + +### Вывод +Кластеризация в данном случае позволяет достаточно эффективно ыделить группы схожих наблюдений, основываясь на уровне ВВП и ценах на нефть. Кластеризация данных по уровню ВВП и цене на нефть позволяет выделить группы стран с схожими экономическими характеристиками, что может быть полезным для анализа и сравнения экономических трендов. \ No newline at end of file diff --git a/verina_daria_lab_4/economica.csv b/verina_daria_lab_4/economica.csv new file mode 100644 index 0000000..1d8b140 --- /dev/null +++ b/verina_daria_lab_4/economica.csv @@ -0,0 +1,370 @@ +stock_index,country,year,index_price,log_indexprice,inflationrate,oil_prices,exchange_rate,gdppercent,percapitaincome,unemploymentrate,manufacturingoutput,tradebalance,USTreasury +NASDAQ,United States of America,1980.00,168.61,2.23,0.14,21.59,1.00,0.09,12575.00,0.07,,-13.06,0.11 +NASDAQ,United States of America,1981.00,203.15,2.31,0.10,31.77,1.00,0.12,13976.00,0.08,,-12.52,0.14 +NASDAQ,United States of America,1982.00,188.98,2.28,0.06,28.52,1.00,0.04,14434.00,0.10,,-19.97,0.13 +NASDAQ,United States of America,1983.00,285.43,2.46,0.03,26.19,1.00,0.09,15544.00,0.10,,-51.64,0.11 +NASDAQ,United States of America,1984.00,248.89,2.40,0.04,25.88,1.00,0.11,17121.00,0.08,,-102.73,0.12 +NASDAQ,United States of America,1985.00,290.25,2.46,0.04,24.09,1.00,0.07,18237.00,0.07,,-114.02,0.11 +NASDAQ,United States of America,1986.00,366.97,2.56,0.02,12.51,1.00,0.06,19071.00,0.07,,-131.87,0.08 +NASDAQ,United States of America,1987.00,402.57,2.60,0.04,15.40,1.00,0.06,20039.00,0.06,,-144.77,0.08 +NASDAQ,United States of America,1988.00,374.43,2.57,0.04,12.58,1.00,0.08,21417.00,0.05,,-109.39,0.09 +NASDAQ,United States of America,1989.00,437.80,2.64,0.05,15.86,1.00,0.08,22857.00,0.05,,-86.74,0.08 +NASDAQ,United States of America,1990.00,409.18,2.61,0.05,27.28,1.00,0.02,23889.00,0.06,182.19,-77.85,0.09 +NASDAQ,United States of America,1991.00,491.69,2.69,0.04,19.50,1.00,,24342.00,0.07,185.83,-28.61,0.08 +NASDAQ,United States of America,1992.00,599.26,2.78,0.03,19.41,1.00,0.04,25419.00,0.07,189.27,-34.74,0.07 +NASDAQ,United States of America,1993.00,715.16,2.85,0.03,14.52,1.00,0.03,26387.00,0.07,166.43,-65.17,0.06 +NASDAQ,United States of America,1994.00,751.65,2.88,0.03,17.16,1.00,0.04,27695.00,0.06,187.05,-92.49,0.07 +NASDAQ,United States of America,1995.00,925.19,2.97,0.03,19.03,1.00,0.03,28691.00,0.06,208.44,-89.76,0.07 +NASDAQ,United States of America,1996.00,1164.95,3.07,0.03,25.23,1.00,0.04,29968.00,0.05,216.82,-96.38,0.06 +NASDAQ,United States of America,1997.00,1469.49,3.17,0.02,18.33,1.00,0.04,31459.00,0.05,235.67,-101.97,0.06 +NASDAQ,United States of America,1998.00,1794.91,3.25,0.02,11.35,1.00,0.05,32854.00,0.05,240.04,-162.71,0.05 +NASDAQ,United States of America,1999.00,2728.15,3.44,0.02,26.10,1.00,0.05,34514.00,0.04,234.62,-255.83,0.06 +NASDAQ,United States of America,2000.00,3783.67,3.58,0.03,28.44,1.00,0.04,36335.00,0.04,223.42,-375.05,0.06 +NASDAQ,United States of America,2001.00,2035.00,3.31,0.03,19.39,1.00,0.01,37133.00,0.05,205.70,-367.93,0.05 +NASDAQ,United States of America,2002.00,1539.73,3.19,0.02,29.46,1.00,0.02,38023.00,0.06,217.95,-425.40,0.05 +NASDAQ,United States of America,2003.00,1647.17,3.22,0.02,32.13,1.00,0.03,39496.00,0.06,240.22,-503.13,0.04 +NASDAQ,United States of America,2004.00,1986.53,3.30,0.03,43.15,1.00,0.04,41713.00,0.06,267.20,-619.08,0.04 +NASDAQ,United States of America,2005.00,2099.32,3.32,0.03,59.41,1.00,0.04,44115.00,0.05,268.36,-721.19,0.04 +NASDAQ,United States of America,2006.00,2263.41,3.35,0.03,61.96,1.00,0.03,46299.00,0.05,277.32,-770.93,0.05 +NASDAQ,United States of America,2007.00,2578.47,3.41,0.03,91.69,1.00,0.02,47976.00,0.05,299.29,-718.43,0.05 +NASDAQ,United States of America,2008.00,2161.65,3.33,0.04,41.12,1.00,,48383.00,0.06,278.83,-723.09,0.04 +NASDAQ,United States of America,2009.00,1845.38,3.27,,74.47,1.00,-0.03,47100.00,0.09,221.24,-396.45,0.03 +NASDAQ,United States of America,2010.00,2349.89,3.37,0.02,89.15,1.00,0.03,48467.00,0.10,236.41,-513.90,0.03 +NASDAQ,United States of America,2011.00,2677.44,3.43,0.03,98.56,1.00,0.02,49883.00,0.09,249.95,-579.46,0.03 +NASDAQ,United States of America,2012.00,2965.56,3.47,0.02,87.86,1.00,0.02,51603.00,0.08,252.36,-568.57,0.02 +NASDAQ,United States of America,2013.00,3541.29,3.55,0.01,97.63,1.00,0.02,53107.00,0.07,265.61,-490.78,0.02 +NASDAQ,United States of America,2014.00,4375.10,3.64,0.02,59.29,1.00,0.02,55050.00,0.06,287.86,-507.66,0.03 +NASDAQ,United States of America,2015.00,4945.55,3.69,,37.19,1.00,0.03,56863.00,0.05,274.30,-526.57,0.02 +NASDAQ,United States of America,2016.00,4987.79,3.70,0.01,51.97,1.00,0.02,58021.00,0.05,245.73,-512.51,0.02 +NASDAQ,United States of America,2017.00,6235.30,3.79,0.02,57.88,1.00,0.02,60110.00,0.04,242.59,-555.53,0.02 +NASDAQ,United States of America,2018.00,7425.96,3.87,0.02,49.52,1.00,0.03,63064.00,0.04,256.36,-609.46,0.03 +NASDAQ,United States of America,2019.00,7940.36,3.90,0.02,59.88,1.00,0.02,65280.00,0.04,245.75,-610.47,0.02 +NASDAQ,United States of America,2020.00,10201.51,4.01,0.01,47.02,1.00,-0.03,63544.00,0.08,227.14,,0.01 +FTSE 100,United Kingdom,1980.00,,3.33,0.18,21.59,2.32,-0.02,10032.00,0.05,,12.30,0.11 +FTSE 100,United Kingdom,1981.00,,3.33,0.12,31.77,2.02,-0.01,9599.00,0.04,,15.24,0.14 +FTSE 100,United Kingdom,1982.00,,3.33,0.09,28.52,1.75,0.02,9145.00,0.04,,9.77,0.13 +FTSE 100,United Kingdom,1983.00,,3.33,0.05,26.19,1.52,0.04,8691.00,0.04,,4.69,0.11 +FTSE 100,United Kingdom,1984.00,,3.33,0.05,25.88,1.34,0.02,8179.00,0.04,,-0.30,0.12 +FTSE 100,United Kingdom,1985.00,,3.33,0.06,24.09,1.30,0.04,8652.00,0.05,,5.39,0.11 +FTSE 100,United Kingdom,1986.00,,3.33,0.03,12.51,1.47,0.03,10611.00,0.04,,-3.63,0.08 +FTSE 100,United Kingdom,1987.00,,3.33,0.04,15.40,1.64,0.05,13118.00,0.05,,-7.00,0.08 +FTSE 100,United Kingdom,1988.00,,3.33,0.04,12.58,1.78,0.06,15988.00,0.05,,-29.79,0.09 +FTSE 100,United Kingdom,1989.00,,3.33,0.06,15.86,1.64,0.03,16240.00,0.05,,-33.87,0.08 +FTSE 100,United Kingdom,1990.00,2143.50,3.33,0.08,27.28,1.78,0.01,19096.00,0.07,182.19,-20.30,0.09 +FTSE 100,United Kingdom,1991.00,2493.10,3.40,0.07,19.50,1.77,-0.01,19900.00,0.09,185.83,-4.36,0.08 +FTSE 100,United Kingdom,1992.00,2846.50,3.45,0.05,19.41,1.77,,20488.00,0.10,189.27,-8.49,0.07 +FTSE 100,United Kingdom,1993.00,3418.40,3.53,0.03,14.52,1.50,0.02,18390.00,0.10,166.43,-3.90,0.06 +FTSE 100,United Kingdom,1994.00,3065.50,3.49,0.02,17.16,1.53,0.04,19708.00,0.10,187.05,-0.31,0.07 +FTSE 100,United Kingdom,1995.00,3689.30,3.57,0.03,19.03,1.58,0.03,23125.00,0.09,208.44,3.66,0.07 +FTSE 100,United Kingdom,1996.00,4118.50,3.61,0.03,25.23,1.56,0.02,24335.00,0.08,216.82,2.38,0.06 +FTSE 100,United Kingdom,1997.00,5135.50,3.71,0.02,18.33,1.64,0.05,26718.00,0.07,235.67,6.97,0.06 +FTSE 100,United Kingdom,1998.00,5882.58,3.77,0.02,11.35,1.66,0.04,28238.00,0.06,240.04,-11.17,0.05 +FTSE 100,United Kingdom,1999.00,6930.20,3.84,0.02,26.10,1.62,0.03,28668.00,0.06,234.62,-24.12,0.06 +FTSE 100,United Kingdom,2000.00,6222.46,3.79,0.01,28.44,1.52,0.04,28155.00,0.06,223.42,-29.59,0.06 +FTSE 100,United Kingdom,2001.00,5217.35,3.72,0.02,19.39,1.44,0.03,27719.00,0.05,205.70,-37.30,0.05 +FTSE 100,United Kingdom,2002.00,3940.36,3.60,0.02,29.46,1.50,0.02,29982.00,0.05,217.95,-47.84,0.05 +FTSE 100,United Kingdom,2003.00,4476.87,3.65,0.01,32.13,1.63,0.03,34385.00,0.05,240.22,-45.90,0.04 +FTSE 100,United Kingdom,2004.00,4814.30,3.68,0.01,43.15,1.83,0.02,40210.00,0.05,267.20,-61.87,0.04 +FTSE 100,United Kingdom,2005.00,5618.76,3.75,0.02,59.41,1.82,0.03,41933.00,0.05,268.36,-61.73,0.04 +FTSE 100,United Kingdom,2006.00,6220.81,3.79,0.02,61.96,1.84,0.03,44474.00,0.05,277.32,-57.48,0.05 +FTSE 100,United Kingdom,2007.00,6456.91,3.81,0.02,91.69,2.00,0.02,50448.00,0.05,299.29,-63.22,0.05 +FTSE 100,United Kingdom,2008.00,4434.17,3.65,0.04,41.12,1.85,,47270.00,0.06,278.83,-63.77,0.04 +FTSE 100,United Kingdom,2009.00,5412.88,3.73,0.02,74.47,1.57,-0.04,38736.00,0.08,221.24,-38.74,0.03 +FTSE 100,United Kingdom,2010.00,5899.94,3.77,0.02,89.15,1.55,0.02,39537.00,0.08,236.41,-48.09,0.03 +FTSE 100,United Kingdom,2011.00,5572.28,3.75,0.04,98.56,1.60,0.01,42048.00,0.08,249.95,-25.37,0.03 +FTSE 100,United Kingdom,2012.00,5897.81,3.77,0.03,87.86,1.59,0.01,42449.00,0.08,252.36,-33.47,0.02 +FTSE 100,United Kingdom,2013.00,6749.09,3.83,0.02,97.63,1.56,0.02,43401.00,0.08,265.61,-39.09,0.02 +FTSE 100,United Kingdom,2014.00,6566.09,3.82,0.01,59.29,1.65,0.03,47452.00,0.06,287.86,-47.61,0.03 +FTSE 100,United Kingdom,2015.00,6242.32,3.80,,37.19,1.53,0.02,45039.00,0.05,274.30,-43.19,0.02 +FTSE 100,United Kingdom,2016.00,7142.83,3.85,0.01,51.97,1.36,0.02,41048.00,0.05,245.73,-48.76,0.02 +FTSE 100,United Kingdom,2017.00,7687.77,3.89,0.03,57.88,1.29,0.02,40306.00,0.04,242.59,-38.47,0.02 +FTSE 100,United Kingdom,2018.00,6728.13,3.83,0.02,49.52,1.34,0.01,42996.00,0.04,256.36,-34.00,0.03 +FTSE 100,United Kingdom,2019.00,7542.44,3.88,0.02,59.88,1.28,0.01,42354.00,0.04,245.75,-35.06,0.02 +FTSE 100,United Kingdom,2020.00,6460.52,3.81,0.01,47.02,1.28,-0.10,40285.00,0.04,227.14,-9.69,0.01 +Nifty 50,India,1980.00,,3.02,0.11,21.59,7.89,0.07,267.00,0.03,31.21,-5.79,0.11 +Nifty 50,India,1981.00,,3.02,0.13,31.77,8.68,0.06,270.00,0.03,32.45,-5.10,0.14 +Nifty 50,India,1982.00,,3.02,0.08,28.52,9.48,0.03,274.00,0.03,32.86,-4.33,0.13 +Nifty 50,India,1983.00,,3.02,0.12,26.19,10.10,0.07,291.00,0.03,36.37,-4.40,0.11 +Nifty 50,India,1984.00,,3.02,0.08,25.88,11.35,0.04,277.00,0.03,35.45,-3.06,0.12 +Nifty 50,India,1985.00,,3.02,0.06,24.09,12.33,0.05,296.00,0.03,38.17,-5.56,0.11 +Nifty 50,India,1986.00,,3.02,0.09,12.51,12.60,0.05,310.00,0.03,40.39,-4.55,0.08 +Nifty 50,India,1987.00,,3.02,0.09,15.40,12.95,0.04,340.00,0.03,45.23,-3.84,0.08 +Nifty 50,India,1988.00,,3.02,0.09,12.58,13.90,0.10,354.00,0.03,47.76,-4.21,0.09 +Nifty 50,India,1989.00,,3.02,0.07,15.86,16.21,0.06,346.00,0.03,50.04,-3.36,0.08 +Nifty 50,India,1990.00,1048.29,3.02,0.09,27.28,17.49,0.06,368.00,0.06,53.27,-4.49,0.09 +Nifty 50,India,1991.00,1908.85,3.28,0.14,19.50,22.71,0.01,303.00,0.06,42.34,,0.08 +Nifty 50,India,1992.00,2615.37,3.42,0.12,19.41,28.16,0.05,317.00,0.06,45.54,-2.15,0.07 +Nifty 50,India,1993.00,3346.06,3.52,0.06,14.52,31.29,0.05,301.00,0.06,44.45,0.05,0.06 +Nifty 50,India,1994.00,3926.90,3.59,0.10,17.16,31.39,0.07,346.00,0.06,54.86,-0.99,0.07 +Nifty 50,India,1995.00,3110.49,3.49,0.10,19.03,32.42,0.08,374.00,0.06,64.37,-4.25,0.07 +Nifty 50,India,1996.00,3085.20,3.49,0.09,25.23,35.51,0.08,400.00,0.06,69.14,-4.55,0.06 +Nifty 50,India,1997.00,3658.98,3.56,0.07,18.33,36.36,0.04,415.00,0.06,68.70,-5.15,0.06 +Nifty 50,India,1998.00,3055.41,3.49,0.13,11.35,41.36,0.06,413.00,0.06,66.23,-7.01,0.05 +Nifty 50,India,1999.00,5005.82,3.70,0.05,26.10,43.13,0.09,442.00,0.06,69.65,-8.77,0.06 +Nifty 50,India,2000.00,3972.12,3.60,0.04,28.44,45.00,0.04,443.00,0.06,74.60,-4.25,0.06 +Nifty 50,India,2001.00,3262.33,3.51,0.04,19.39,47.22,0.05,452.00,0.06,74.31,-4.25,0.05 +Nifty 50,India,2002.00,3377.28,3.53,0.04,29.46,48.63,0.04,471.00,0.06,80.12,-5.05,0.05 +Nifty 50,India,2003.00,5838.96,3.77,0.04,32.13,46.59,0.08,547.00,0.06,94.72,-4.23,0.04 +Nifty 50,India,2004.00,6602.69,3.82,0.04,43.15,45.26,0.08,628.00,0.06,112.24,-12.66,0.04 +Nifty 50,India,2005.00,9397.93,3.97,0.04,59.41,44.00,0.08,715.00,0.06,131.04,-22.90,0.04 +Nifty 50,India,2006.00,13786.91,4.14,0.06,61.96,45.19,0.08,807.00,0.05,162.70,-29.98,0.05 +Nifty 50,India,2007.00,20286.99,4.31,0.06,91.69,41.18,0.08,1028.00,0.05,205.20,-49.73,0.05 +Nifty 50,India,2008.00,9647.31,3.98,0.08,41.12,43.39,0.03,999.00,0.06,205.00,-62.02,0.04 +Nifty 50,India,2009.00,17464.81,4.24,0.11,74.47,48.33,0.08,1102.00,0.06,230.05,-73.43,0.03 +Nifty 50,India,2010.00,20509.09,4.31,0.12,89.15,45.65,0.08,1358.00,0.06,285.36,-74.62,0.03 +Nifty 50,India,2011.00,15454.92,4.19,0.09,98.56,46.58,0.05,1458.00,0.06,294.23,-119.28,0.03 +Nifty 50,India,2012.00,19426.71,4.29,0.09,87.86,53.37,0.05,1444.00,0.06,289.08,-122.91,0.02 +Nifty 50,India,2013.00,21170.68,4.33,0.11,97.63,58.51,0.06,1450.00,0.06,283.21,-55.38,0.02 +Nifty 50,India,2014.00,27499.42,4.44,0.07,59.29,61.00,0.07,1574.00,0.06,307.21,-60.89,0.03 +Nifty 50,India,2015.00,26117.54,4.42,0.05,37.19,64.11,0.08,1606.00,0.06,327.82,-48.31,0.02 +Nifty 50,India,2016.00,26626.46,4.43,0.05,51.97,67.16,0.08,1733.00,0.05,347.94,-40.53,0.02 +Nifty 50,India,2017.00,34056.83,4.53,0.03,57.88,65.07,0.07,1981.00,0.05,398.20,-83.76,0.02 +Nifty 50,India,2018.00,36068.33,4.56,0.04,49.52,68.37,0.07,1997.00,0.05,401.20,-100.38,0.03 +Nifty 50,India,2019.00,41253.74,4.62,0.04,59.88,70.38,0.04,2101.00,0.07,382.56,-72.57,0.02 +Nifty 50,India,2020.00,47751.33,4.68,0.07,47.02,74.14,-0.08,1901.00,0.06,339.98,-8.31,0.01 +Nikkei 225,Japan,1980.00,6867.86,3.84,0.08,21.59,226.58,0.03,9463.00,0.02,71.01,-10.76,0.11 +Nikkei 225,Japan,1981.00,7518.55,3.88,0.05,31.77,220.45,0.04,10360.00,0.02,71.70,7.48,0.14 +Nikkei 225,Japan,1982.00,7397.27,3.87,0.03,28.52,249.05,0.03,9576.00,0.02,71.96,6.22,0.13 +Nikkei 225,Japan,1983.00,8816.24,3.95,0.02,26.19,237.45,0.04,10421.00,0.03,74.24,19.08,0.11 +Nikkei 225,Japan,1984.00,10567.53,4.02,0.02,25.88,237.59,0.05,10979.00,0.03,81.16,32.25,0.12 +Nikkei 225,Japan,1985.00,12557.45,4.10,0.02,24.09,238.47,0.05,11577.00,0.03,84.14,44.63,0.11 +Nikkei 225,Japan,1986.00,16392.74,4.21,0.01,12.51,168.50,0.03,17113.00,0.03,83.98,76.37,0.08 +Nikkei 225,Japan,1987.00,23232.14,4.37,,15.40,144.62,0.05,20749.00,0.03,86.87,70.12,0.08 +Nikkei 225,Japan,1988.00,27048.26,4.43,0.01,12.58,128.14,0.07,25059.00,0.03,94.91,60.32,0.09 +Nikkei 225,Japan,1989.00,34050.78,4.53,0.02,15.86,137.99,0.05,24823.00,0.02,100.40,41.28,0.08 +Nikkei 225,Japan,1990.00,29437.18,4.47,0.03,27.28,144.82,0.05,25371.00,0.02,104.65,24.33,0.09 +Nikkei 225,Japan,1991.00,24295.57,4.39,0.03,19.50,134.51,0.03,28915.00,0.02,106.64,53.70,0.08 +Nikkei 225,Japan,1992.00,18109.08,4.26,0.02,19.41,126.75,0.01,31415.00,0.02,100.55,80.30,0.07 +Nikkei 225,Japan,1993.00,19100.00,4.28,0.01,14.52,111.23,-0.01,35682.00,0.03,97.13,95.40,0.06 +Nikkei 225,Japan,1994.00,19935.83,4.30,0.01,17.16,102.20,0.01,39200.00,0.03,98.35,93.37,0.07 +Nikkei 225,Japan,1995.00,17329.70,4.24,,19.03,94.11,0.03,43429.00,0.03,101.34,68.88,0.07 +Nikkei 225,Japan,1996.00,21094.61,4.32,,25.23,108.80,0.03,38437.00,0.03,103.53,20.96,0.06 +Nikkei 225,Japan,1997.00,18397.52,4.26,0.02,18.33,121.09,0.01,35022.00,0.04,107.66,46.66,0.06 +Nikkei 225,Japan,1998.00,15355.99,4.19,0.01,11.35,130.82,-0.01,31903.00,0.04,100.48,73.27,0.05 +Nikkei 225,Japan,1999.00,16823.41,4.23,,26.10,113.71,,36027.00,0.05,101.07,70.92,0.06 +Nikkei 225,Japan,2000.00,17145.01,4.23,-0.01,28.44,107.82,0.03,38532.00,0.05,106.05,69.86,0.06 +Nikkei 225,Japan,2001.00,12093.56,4.08,-0.01,19.39,121.52,,33846.00,0.05,99.62,28.41,0.05 +Nikkei 225,Japan,2002.00,10123.14,4.01,-0.01,29.46,125.27,,32289.00,0.06,98.45,55.59,0.05 +Nikkei 225,Japan,2003.00,9311.42,3.97,,32.13,115.92,0.02,34808.00,0.05,102.29,75.37,0.04 +Nikkei 225,Japan,2004.00,11179.25,4.05,,43.15,108.16,0.02,37689.00,0.05,107.12,97.35,0.04 +Nikkei 225,Japan,2005.00,12422.58,4.09,,59.41,110.14,0.02,37218.00,0.05,108.86,71.78,0.04 +Nikkei 225,Japan,2006.00,16110.38,4.21,,61.96,116.35,0.01,35434.00,0.04,113.30,64.06,0.05 +Nikkei 225,Japan,2007.00,17002.24,4.23,,91.69,117.77,0.02,35275.00,0.04,116.60,85.46,0.05 +Nikkei 225,Japan,2008.00,12165.35,4.09,0.01,41.12,103.38,-0.01,39339.00,0.04,112.83,22.62,0.04 +Nikkei 225,Japan,2009.00,9346.11,3.97,-0.01,74.47,93.60,-0.05,40855.00,0.05,89.39,28.82,0.03 +Nikkei 225,Japan,2010.00,10006.49,4.00,-0.01,89.15,87.75,0.04,44508.00,0.05,102.78,83.25,0.03 +Nikkei 225,Japan,2011.00,9425.42,3.97,,98.56,79.71,,48168.00,0.05,99.93,-33.44,0.03 +Nikkei 225,Japan,2012.00,9102.56,3.96,,87.86,79.81,0.01,48603.00,0.05,100.06,-95.94,0.02 +Nikkei 225,Japan,2013.00,13577.87,4.13,,97.63,97.56,0.02,40454.00,0.04,99.46,-119.44,0.02 +Nikkei 225,Japan,2014.00,15460.43,4.19,0.03,59.29,105.86,,38109.00,0.04,101.24,-119.57,0.03 +Nikkei 225,Japan,2015.00,19203.77,4.28,0.01,37.19,121.02,0.01,34524.00,0.04,100.00,-18.39,0.02 +Nikkei 225,Japan,2016.00,16920.48,4.23,,51.97,108.76,0.01,38762.00,0.03,100.22,48.78,0.02 +Nikkei 225,Japan,2017.00,20209.03,4.31,,57.88,112.14,0.02,38387.00,0.03,102.84,45.27,0.02 +Nikkei 225,Japan,2018.00,22310.73,4.35,0.01,49.52,110.43,,39159.00,0.03,103.91,11.56,0.03 +Nikkei 225,Japan,2019.00,21697.23,4.34,,59.88,109.03,,40113.00,0.02,101.19,8.66,0.02 +Nikkei 225,Japan,2020.00,22705.02,4.36,,47.02,106.76,-0.05,,0.03,90.94,,0.01 +HSI,Hong Kong,1980.00,,3.46,,21.59,,0.10,5700.00,,,-0.15,0.11 +HSI,Hong Kong,1981.00,,3.46,,31.77,5.59,0.09,5991.00,,,-0.47,0.14 +HSI,Hong Kong,1982.00,,3.46,0.11,28.52,6.07,0.03,6134.00,,,0.18,0.13 +HSI,Hong Kong,1983.00,,3.46,0.10,26.19,7.26,0.06,5595.00,,,0.54,0.11 +HSI,Hong Kong,1984.00,,3.46,0.09,25.88,7.82,0.10,6208.00,,,2.68,0.12 +HSI,Hong Kong,1985.00,,3.46,0.04,24.09,7.79,0.01,6543.00,,,3.58,0.11 +HSI,Hong Kong,1986.00,,3.46,0.03,12.51,7.80,0.11,7435.00,,,3.74,0.08 +HSI,Hong Kong,1987.00,,3.46,0.06,15.40,7.80,0.13,9071.00,,,5.27,0.08 +HSI,Hong Kong,1988.00,2884.51,3.46,0.08,12.58,7.81,0.09,10610.00,,,5.33,0.09 +HSI,Hong Kong,1989.00,2556.72,3.41,0.10,15.86,7.80,0.02,12098.00,,,7.89,0.08 +HSI,Hong Kong,1990.00,2781.05,3.44,0.10,27.28,7.79,0.04,13486.00,,,6.57,0.09 +HSI,Hong Kong,1991.00,3027.13,3.48,0.11,19.50,7.77,0.06,15466.00,0.02,,6.05,0.08 +HSI,Hong Kong,1992.00,3829.37,3.58,0.10,19.41,7.74,0.06,17976.00,0.02,,5.42,0.07 +HSI,Hong Kong,1993.00,5545.98,3.74,0.09,14.52,7.74,0.06,20396.00,0.02,,8.12,0.06 +HSI,Hong Kong,1994.00,7695.99,3.89,0.09,17.16,7.73,0.06,22503.00,0.02,,1.57,0.07 +HSI,Hong Kong,1995.00,9453.52,3.98,0.09,19.03,7.74,0.02,23497.00,0.03,,-6.48,0.07 +HSI,Hong Kong,1996.00,9098.46,3.96,0.06,25.23,7.73,0.04,24818.00,0.03,,-2.37,0.06 +HSI,Hong Kong,1997.00,11646.54,4.07,0.06,18.33,7.74,0.05,27330.00,0.02,,-5.95,0.06 +HSI,Hong Kong,1998.00,13294.70,4.12,0.03,11.35,7.75,-0.06,25809.00,0.05,,0.91,0.05 +HSI,Hong Kong,1999.00,9484.47,3.98,-0.04,26.10,7.76,0.03,25092.00,0.06,,8.56,0.06 +HSI,Hong Kong,2000.00,12859.93,4.11,-0.04,28.44,7.79,0.08,25757.00,0.05,7.88,7.57,0.06 +HSI,Hong Kong,2001.00,15838.33,4.20,-0.02,19.39,7.80,0.01,25230.00,0.05,6.87,7.95,0.05 +HSI,Hong Kong,2002.00,12446.85,4.10,-0.03,29.46,7.80,0.02,24666.00,0.07,5.87,13.57,0.05 +HSI,Hong Kong,2003.00,10321.22,4.01,-0.03,32.13,7.79,0.03,23977.00,0.08,5.01,14.68,0.04 +HSI,Hong Kong,2004.00,10346.25,4.01,,43.15,7.79,0.09,24928.00,0.07,5.07,14.73,0.04 +HSI,Hong Kong,2005.00,12988.18,4.11,0.01,59.41,7.78,0.07,26650.00,0.06,5.10,22.18,0.04 +HSI,Hong Kong,2006.00,14402.00,4.16,0.02,61.96,7.77,0.07,28224.00,0.05,5.11,21.60,0.05 +HSI,Hong Kong,2007.00,17118.31,4.23,0.02,91.69,7.80,0.06,30594.00,0.04,4.15,22.59,0.05 +HSI,Hong Kong,2008.00,23700.45,4.37,0.04,41.12,7.79,0.02,31516.00,0.04,4.05,22.31,0.04 +HSI,Hong Kong,2009.00,20606.72,4.31,0.01,74.47,7.75,-0.02,30697.00,0.05,3.70,16.85,0.03 +HSI,Hong Kong,2010.00,18203.01,4.26,0.02,89.15,7.77,0.07,32550.00,0.04,3.91,13.43,0.03 +HSI,Hong Kong,2011.00,21336.42,4.33,0.05,98.56,7.78,0.05,35142.00,0.03,3.93,9.57,0.03 +HSI,Hong Kong,2012.00,21414.34,4.33,0.04,87.86,7.76,0.02,36731.00,0.03,3.95,2.97,0.02 +HSI,Hong Kong,2013.00,20686.69,4.32,0.04,97.63,7.76,0.03,38404.00,0.03,3.89,1.65,0.02 +HSI,Hong Kong,2014.00,22654.24,4.36,0.04,59.29,7.75,0.03,40315.00,0.03,3.60,0.60,0.03 +HSI,Hong Kong,2015.00,23287.69,4.37,0.03,37.19,7.75,0.02,42432.00,0.03,3.45,7.39,0.02 +HSI,Hong Kong,2016.00,24145.21,4.38,0.02,51.97,7.76,0.02,43731.00,0.03,3.46,7.33,0.02 +HSI,Hong Kong,2017.00,21511.54,4.33,0.01,57.88,7.79,0.04,46166.00,0.03,3.50,3.44,0.02 +HSI,Hong Kong,2018.00,26453.67,4.42,0.02,49.52,7.84,0.03,48543.00,0.03,3.52,-0.77,0.03 +HSI,Hong Kong,2019.00,28804.14,4.46,0.03,59.88,7.84,-0.02,48354.00,0.03,3.75,5.64,0.02 +HSI,Hong Kong,2020.00,27650.63,4.44,,47.02,7.76,-0.06,46324.00,0.06,,6.32,0.01 +SZCOMP,China,1980.00,,3.07,,21.59,,0.08,195.00,0.05,,-1.15,0.11 +SZCOMP,China,1981.00,,3.07,,31.77,1.71,0.05,197.00,0.05,,,0.14 +SZCOMP,China,1982.00,,3.07,,28.52,1.90,0.09,203.00,0.05,,4.81,0.13 +SZCOMP,China,1983.00,,3.07,,26.19,1.98,0.11,225.00,0.04,,2.57,0.11 +SZCOMP,China,1984.00,,3.07,,25.88,2.33,0.15,251.00,0.03,,0.05,0.12 +SZCOMP,China,1985.00,,3.07,,24.09,2.94,0.13,294.00,0.02,,-12.50,0.11 +SZCOMP,China,1986.00,,3.07,,12.51,3.46,0.09,282.00,0.02,,-7.39,0.08 +SZCOMP,China,1987.00,,3.07,0.07,15.40,3.73,0.12,252.00,0.02,,0.29,0.08 +SZCOMP,China,1988.00,,3.07,0.19,12.58,3.73,0.11,284.00,0.02,,-4.06,0.09 +SZCOMP,China,1989.00,,3.07,0.18,15.86,3.77,0.04,311.00,0.02,,-4.93,0.08 +SZCOMP,China,1990.00,,3.07,0.03,27.28,4.79,0.04,318.00,0.02,,10.67,0.09 +SZCOMP,China,1991.00,,3.07,0.04,19.50,5.33,0.09,333.00,0.03,,11.60,0.08 +SZCOMP,China,1992.00,,3.07,0.06,19.41,5.52,0.14,366.00,0.03,,5.00,0.07 +SZCOMP,China,1993.00,,3.07,0.15,14.52,5.78,0.14,377.00,0.02,,-11.79,0.06 +SZCOMP,China,1994.00,,3.07,0.24,17.16,8.64,0.13,473.00,0.02,,7.36,0.07 +SZCOMP,China,1995.00,,3.07,0.17,19.03,8.37,0.11,610.00,0.03,,11.96,0.07 +SZCOMP,China,1996.00,,3.07,0.08,25.23,8.34,0.10,709.00,0.03,,17.55,0.06 +SZCOMP,China,1997.00,1166.51,3.07,0.03,18.33,8.32,0.09,782.00,0.03,,42.82,0.06 +SZCOMP,China,1998.00,1257.32,3.10,-0.01,11.35,8.30,0.08,829.00,0.03,,43.84,0.05 +SZCOMP,China,1999.00,1381.49,3.14,-0.01,26.10,8.28,0.08,873.00,0.03,,30.64,0.06 +SZCOMP,China,2000.00,1897.42,3.28,,28.44,8.28,0.08,959.00,0.03,,28.79,0.06 +SZCOMP,China,2001.00,1940.96,3.29,0.01,19.39,8.28,0.08,1053.00,0.03,,28.09,0.05 +SZCOMP,China,2002.00,1561.31,3.19,-0.01,29.46,8.28,0.09,1149.00,0.03,,37.38,0.05 +SZCOMP,China,2003.00,1467.88,3.17,0.01,32.13,8.28,0.10,1289.00,0.04,,35.82,0.04 +SZCOMP,China,2004.00,1467.57,3.17,0.04,43.15,8.28,0.10,1509.00,0.04,625.22,51.17,0.04 +SZCOMP,China,2005.00,1144.54,3.06,0.02,59.41,8.19,0.11,1753.00,0.04,733.66,124.63,0.04 +SZCOMP,China,2006.00,1687.14,3.23,0.02,61.96,7.97,0.13,2099.00,0.04,893.13,208.92,0.05 +SZCOMP,China,2007.00,4329.44,3.64,0.05,91.69,7.61,0.14,2694.00,0.04,1149.72,308.04,0.05 +SZCOMP,China,2008.00,2912.90,3.46,0.06,41.12,6.95,0.10,3468.00,0.04,1475.66,348.83,0.04 +SZCOMP,China,2009.00,2737.01,3.44,-0.01,74.47,6.83,0.09,3832.00,0.04,1611.95,220.13,0.03 +SZCOMP,China,2010.00,2795.88,3.45,0.03,89.15,6.77,0.11,4550.00,0.04,1924.32,222.40,0.03 +SZCOMP,China,2011.00,2639.19,3.42,0.06,98.56,6.46,0.10,5618.00,0.04,2421.37,180.89,0.03 +SZCOMP,China,2012.00,2211.11,3.34,0.03,87.86,6.31,0.08,6317.00,0.04,2690.09,231.87,0.02 +SZCOMP,China,2013.00,2182.52,3.34,0.03,97.63,6.15,0.08,7051.00,0.05,2935.34,234.87,0.02 +SZCOMP,China,2014.00,2279.75,3.36,0.02,59.29,6.16,0.07,7679.00,0.05,3184.24,221.55,0.03 +SZCOMP,China,2015.00,3657.40,3.56,0.01,37.19,6.28,0.07,8067.00,0.05,3202.50,358.84,0.02 +SZCOMP,China,2016.00,2978.14,3.47,0.02,51.97,6.64,0.07,8148.00,0.05,3153.12,255.48,0.02 +SZCOMP,China,2017.00,3257.35,3.51,0.02,57.88,6.76,0.07,8879.00,0.04,3460.33,215.70,0.02 +SZCOMP,China,2018.00,2920.18,3.47,0.02,49.52,6.61,0.07,9977.00,0.04,3868.46,106.71,0.03 +SZCOMP,China,2019.00,2928.94,3.47,0.03,59.88,6.91,0.06,10217.00,0.05,3823.41,164.99,0.02 +SZCOMP,China,2020.00,3109.78,3.49,0.02,47.02,6.90,0.02,10500.00,0.05,3853.81,366.14,0.01 +DAX 30,Germany,1980.00,480.90,2.68,0.05,21.59,1.82,0.01,6206.00,0.03,,-22.41,0.11 +DAX 30,Germany,1981.00,490.40,2.69,0.06,31.77,2.26,0.01,5220.00,0.05,,-16.02,0.14 +DAX 30,Germany,1982.00,552.80,2.74,0.05,28.52,2.43,,5069.00,0.07,,-10.51,0.13 +DAX 30,Germany,1983.00,774.00,2.89,0.03,26.19,2.55,0.02,5044.00,0.08,,-11.79,0.11 +DAX 30,Germany,1984.00,820.90,2.91,0.02,25.88,2.85,0.03,4762.00,0.08,,-10.35,0.12 +DAX 30,Germany,1985.00,1366.20,3.14,0.02,24.09,2.94,0.02,4821.00,0.08,,-7.63,0.11 +DAX 30,Germany,1986.00,1432.30,3.16,,12.51,2.17,0.02,6883.00,0.08,,-1.98,0.08 +DAX 30,Germany,1987.00,1000.00,3.00,,15.40,1.80,0.01,8527.00,0.08,,-2.15,0.08 +DAX 30,Germany,1988.00,1327.87,3.12,0.01,12.58,1.76,0.04,9168.00,0.08,,-2.48,0.09 +DAX 30,Germany,1989.00,1790.37,3.25,0.03,15.86,1.88,0.04,9083.00,0.07,,-4.41,0.08 +DAX 30,Germany,1990.00,1398.20,3.15,0.03,27.28,1.62,0.05,11404.00,0.06,,-1.74,0.09 +DAX 30,Germany,1991.00,1578.00,3.20,0.04,19.50,1.66,0.05,11942.00,0.06,237.43,-4.66,0.08 +DAX 30,Germany,1992.00,1545.10,3.19,0.05,19.41,1.56,0.02,13518.00,0.08,254.79,-5.47,0.07 +DAX 30,Germany,1993.00,2266.70,3.36,0.04,14.52,1.65,-0.01,13049.00,0.09,225.80,0.53,0.06 +DAX 30,Germany,1994.00,2106.60,3.32,0.03,17.16,1.62,0.02,13844.00,0.10,234.55,1.84,0.07 +DAX 30,Germany,1995.00,2253.90,3.35,0.02,19.03,1.43,0.02,16186.00,0.09,271.52,5.38,0.07 +DAX 30,Germany,1996.00,2888.70,3.46,0.01,25.23,1.50,0.01,15588.00,0.10,256.13,9.12,0.06 +DAX 30,Germany,1997.00,4224.30,3.63,0.02,18.33,1.73,0.02,13786.00,0.11,228.78,12.19,0.06 +DAX 30,Germany,1998.00,5002.39,3.70,0.01,11.35,1.76,0.02,13953.00,0.11,233.65,14.07,0.05 +DAX 30,Germany,1999.00,6958.14,3.84,0.01,26.10,1.07,0.02,26735.00,0.11,438.87,12.13,0.06 +DAX 30,Germany,2000.00,6433.61,3.81,0.01,28.44,0.92,0.03,23695.00,0.10,400.23,3.30,0.06 +DAX 30,Germany,2001.00,5160.10,3.71,0.02,19.39,0.90,0.02,23628.00,0.09,395.80,31.65,0.05 +DAX 30,Germany,2002.00,2892.63,3.46,0.01,29.46,0.95,,25197.00,0.10,411.33,88.34,0.05 +DAX 30,Germany,2003.00,3965.16,3.60,0.01,32.13,1.13,-0.01,30310.00,0.11,496.31,94.41,0.04 +DAX 30,Germany,2004.00,4256.08,3.63,0.02,43.15,1.24,0.01,34107.00,0.11,563.82,146.36,0.04 +DAX 30,Germany,2005.00,5408.25,3.73,0.02,59.41,1.24,0.01,34520.00,0.12,571.36,148.05,0.04 +DAX 30,Germany,2006.00,6596.91,3.82,0.02,61.96,1.26,0.04,36354.00,0.11,618.70,162.20,0.05 +DAX 30,Germany,2007.00,8067.31,3.91,0.02,91.69,1.37,0.03,41640.00,0.09,714.38,231.95,0.05 +DAX 30,Germany,2008.00,4810.20,3.68,0.03,41.12,1.47,0.01,45613.00,0.08,750.91,227.47,0.04 +DAX 30,Germany,2009.00,5957.43,3.78,,74.47,1.39,-0.06,41650.00,0.08,603.23,170.94,0.03 +DAX 30,Germany,2010.00,6914.19,3.84,0.01,89.15,1.33,0.04,41572.00,0.08,669.57,178.90,0.03 +DAX 30,Germany,2011.00,5898.35,3.77,0.02,98.56,1.39,0.04,46706.00,0.07,758.60,184.02,0.03 +DAX 30,Germany,2012.00,7612.39,3.88,0.02,87.86,1.29,,43856.00,0.07,710.95,215.16,0.02 +DAX 30,Germany,2013.00,9552.16,3.98,0.02,97.63,1.33,,46299.00,0.07,743.97,215.01,0.02 +DAX 30,Germany,2014.00,9805.55,3.99,0.01,59.29,1.33,0.02,48024.00,0.07,786.55,257.40,0.03 +DAX 30,Germany,2015.00,10743.01,4.03,0.01,37.19,1.11,0.01,41103.00,0.06,683.20,255.02,0.02 +DAX 30,Germany,2016.00,11481.06,4.06,,51.97,1.11,0.02,42136.00,0.06,716.94,255.97,0.02 +DAX 30,Germany,2017.00,12917.64,4.11,0.02,57.88,1.13,0.03,44553.00,0.06,752.02,257.66,0.02 +DAX 30,Germany,2018.00,10558.96,4.02,0.02,49.52,1.18,0.01,47811.00,0.05,795.96,243.72,0.03 +DAX 30,Germany,2019.00,13249.01,4.12,0.01,59.88,1.12,0.01,46468.00,0.05,737.94,223.82,0.02 +DAX 30,Germany,2020.00,13718.78,4.14,0.01,47.02,1.14,-0.05,45724.00,0.06,678.29,221.53,0.01 +CAC 40,France,1980.00,394.44,2.60,0.14,21.59,4.23,0.02,1938.00,,19.77,-1.64,0.11 +CAC 40,France,1981.00,325.88,2.51,0.13,31.77,5.43,0.01,1693.00,,16.94,-1.38,0.14 +CAC 40,France,1982.00,353.24,2.55,0.12,28.52,6.58,0.03,1600.00,,15.58,-2.19,0.13 +CAC 40,France,1983.00,552.60,2.74,0.09,26.19,7.62,0.01,1524.00,0.09,14.93,-0.23,0.11 +CAC 40,France,1984.00,643.20,2.81,0.08,25.88,8.74,0.02,1436.00,0.10,13.97,0.10,0.12 +CAC 40,France,1985.00,930.21,2.97,0.06,24.09,8.99,0.02,1488.00,0.10,14.60,-0.31,0.11 +CAC 40,France,1986.00,1403.64,3.15,0.03,12.51,6.93,0.02,2064.00,0.11,19.92,-0.14,0.08 +CAC 40,France,1987.00,1000.00,3.00,0.03,15.40,6.01,0.03,2485.00,0.11,23.51,-1.56,0.08 +CAC 40,France,1988.00,1573.94,3.20,0.03,12.58,5.96,0.05,2695.00,0.10,25.43,-1.02,0.09 +CAC 40,France,1989.00,2001.08,3.30,0.03,15.86,6.38,0.04,2697.00,0.10,25.28,-1.07,0.08 +CAC 40,France,1990.00,1509.00,3.18,0.03,27.28,5.44,0.03,3322.00,0.09,31.36,-1.52,0.09 +CAC 40,France,1991.00,1765.70,3.25,0.03,19.50,5.64,0.01,3304.00,0.10,30.80,-0.61,0.08 +CAC 40,France,1992.00,1857.80,3.27,0.02,19.41,5.30,0.02,3630.00,0.11,33.31,1.43,0.07 +CAC 40,France,1993.00,2268.20,3.36,0.02,14.52,5.66,-0.01,3412.00,0.12,30.38,3.39,0.06 +CAC 40,France,1994.00,1881.20,3.27,0.02,17.16,5.55,0.02,3582.00,0.12,31.23,3.18,0.07 +CAC 40,France,1995.00,1872.00,3.27,0.02,19.03,4.99,0.02,4099.00,0.12,36.32,3.90,0.07 +CAC 40,France,1996.00,2315.70,3.36,0.02,25.23,5.12,0.01,4097.00,0.12,35.44,4.36,0.06 +CAC 40,France,1997.00,2998.90,3.48,0.01,18.33,5.84,0.02,3694.00,0.12,32.50,6.67,0.06 +CAC 40,France,1998.00,3942.66,3.60,0.01,11.35,5.90,0.04,3807.00,0.12,33.61,6.29,0.05 +CAC 40,France,1999.00,5958.32,3.78,0.01,26.10,1.07,0.03,24682.00,0.11,215.66,35.72,0.06 +CAC 40,France,2000.00,5926.42,3.77,0.02,28.44,0.92,0.04,22420.00,0.10,197.71,18.15,0.06 +CAC 40,France,2001.00,4624.58,3.67,0.02,19.39,0.90,0.02,22453.00,0.09,193.29,21.66,0.05 +CAC 40,France,2002.00,3063.91,3.49,0.02,29.46,0.95,0.01,24293.00,0.09,203.97,29.88,0.05 +CAC 40,France,2003.00,3557.90,3.55,0.02,32.13,1.13,0.01,29634.00,0.09,241.52,26.31,0.04 +CAC 40,France,2004.00,3821.16,3.58,0.02,43.15,1.24,0.03,33803.00,0.09,268.87,21.46,0.04 +CAC 40,France,2005.00,4715.23,3.67,0.02,59.41,1.24,0.02,34773.00,0.09,269.11,1.88,0.04 +CAC 40,France,2006.00,5541.75,3.74,0.02,61.96,1.26,0.02,36474.00,0.09,272.13,-5.41,0.05 +CAC 40,France,2007.00,5614.08,3.75,0.01,91.69,1.37,0.02,41561.00,0.08,309.42,-19.00,0.05 +CAC 40,France,2008.00,3217.97,3.51,0.03,41.12,1.47,,45519.00,0.07,325.40,-33.94,0.04 +CAC 40,France,2009.00,3936.33,3.60,,74.47,1.39,-0.03,41740.00,0.09,286.02,-21.37,0.03 +CAC 40,France,2010.00,3804.78,3.58,0.02,89.15,1.33,0.02,40678.00,0.09,273.17,-34.15,0.03 +CAC 40,France,2011.00,3159.81,3.50,0.02,98.56,1.39,0.02,43848.00,0.09,297.86,-55.81,0.03 +CAC 40,France,2012.00,3641.07,3.56,0.02,87.86,1.29,,40872.00,0.10,278.07,-34.78,0.02 +CAC 40,France,2013.00,4295.95,3.63,0.01,97.63,1.33,0.01,42605.00,0.10,291.15,-29.09,0.02 +CAC 40,France,2014.00,4272.75,3.63,0.01,59.29,1.33,0.01,43069.00,0.10,293.61,-32.71,0.03 +CAC 40,France,2015.00,4637.06,3.67,,37.19,1.11,0.01,36653.00,0.10,254.50,-13.82,0.02 +CAC 40,France,2016.00,4862.31,3.69,,51.97,1.11,0.01,37063.00,0.10,254.30,-14.96,0.02 +CAC 40,France,2017.00,5312.56,3.73,0.01,57.88,1.13,0.02,38781.00,0.09,263.05,-27.63,0.02 +CAC 40,France,2018.00,4730.69,3.67,0.02,49.52,1.18,0.02,41547.00,0.09,275.76,-29.02,0.03 +CAC 40,France,2019.00,5978.06,3.78,0.01,59.88,1.12,0.02,40380.00,0.08,266.63,-26.59,0.02 +CAC 40,France,2020.00,5551.41,3.74,,47.02,1.14,-0.08,38625.00,0.08,241.71,-57.65,0.01 +IEX 35,Spain,1980.00,,3.38,0.16,21.59,71.78,0.02,37.00,,,-0.04,0.11 +IEX 35,Spain,1981.00,,3.38,0.15,31.77,92.33,,32.00,,,-0.03,0.14 +IEX 35,Spain,1982.00,,3.38,0.14,28.52,109.92,0.01,31.00,,,-0.03,0.13 +IEX 35,Spain,1983.00,,3.38,0.12,26.19,143.54,0.02,27.00,,,-0.02,0.11 +IEX 35,Spain,1984.00,,3.38,0.11,25.88,160.91,0.02,27.00,,,0.01,0.12 +IEX 35,Spain,1985.00,,3.38,0.09,24.09,170.20,0.02,28.00,,,0.01,0.11 +IEX 35,Spain,1986.00,,3.38,0.09,12.51,140.14,0.03,39.00,,,0.02,0.08 +IEX 35,Spain,1987.00,2407.10,3.38,0.05,15.40,123.51,0.06,50.00,0.20,,-0.02,0.08 +IEX 35,Spain,1988.00,2727.50,3.44,0.05,12.58,116.49,0.05,58.00,0.19,,-0.05,0.09 +IEX 35,Spain,1989.00,3000.00,3.48,0.07,15.86,118.34,0.05,64.00,0.17,,-0.10,0.08 +IEX 35,Spain,1990.00,2248.80,3.35,0.07,27.28,101.95,0.04,83.00,0.15,,-0.13,0.09 +IEX 35,Spain,1991.00,2603.30,3.42,0.06,19.50,103.87,0.03,89.00,0.16,,-0.14,0.08 +IEX 35,Spain,1992.00,2344.57,3.37,0.06,19.41,102.47,0.01,97.00,0.17,,-0.14,0.07 +IEX 35,Spain,1993.00,3615.22,3.56,0.05,14.52,127.31,-0.01,80.00,0.21,,-0.05,0.06 +IEX 35,Spain,1994.00,3087.68,3.49,0.05,17.16,133.89,0.02,81.00,0.22,,-0.03,0.07 +IEX 35,Spain,1995.00,3630.76,3.56,0.05,19.03,124.68,0.03,93.00,0.21,0.60,-0.04,0.07 +IEX 35,Spain,1996.00,5154.77,3.71,0.04,25.23,126.68,0.03,97.00,0.20,0.63,-0.01,0.06 +IEX 35,Spain,1997.00,7255.40,3.86,0.02,18.33,146.45,0.04,89.00,0.18,0.59,0.01,0.06 +IEX 35,Spain,1998.00,9836.60,3.99,0.02,11.35,149.37,0.04,93.00,0.16,0.62,-0.02,0.05 +IEX 35,Spain,1999.00,11641.40,4.07,0.02,26.10,1.07,0.04,15721.00,0.14,103.49,-12.28,0.06 +IEX 35,Spain,2000.00,9109.80,3.96,0.03,28.44,0.92,0.05,14750.00,0.12,97.13,-17.69,0.06 +IEX 35,Spain,2001.00,8397.60,3.92,0.04,19.39,0.90,0.04,15369.00,0.11,99.40,-14.28,0.05 +IEX 35,Spain,2002.00,6036.90,3.78,0.03,29.46,0.95,0.03,17107.00,0.11,108.02,-14.11,0.05 +IEX 35,Spain,2003.00,7737.20,3.89,0.03,32.13,1.13,0.03,21511.00,0.11,133.45,-20.02,0.04 +IEX 35,Spain,2004.00,9080.80,3.96,0.03,43.15,1.24,0.03,24907.00,0.11,151.49,-39.56,0.04 +IEX 35,Spain,2005.00,10733.90,4.03,0.03,59.41,1.24,0.04,26429.00,0.09,158.16,-55.42,0.04 +IEX 35,Spain,2006.00,14146.50,4.15,0.04,61.96,1.26,0.04,28389.00,0.08,168.08,-71.77,0.05 +IEX 35,Spain,2007.00,15182.29,4.18,0.03,91.69,1.37,0.04,32591.00,0.08,190.13,-85.17,0.05 +IEX 35,Spain,2008.00,9195.80,3.96,0.04,41.12,1.47,0.01,35511.00,0.11,207.17,-77.28,0.04 +IEX 35,Spain,2009.00,11940.00,4.08,,74.47,1.39,-0.04,32170.00,0.18,172.86,-13.00,0.03 +IEX 35,Spain,2010.00,9859.10,3.99,0.02,89.15,1.33,,30532.00,0.20,162.09,-14.57,0.03 +IEX 35,Spain,2011.00,8566.30,3.93,0.03,98.56,1.39,-0.01,31678.00,0.21,170.26,4.10,0.03 +IEX 35,Spain,2012.00,8167.50,3.91,0.02,87.86,1.29,-0.03,28323.00,0.25,147.38,27.36,0.02 +IEX 35,Spain,2013.00,9916.70,4.00,0.01,97.63,1.33,-0.01,29068.00,0.26,151.68,53.24,0.02 +IEX 35,Spain,2014.00,10279.50,4.01,,59.29,1.33,0.01,29501.00,0.24,155.09,42.50,0.03 +IEX 35,Spain,2015.00,9544.20,3.98,-0.01,37.19,1.11,0.04,25742.00,0.22,135.11,36.35,0.02 +IEX 35,Spain,2016.00,9352.10,3.97,,51.97,1.11,0.03,26523.00,0.20,139.01,49.16,0.02 +IEX 35,Spain,2017.00,10043.90,4.00,0.02,57.88,1.13,0.03,28170.00,0.17,148.80,47.33,0.02 +IEX 35,Spain,2018.00,8539.90,3.93,0.02,49.52,1.18,0.02,30389.00,0.15,158.33,38.70,0.03 +IEX 35,Spain,2019.00,9549.20,3.98,0.01,59.88,1.12,0.02,29565.00,0.14,155.49,41.94,0.02 +IEX 35,Spain,2020.00,8073.70,3.91,,47.02,1.14,-0.11,27057.00,0.16,143.05,19.10,0.01 diff --git a/verina_daria_lab_4/main.py b/verina_daria_lab_4/main.py new file mode 100644 index 0000000..c0a4909 --- /dev/null +++ b/verina_daria_lab_4/main.py @@ -0,0 +1,32 @@ +import pandas as pd +from sklearn.cluster import AgglomerativeClustering +from sklearn.preprocessing import StandardScaler +import matplotlib.pyplot as plt + +# Загрузка данных +df = pd.read_csv('economica.csv') + +# Выбор переменных для кластеризации +selected_columns = ['gdppercent', 'oil_prices'] + +# Предварительная обработка данных +X = df[selected_columns] + +# Заполнение пропущенных значений +X.fillna(X.mean(), inplace=True) + +# Стандартизация данных +scaler = StandardScaler() +X_scaled = scaler.fit_transform(X) + +# Кластеризация методом linkage +cluster = AgglomerativeClustering(n_clusters=3, linkage='ward') +df['cluster'] = cluster.fit_predict(X_scaled) + +# Визуализация кластеров +plt.scatter(X_scaled[:, 0], X_scaled[:, 1], c=df['cluster'], cmap='Dark2') +plt.xlabel('GDP Percent (Standardized)') +plt.ylabel('Oil Prices (Standardized)') +plt.title('Clustering Results') +plt.savefig(f"result.png") +plt.show() diff --git a/verina_daria_lab_4/result.png b/verina_daria_lab_4/result.png new file mode 100644 index 0000000000000000000000000000000000000000..d26ee49e05f49e0a65dfe86b490f58ff71642d29 GIT binary patch literal 52506 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 F{{zllUT6RS literal 0 HcmV?d00001