1051 lines
70 KiB
TeX
1051 lines
70 KiB
TeX
\documentclass[a4paper]{article}
|
|
|
|
\usepackage[breakable]{tcolorbox}
|
|
\usepackage{parskip} % Stop auto-indenting (to mimic markdown behaviour)
|
|
|
|
\usepackage{fancyhdr}
|
|
\pagestyle{fancy}
|
|
\lhead{Analiza Szeregów Czasowych}
|
|
\rhead{\makebox[\textwidth][r]{M. Kaczmarek, P. Wilma}}
|
|
\renewcommand{\headrulewidth}{0pt}
|
|
|
|
|
|
|
|
% Basic figure setup, for now with no caption control since it's done
|
|
% automatically by Pandoc (which extracts  syntax from Markdown).
|
|
\usepackage{graphicx}
|
|
% Keep aspect ratio if custom image width or height is specified
|
|
\setkeys{Gin}{keepaspectratio}
|
|
% Maintain compatibility with old templates. Remove in nbconvert 6.0
|
|
\let\Oldincludegraphics\includegraphics
|
|
% Ensure that by default, figures have no caption (until we provide a
|
|
% proper Figure object with a Caption API and a way to capture that
|
|
% in the conversion process - todo).
|
|
\usepackage{caption}
|
|
\DeclareCaptionFormat{nocaption}{}
|
|
\captionsetup{format=nocaption,aboveskip=0pt,belowskip=0pt}
|
|
|
|
\usepackage{float}
|
|
\floatplacement{figure}{H} % forces figures to be placed at the correct location
|
|
\usepackage{xcolor} % Allow colors to be defined
|
|
\usepackage{enumerate} % Needed for markdown enumerations to work
|
|
\usepackage{geometry} % Used to adjust the document margins
|
|
\usepackage{amsmath} % Equations
|
|
\usepackage{amssymb} % Equations
|
|
\usepackage{textcomp} % defines textquotesingle
|
|
% Hack from http://tex.stackexchange.com/a/47451/13684:
|
|
\AtBeginDocument{%
|
|
\def\PYZsq{\textquotesingle}% Upright quotes in Pygmentized code
|
|
}
|
|
\usepackage{upquote} % Upright quotes for verbatim code
|
|
\usepackage{eurosym} % defines \euro
|
|
|
|
\usepackage{iftex}
|
|
\ifPDFTeX
|
|
\usepackage[T1]{fontenc}
|
|
\IfFileExists{alphabeta.sty}{
|
|
\usepackage{alphabeta}
|
|
}{
|
|
\usepackage[mathletters]{ucs}
|
|
\usepackage[utf8x]{inputenc}
|
|
}
|
|
\else
|
|
\usepackage{fontspec}
|
|
\usepackage{unicode-math}
|
|
\fi
|
|
|
|
\usepackage{fancyvrb} % verbatim replacement that allows latex
|
|
\usepackage{grffile} % extends the file name processing of package graphics
|
|
% to support a larger range
|
|
\makeatletter % fix for old versions of grffile with XeLaTeX
|
|
\@ifpackagelater{grffile}{2019/11/01}
|
|
{
|
|
% Do nothing on new versions
|
|
}
|
|
{
|
|
\def\Gread@@xetex#1{%
|
|
\IfFileExists{"\Gin@base".bb}%
|
|
{\Gread@eps{\Gin@base.bb}}%
|
|
{\Gread@@xetex@aux#1}%
|
|
}
|
|
}
|
|
\makeatother
|
|
\usepackage[Export]{adjustbox} % Used to constrain images to a maximum size
|
|
\adjustboxset{max size={0.95\linewidth}{0.95\paperheight}}
|
|
|
|
% The hyperref package gives us a pdf with properly built
|
|
% internal navigation ('pdf bookmarks' for the table of contents,
|
|
% internal cross-reference links, web links for URLs, etc.)
|
|
\usepackage{hyperref}
|
|
% The default LaTeX title has an obnoxious amount of whitespace. By default,
|
|
% titling removes some of it. It also provides customization options.
|
|
\usepackage{titling}
|
|
\usepackage{longtable} % longtable support required by pandoc >1.10
|
|
\usepackage{booktabs} % table support for pandoc > 1.12.2
|
|
\usepackage{array} % table support for pandoc >= 2.11.3
|
|
\usepackage{calc} % table minipage width calculation for pandoc >= 2.11.1
|
|
\usepackage[inline]{enumitem} % IRkernel/repr support (it uses the enumerate* environment)
|
|
\usepackage[normalem]{ulem} % ulem is needed to support strikethroughs (\sout)
|
|
% normalem makes italics be italics, not underlines
|
|
\usepackage{soul} % strikethrough (\st) support for pandoc >= 3.0.0
|
|
\usepackage{mathrsfs}
|
|
|
|
|
|
|
|
% Colors for the hyperref package
|
|
\definecolor{urlcolor}{rgb}{0,.145,.698}
|
|
\definecolor{linkcolor}{rgb}{.71,0.21,0.01}
|
|
\definecolor{citecolor}{rgb}{.12,.54,.11}
|
|
|
|
% ANSI colors
|
|
\definecolor{ansi-black}{HTML}{3E424D}
|
|
\definecolor{ansi-black-intense}{HTML}{282C36}
|
|
\definecolor{ansi-red}{HTML}{E75C58}
|
|
\definecolor{ansi-red-intense}{HTML}{B22B31}
|
|
\definecolor{ansi-green}{HTML}{00A250}
|
|
\definecolor{ansi-green-intense}{HTML}{007427}
|
|
\definecolor{ansi-yellow}{HTML}{DDB62B}
|
|
\definecolor{ansi-yellow-intense}{HTML}{B27D12}
|
|
\definecolor{ansi-blue}{HTML}{208FFB}
|
|
\definecolor{ansi-blue-intense}{HTML}{0065CA}
|
|
\definecolor{ansi-magenta}{HTML}{D160C4}
|
|
\definecolor{ansi-magenta-intense}{HTML}{A03196}
|
|
\definecolor{ansi-cyan}{HTML}{60C6C8}
|
|
\definecolor{ansi-cyan-intense}{HTML}{258F8F}
|
|
\definecolor{ansi-white}{HTML}{C5C1B4}
|
|
\definecolor{ansi-white-intense}{HTML}{A1A6B2}
|
|
\definecolor{ansi-default-inverse-fg}{HTML}{FFFFFF}
|
|
\definecolor{ansi-default-inverse-bg}{HTML}{000000}
|
|
|
|
% common color for the border for error outputs.
|
|
\definecolor{outerrorbackground}{HTML}{FFDFDF}
|
|
|
|
% commands and environments needed by pandoc snippets
|
|
% extracted from the output of `pandoc -s`
|
|
\providecommand{\tightlist}{%
|
|
\setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}}
|
|
\DefineVerbatimEnvironment{Highlighting}{Verbatim}{commandchars=\\\{\}}
|
|
% Add ',fontsize=\small' for more characters per line
|
|
\newenvironment{Shaded}{}{}
|
|
\newcommand{\KeywordTok}[1]{\textcolor[rgb]{0.00,0.44,0.13}{\textbf{{#1}}}}
|
|
\newcommand{\DataTypeTok}[1]{\textcolor[rgb]{0.56,0.13,0.00}{{#1}}}
|
|
\newcommand{\DecValTok}[1]{\textcolor[rgb]{0.25,0.63,0.44}{{#1}}}
|
|
\newcommand{\BaseNTok}[1]{\textcolor[rgb]{0.25,0.63,0.44}{{#1}}}
|
|
\newcommand{\FloatTok}[1]{\textcolor[rgb]{0.25,0.63,0.44}{{#1}}}
|
|
\newcommand{\CharTok}[1]{\textcolor[rgb]{0.25,0.44,0.63}{{#1}}}
|
|
\newcommand{\StringTok}[1]{\textcolor[rgb]{0.25,0.44,0.63}{{#1}}}
|
|
\newcommand{\CommentTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textit{{#1}}}}
|
|
\newcommand{\OtherTok}[1]{\textcolor[rgb]{0.00,0.44,0.13}{{#1}}}
|
|
\newcommand{\AlertTok}[1]{\textcolor[rgb]{1.00,0.00,0.00}{\textbf{{#1}}}}
|
|
\newcommand{\FunctionTok}[1]{\textcolor[rgb]{0.02,0.16,0.49}{{#1}}}
|
|
\newcommand{\RegionMarkerTok}[1]{{#1}}
|
|
\newcommand{\ErrorTok}[1]{\textcolor[rgb]{1.00,0.00,0.00}{\textbf{{#1}}}}
|
|
\newcommand{\NormalTok}[1]{{#1}}
|
|
|
|
% Additional commands for more recent versions of Pandoc
|
|
\newcommand{\ConstantTok}[1]{\textcolor[rgb]{0.53,0.00,0.00}{{#1}}}
|
|
\newcommand{\SpecialCharTok}[1]{\textcolor[rgb]{0.25,0.44,0.63}{{#1}}}
|
|
\newcommand{\VerbatimStringTok}[1]{\textcolor[rgb]{0.25,0.44,0.63}{{#1}}}
|
|
\newcommand{\SpecialStringTok}[1]{\textcolor[rgb]{0.73,0.40,0.53}{{#1}}}
|
|
\newcommand{\ImportTok}[1]{{#1}}
|
|
\newcommand{\DocumentationTok}[1]{\textcolor[rgb]{0.73,0.13,0.13}{\textit{{#1}}}}
|
|
\newcommand{\AnnotationTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textbf{\textit{{#1}}}}}
|
|
\newcommand{\CommentVarTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textbf{\textit{{#1}}}}}
|
|
\newcommand{\VariableTok}[1]{\textcolor[rgb]{0.10,0.09,0.49}{{#1}}}
|
|
\newcommand{\ControlFlowTok}[1]{\textcolor[rgb]{0.00,0.44,0.13}{\textbf{{#1}}}}
|
|
\newcommand{\OperatorTok}[1]{\textcolor[rgb]{0.40,0.40,0.40}{{#1}}}
|
|
\newcommand{\BuiltInTok}[1]{{#1}}
|
|
\newcommand{\ExtensionTok}[1]{{#1}}
|
|
\newcommand{\PreprocessorTok}[1]{\textcolor[rgb]{0.74,0.48,0.00}{{#1}}}
|
|
\newcommand{\AttributeTok}[1]{\textcolor[rgb]{0.49,0.56,0.16}{{#1}}}
|
|
\newcommand{\InformationTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textbf{\textit{{#1}}}}}
|
|
\newcommand{\WarningTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textbf{\textit{{#1}}}}}
|
|
\makeatletter
|
|
\newsavebox\pandoc@box
|
|
\newcommand*\pandocbounded[1]{%
|
|
\sbox\pandoc@box{#1}%
|
|
% scaling factors for width and height
|
|
\Gscale@div\@tempa\textheight{\dimexpr\ht\pandoc@box+\dp\pandoc@box\relax}%
|
|
\Gscale@div\@tempb\linewidth{\wd\pandoc@box}%
|
|
% select the smaller of both
|
|
\ifdim\@tempb\p@<\@tempa\p@
|
|
\let\@tempa\@tempb
|
|
\fi
|
|
% scaling accordingly (\@tempa < 1)
|
|
\ifdim\@tempa\p@<\p@
|
|
\scalebox{\@tempa}{\usebox\pandoc@box}%
|
|
% scaling not needed, use as it is
|
|
\else
|
|
\usebox{\pandoc@box}%
|
|
\fi
|
|
}
|
|
\makeatother
|
|
|
|
% Define a nice break command that doesn't care if a line doesn't already
|
|
% exist.
|
|
\def\br{\hspace*{\fill} \\* }
|
|
% Math Jax compatibility definitions
|
|
\def\gt{>}
|
|
\def\lt{<}
|
|
\let\Oldtex\TeX
|
|
\let\Oldlatex\LaTeX
|
|
\renewcommand{\TeX}{\textrm{\Oldtex}}
|
|
\renewcommand{\LaTeX}{\textrm{\Oldlatex}}
|
|
% Document parameters
|
|
% Document title
|
|
\title{Analiza i prognozowanie inflacji w województwach Polski}
|
|
\author{Mikołaj Kaczmarek [84985], Piotr Wilma [124832]}
|
|
\date{2025-06-19}
|
|
|
|
|
|
% Pygments definitions
|
|
\makeatletter
|
|
\def\PY@reset{\let\PY@it=\relax \let\PY@bf=\relax%
|
|
\let\PY@ul=\relax \let\PY@tc=\relax%
|
|
\let\PY@bc=\relax \let\PY@ff=\relax}
|
|
\def\PY@tok#1{\csname PY@tok@#1\endcsname}
|
|
\def\PY@toks#1+{\ifx\relax#1\empty\else%
|
|
\PY@tok{#1}\expandafter\PY@toks\fi}
|
|
\def\PY@do#1{\PY@bc{\PY@tc{\PY@ul{%
|
|
\PY@it{\PY@bf{\PY@ff{#1}}}}}}}
|
|
\def\PY#1#2{\PY@reset\PY@toks#1+\relax+\PY@do{#2}}
|
|
|
|
\@namedef{PY@tok@w}{\def\PY@tc##1{\textcolor[rgb]{0.73,0.73,0.73}{##1}}}
|
|
\@namedef{PY@tok@c}{\let\PY@it=\textit\def\PY@tc##1{\textcolor[rgb]{0.24,0.48,0.48}{##1}}}
|
|
\@namedef{PY@tok@cp}{\def\PY@tc##1{\textcolor[rgb]{0.61,0.40,0.00}{##1}}}
|
|
\@namedef{PY@tok@k}{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}}
|
|
\@namedef{PY@tok@kp}{\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}}
|
|
\@namedef{PY@tok@kt}{\def\PY@tc##1{\textcolor[rgb]{0.69,0.00,0.25}{##1}}}
|
|
\@namedef{PY@tok@o}{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}}
|
|
\@namedef{PY@tok@ow}{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.67,0.13,1.00}{##1}}}
|
|
\@namedef{PY@tok@nb}{\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}}
|
|
\@namedef{PY@tok@nf}{\def\PY@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}}
|
|
\@namedef{PY@tok@nc}{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}}
|
|
\@namedef{PY@tok@nn}{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}}
|
|
\@namedef{PY@tok@ne}{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.80,0.25,0.22}{##1}}}
|
|
\@namedef{PY@tok@nv}{\def\PY@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}}
|
|
\@namedef{PY@tok@no}{\def\PY@tc##1{\textcolor[rgb]{0.53,0.00,0.00}{##1}}}
|
|
\@namedef{PY@tok@nl}{\def\PY@tc##1{\textcolor[rgb]{0.46,0.46,0.00}{##1}}}
|
|
\@namedef{PY@tok@ni}{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.44,0.44,0.44}{##1}}}
|
|
\@namedef{PY@tok@na}{\def\PY@tc##1{\textcolor[rgb]{0.41,0.47,0.13}{##1}}}
|
|
\@namedef{PY@tok@nt}{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}}
|
|
\@namedef{PY@tok@nd}{\def\PY@tc##1{\textcolor[rgb]{0.67,0.13,1.00}{##1}}}
|
|
\@namedef{PY@tok@s}{\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}}
|
|
\@namedef{PY@tok@sd}{\let\PY@it=\textit\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}}
|
|
\@namedef{PY@tok@si}{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.64,0.35,0.47}{##1}}}
|
|
\@namedef{PY@tok@se}{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.67,0.36,0.12}{##1}}}
|
|
\@namedef{PY@tok@sr}{\def\PY@tc##1{\textcolor[rgb]{0.64,0.35,0.47}{##1}}}
|
|
\@namedef{PY@tok@ss}{\def\PY@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}}
|
|
\@namedef{PY@tok@sx}{\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}}
|
|
\@namedef{PY@tok@m}{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}}
|
|
\@namedef{PY@tok@gh}{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.00,0.50}{##1}}}
|
|
\@namedef{PY@tok@gu}{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.50,0.00,0.50}{##1}}}
|
|
\@namedef{PY@tok@gd}{\def\PY@tc##1{\textcolor[rgb]{0.63,0.00,0.00}{##1}}}
|
|
\@namedef{PY@tok@gi}{\def\PY@tc##1{\textcolor[rgb]{0.00,0.52,0.00}{##1}}}
|
|
\@namedef{PY@tok@gr}{\def\PY@tc##1{\textcolor[rgb]{0.89,0.00,0.00}{##1}}}
|
|
\@namedef{PY@tok@ge}{\let\PY@it=\textit}
|
|
\@namedef{PY@tok@gs}{\let\PY@bf=\textbf}
|
|
\@namedef{PY@tok@ges}{\let\PY@bf=\textbf\let\PY@it=\textit}
|
|
\@namedef{PY@tok@gp}{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.00,0.50}{##1}}}
|
|
\@namedef{PY@tok@go}{\def\PY@tc##1{\textcolor[rgb]{0.44,0.44,0.44}{##1}}}
|
|
\@namedef{PY@tok@gt}{\def\PY@tc##1{\textcolor[rgb]{0.00,0.27,0.87}{##1}}}
|
|
\@namedef{PY@tok@err}{\def\PY@bc##1{{\setlength{\fboxsep}{\string -\fboxrule}\fcolorbox[rgb]{1.00,0.00,0.00}{1,1,1}{\strut ##1}}}}
|
|
\@namedef{PY@tok@kc}{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}}
|
|
\@namedef{PY@tok@kd}{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}}
|
|
\@namedef{PY@tok@kn}{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}}
|
|
\@namedef{PY@tok@kr}{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}}
|
|
\@namedef{PY@tok@bp}{\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}}
|
|
\@namedef{PY@tok@fm}{\def\PY@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}}
|
|
\@namedef{PY@tok@vc}{\def\PY@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}}
|
|
\@namedef{PY@tok@vg}{\def\PY@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}}
|
|
\@namedef{PY@tok@vi}{\def\PY@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}}
|
|
\@namedef{PY@tok@vm}{\def\PY@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}}
|
|
\@namedef{PY@tok@sa}{\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}}
|
|
\@namedef{PY@tok@sb}{\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}}
|
|
\@namedef{PY@tok@sc}{\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}}
|
|
\@namedef{PY@tok@dl}{\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}}
|
|
\@namedef{PY@tok@s2}{\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}}
|
|
\@namedef{PY@tok@sh}{\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}}
|
|
\@namedef{PY@tok@s1}{\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}}
|
|
\@namedef{PY@tok@mb}{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}}
|
|
\@namedef{PY@tok@mf}{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}}
|
|
\@namedef{PY@tok@mh}{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}}
|
|
\@namedef{PY@tok@mi}{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}}
|
|
\@namedef{PY@tok@il}{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}}
|
|
\@namedef{PY@tok@mo}{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}}
|
|
\@namedef{PY@tok@ch}{\let\PY@it=\textit\def\PY@tc##1{\textcolor[rgb]{0.24,0.48,0.48}{##1}}}
|
|
\@namedef{PY@tok@cm}{\let\PY@it=\textit\def\PY@tc##1{\textcolor[rgb]{0.24,0.48,0.48}{##1}}}
|
|
\@namedef{PY@tok@cpf}{\let\PY@it=\textit\def\PY@tc##1{\textcolor[rgb]{0.24,0.48,0.48}{##1}}}
|
|
\@namedef{PY@tok@c1}{\let\PY@it=\textit\def\PY@tc##1{\textcolor[rgb]{0.24,0.48,0.48}{##1}}}
|
|
\@namedef{PY@tok@cs}{\let\PY@it=\textit\def\PY@tc##1{\textcolor[rgb]{0.24,0.48,0.48}{##1}}}
|
|
|
|
\def\PYZbs{\char`\\}
|
|
\def\PYZus{\char`\_}
|
|
\def\PYZob{\char`\{}
|
|
\def\PYZcb{\char`\}}
|
|
\def\PYZca{\char`\^}
|
|
\def\PYZam{\char`\&}
|
|
\def\PYZlt{\char`\<}
|
|
\def\PYZgt{\char`\>}
|
|
\def\PYZsh{\char`\#}
|
|
\def\PYZpc{\char`\%}
|
|
\def\PYZdl{\char`\$}
|
|
\def\PYZhy{\char`\-}
|
|
\def\PYZsq{\char`\'}
|
|
\def\PYZdq{\char`\"}
|
|
\def\PYZti{\char`\~}
|
|
% for compatibility with earlier versions
|
|
\def\PYZat{@}
|
|
\def\PYZlb{[}
|
|
\def\PYZrb{]}
|
|
\makeatother
|
|
|
|
|
|
% For linebreaks inside Verbatim environment from package fancyvrb.
|
|
\makeatletter
|
|
\newbox\Wrappedcontinuationbox
|
|
\newbox\Wrappedvisiblespacebox
|
|
\newcommand*\Wrappedvisiblespace {\textcolor{red}{\textvisiblespace}}
|
|
\newcommand*\Wrappedcontinuationsymbol {\textcolor{red}{\llap{\tiny$\m@th\hookrightarrow$}}}
|
|
\newcommand*\Wrappedcontinuationindent {3ex }
|
|
\newcommand*\Wrappedafterbreak {\kern\Wrappedcontinuationindent\copy\Wrappedcontinuationbox}
|
|
% Take advantage of the already applied Pygments mark-up to insert
|
|
% potential linebreaks for TeX processing.
|
|
% {, <, #, %, $, ' and ": go to next line.
|
|
% _, }, ^, &, >, - and ~: stay at end of broken line.
|
|
% Use of \textquotesingle for straight quote.
|
|
\newcommand*\Wrappedbreaksatspecials {%
|
|
\def\PYGZus{\discretionary{\char`\_}{\Wrappedafterbreak}{\char`\_}}%
|
|
\def\PYGZob{\discretionary{}{\Wrappedafterbreak\char`\{}{\char`\{}}%
|
|
\def\PYGZcb{\discretionary{\char`\}}{\Wrappedafterbreak}{\char`\}}}%
|
|
\def\PYGZca{\discretionary{\char`\^}{\Wrappedafterbreak}{\char`\^}}%
|
|
\def\PYGZam{\discretionary{\char`\&}{\Wrappedafterbreak}{\char`\&}}%
|
|
\def\PYGZlt{\discretionary{}{\Wrappedafterbreak\char`\<}{\char`\<}}%
|
|
\def\PYGZgt{\discretionary{\char`\>}{\Wrappedafterbreak}{\char`\>}}%
|
|
\def\PYGZsh{\discretionary{}{\Wrappedafterbreak\char`\#}{\char`\#}}%
|
|
\def\PYGZpc{\discretionary{}{\Wrappedafterbreak\char`\%}{\char`\%}}%
|
|
\def\PYGZdl{\discretionary{}{\Wrappedafterbreak\char`\$}{\char`\$}}%
|
|
\def\PYGZhy{\discretionary{\char`\-}{\Wrappedafterbreak}{\char`\-}}%
|
|
\def\PYGZsq{\discretionary{}{\Wrappedafterbreak\textquotesingle}{\textquotesingle}}%
|
|
\def\PYGZdq{\discretionary{}{\Wrappedafterbreak\char`\"}{\char`\"}}%
|
|
\def\PYGZti{\discretionary{\char`\~}{\Wrappedafterbreak}{\char`\~}}%
|
|
}
|
|
% Some characters . , ; ? ! / are not pygmentized.
|
|
% This macro makes them "active" and they will insert potential linebreaks
|
|
\newcommand*\Wrappedbreaksatpunct {%
|
|
\lccode`\~`\.\lowercase{\def~}{\discretionary{\hbox{\char`\.}}{\Wrappedafterbreak}{\hbox{\char`\.}}}%
|
|
\lccode`\~`\,\lowercase{\def~}{\discretionary{\hbox{\char`\,}}{\Wrappedafterbreak}{\hbox{\char`\,}}}%
|
|
\lccode`\~`\;\lowercase{\def~}{\discretionary{\hbox{\char`\;}}{\Wrappedafterbreak}{\hbox{\char`\;}}}%
|
|
\lccode`\~`\:\lowercase{\def~}{\discretionary{\hbox{\char`\:}}{\Wrappedafterbreak}{\hbox{\char`\:}}}%
|
|
\lccode`\~`\?\lowercase{\def~}{\discretionary{\hbox{\char`\?}}{\Wrappedafterbreak}{\hbox{\char`\?}}}%
|
|
\lccode`\~`\!\lowercase{\def~}{\discretionary{\hbox{\char`\!}}{\Wrappedafterbreak}{\hbox{\char`\!}}}%
|
|
\lccode`\~`\/\lowercase{\def~}{\discretionary{\hbox{\char`\/}}{\Wrappedafterbreak}{\hbox{\char`\/}}}%
|
|
\catcode`\.\active
|
|
\catcode`\,\active
|
|
\catcode`\;\active
|
|
\catcode`\:\active
|
|
\catcode`\?\active
|
|
\catcode`\!\active
|
|
\catcode`\/\active
|
|
\lccode`\~`\~
|
|
}
|
|
\makeatother
|
|
|
|
\let\OriginalVerbatim=\Verbatim
|
|
\makeatletter
|
|
\renewcommand{\Verbatim}[1][1]{%
|
|
%\parskip\z@skip
|
|
\sbox\Wrappedcontinuationbox {\Wrappedcontinuationsymbol}%
|
|
\sbox\Wrappedvisiblespacebox {\FV@SetupFont\Wrappedvisiblespace}%
|
|
\def\FancyVerbFormatLine ##1{\hsize\linewidth
|
|
\vtop{\raggedright\hyphenpenalty\z@\exhyphenpenalty\z@
|
|
\doublehyphendemerits\z@\finalhyphendemerits\z@
|
|
\strut ##1\strut}%
|
|
}%
|
|
% If the linebreak is at a space, the latter will be displayed as visible
|
|
% space at end of first line, and a continuation symbol starts next line.
|
|
% Stretch/shrink are however usually zero for typewriter font.
|
|
\def\FV@Space {%
|
|
\nobreak\hskip\z@ plus\fontdimen3\font minus\fontdimen4\font
|
|
\discretionary{\copy\Wrappedvisiblespacebox}{\Wrappedafterbreak}
|
|
{\kern\fontdimen2\font}%
|
|
}%
|
|
|
|
% Allow breaks at special characters using \PYG... macros.
|
|
\Wrappedbreaksatspecials
|
|
% Breaks at punctuation characters . , ; ? ! and / need catcode=\active
|
|
\OriginalVerbatim[#1,codes*=\Wrappedbreaksatpunct]%
|
|
}
|
|
\makeatother
|
|
|
|
% Exact colors from NB
|
|
\definecolor{incolor}{HTML}{303F9F}
|
|
\definecolor{outcolor}{HTML}{D84315}
|
|
\definecolor{cellborder}{HTML}{CFCFCF}
|
|
\definecolor{cellbackground}{HTML}{F7F7F7}
|
|
|
|
% prompt
|
|
\makeatletter
|
|
\newcommand{\boxspacing}{\kern\kvtcb@left@rule\kern\kvtcb@boxsep}
|
|
\makeatother
|
|
\newcommand{\prompt}[4]{
|
|
{\ttfamily\llap{{\color{#2}[#3]:\hspace{3pt}#4}}\vspace{-\baselineskip}}
|
|
}
|
|
|
|
|
|
|
|
% Prevent overflowing lines due to hard-to-break entities
|
|
\sloppy
|
|
% Setup hyperref package
|
|
\hypersetup{
|
|
breaklinks=true, % so long urls are correctly broken across lines
|
|
colorlinks=true,
|
|
urlcolor=urlcolor,
|
|
linkcolor=linkcolor,
|
|
citecolor=citecolor,
|
|
}
|
|
% Slightly bigger margins than the latex defaults
|
|
|
|
\geometry{verbose,tmargin=1in,bmargin=1in,lmargin=1in,rmargin=1in}
|
|
|
|
|
|
|
|
\begin{document}
|
|
|
|
\maketitle
|
|
|
|
|
|
|
|
\section{Opis problemu}\label{opis-problemu}
|
|
|
|
Inflacja, rozumiana jako wzrost ogólnego poziomu cen towarów i usług w
|
|
gospodarce, to jeden z najważniejszych wskaźników makroekonomicznych. Ma
|
|
ona bezpośredni wpływ na siłę nabywczą ludności, stabilność gospodarczą
|
|
oraz decyzje inwestycyjne. Monitorowanie i prognozowanie inflacji na
|
|
poziomie województw pozwala zrozumieć zróżnicowanie procesów
|
|
gospodarczych w różnych regionach Polski, a także wspiera podejmowanie
|
|
trafnych decyzji przez samorządy, przedsiębiorców oraz mieszkańców.
|
|
Prognozy inflacji są wykorzystywane m.in. w planowaniu budżetów,
|
|
indeksacji wynagrodzeń i świadczeń, a także w ocenie ryzyka
|
|
inwestycyjnego. Aktualność i praktyczne znaczenie tego zagadnienia
|
|
sprawiają, że analiza regionalnych wskaźników inflacji stanowi
|
|
wartościowy przedmiot badań.
|
|
|
|
\subsection{Wyjaśnienie sposobu pomiaru inflacji w Banku Danych
|
|
Lokalnych}\label{wyjaux15bnienie-sposobu-pomiaru-inflacji-w-banku-danych-lokalnych}
|
|
|
|
Wskaźniki inflacji wykorzystane w niniejszej analizie pochodzą z Banku
|
|
Danych Lokalnych GUS i zostały opracowane na podstawie przeciętnych cen
|
|
producentów na rynku krajowym. Ceny skupu obejmują przeciętne roczne
|
|
ceny płacone przez podmioty gospodarcze skupujące produkty rolne
|
|
bezpośrednio od producentów rolnych. Podstawą do opracowania wskaźników
|
|
cen towarów i usług są obserwacje cen reprezentantów, a prezentowane
|
|
dane mają charakter szacunkowy.
|
|
|
|
\section{Opis sposobu
|
|
rozwiązania}\label{opis-sposobu-rozwiux105zania}
|
|
|
|
W analizie wykorzystano kwartalne dane o wskaźnikach inflacji w
|
|
poszczególnych województwach Polski z lat 2005--2024. Zbiór danych
|
|
umożliwia analizę przestrzenno-czasową oraz przygotowanie prognoz na
|
|
kolejne okresy. Zakres danych pozwala zidentyfikować trendy, sezonowość
|
|
i anomalie w kształtowaniu się inflacji regionalnej.
|
|
|
|
Dane zostały poddane oczyszczeniu oraz transformacjom przygotowującym je
|
|
do analizy szeregów czasowych. Eksploracyjna analiza danych objęła
|
|
statystyki opisowe, analizę rozkładów, wykrywanie wartości odstających
|
|
oraz identyfikację sezonowości. Do prognozowania kwartalnych wskaźników
|
|
inflacji dla każdego województwa zastosowano model ARIMA, którego
|
|
parametry zostały dobrane automatycznie na podstawie szeregów czasowych.
|
|
Podział na zbiór treningowy (do 2022 roku) oraz testowy (2023--2024)
|
|
pozwolił na ocenę jakości prognoz.
|
|
|
|
Wyniki zostały przedstawione w formie tabelarycznej oraz wizualnej
|
|
(wykresy, mapa Polski), co umożliwia intuicyjne porównanie sytuacji w
|
|
regionach oraz ocenę precyzji prognoz.
|
|
|
|
\section{Kod zawierający
|
|
obliczenia}\label{kod-zawierajux105cy-obliczenia}
|
|
|
|
Poniżej przedstawiono fragmenty kodu realizujące kolejne etapy analizy.
|
|
Po każdym bloku kodu zamieszczono odpowiadające mu wykresy oraz -- w
|
|
przypadku analizy wartości odstających -- opis procesu myślowego
|
|
dotyczącego ich interpretacji i decyzji analitycznych.
|
|
|
|
\subsection{Wczytanie i przygotowanie
|
|
danych}\label{wczytanie-i-przygotowanie-danych}
|
|
|
|
\begin{tcolorbox}[breakable, size=fbox, boxrule=1pt, pad at break*=1mm,colback=cellbackground, colframe=cellborder]
|
|
\prompt{In}{incolor}{1}{\boxspacing}
|
|
\begin{Verbatim}[commandchars=\\\{\}]
|
|
\PY{k+kn}{import}\PY{+w}{ }\PY{n+nn}{pandas}\PY{+w}{ }\PY{k}{as}\PY{+w}{ }\PY{n+nn}{pd}
|
|
\PY{k+kn}{import}\PY{+w}{ }\PY{n+nn}{numpy}\PY{+w}{ }\PY{k}{as}\PY{+w}{ }\PY{n+nn}{np}
|
|
\PY{k+kn}{import}\PY{+w}{ }\PY{n+nn}{matplotlib}\PY{n+nn}{.}\PY{n+nn}{pyplot}\PY{+w}{ }\PY{k}{as}\PY{+w}{ }\PY{n+nn}{plt}
|
|
\PY{k+kn}{import}\PY{+w}{ }\PY{n+nn}{seaborn}\PY{+w}{ }\PY{k}{as}\PY{+w}{ }\PY{n+nn}{sns}
|
|
\PY{k+kn}{import}\PY{+w}{ }\PY{n+nn}{geopandas}\PY{+w}{ }\PY{k}{as}\PY{+w}{ }\PY{n+nn}{gpd}
|
|
\PY{k+kn}{from}\PY{+w}{ }\PY{n+nn}{statsmodels}\PY{n+nn}{.}\PY{n+nn}{tsa}\PY{n+nn}{.}\PY{n+nn}{arima}\PY{n+nn}{.}\PY{n+nn}{model}\PY{+w}{ }\PY{k+kn}{import} \PY{n}{ARIMA}
|
|
\PY{k+kn}{from}\PY{+w}{ }\PY{n+nn}{pmdarima}\PY{+w}{ }\PY{k+kn}{import} \PY{n}{auto\PYZus{}arima}
|
|
\PY{k+kn}{from}\PY{+w}{ }\PY{n+nn}{sklearn}\PY{n+nn}{.}\PY{n+nn}{metrics}\PY{+w}{ }\PY{k+kn}{import} \PY{n}{mean\PYZus{}absolute\PYZus{}error}
|
|
\end{Verbatim}
|
|
\end{tcolorbox}
|
|
|
|
\begin{tcolorbox}[breakable, size=fbox, boxrule=1pt, pad at break*=1mm,colback=cellbackground, colframe=cellborder]
|
|
\prompt{In}{incolor}{2}{\boxspacing}
|
|
\begin{Verbatim}[commandchars=\\\{\}]
|
|
\PY{c+c1}{\PYZsh{} Ścieżka do pliku z danymi}
|
|
\PY{n}{data\PYZus{}path} \PY{o}{=} \PY{l+s+s2}{\PYZdq{}}\PY{l+s+s2}{raw\PYZus{}data.csv}\PY{l+s+s2}{\PYZdq{}}
|
|
|
|
\PY{c+c1}{\PYZsh{} Wczytanie i wstępna obróbka danych}
|
|
\PY{n}{df} \PY{o}{=} \PY{n}{pd}\PY{o}{.}\PY{n}{read\PYZus{}csv}\PY{p}{(}\PY{n}{data\PYZus{}path}\PY{p}{,} \PY{n}{sep}\PY{o}{=}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{;}\PY{l+s+s1}{\PYZsq{}}\PY{p}{,} \PY{n}{encoding}\PY{o}{=}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{utf\PYZhy{}8}\PY{l+s+s1}{\PYZsq{}}\PY{p}{,} \PY{n}{low\PYZus{}memory}\PY{o}{=}\PY{k+kc}{False}\PY{p}{)}
|
|
|
|
\PY{n}{df}\PY{o}{.}\PY{n}{dropna}\PY{p}{(}\PY{n}{axis}\PY{o}{=}\PY{l+m+mi}{1}\PY{p}{,} \PY{n}{how}\PY{o}{=}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{all}\PY{l+s+s1}{\PYZsq{}}\PY{p}{,} \PY{n}{inplace}\PY{o}{=}\PY{k+kc}{True}\PY{p}{)}
|
|
\PY{n}{df}\PY{o}{.}\PY{n}{drop}\PY{p}{(}\PY{n}{columns}\PY{o}{=}\PY{p}{[}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Atrybut}\PY{l+s+s1}{\PYZsq{}}\PY{p}{,} \PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Jednostka miary}\PY{l+s+s1}{\PYZsq{}}\PY{p}{,} \PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Kod}\PY{l+s+s1}{\PYZsq{}}\PY{p}{,} \PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Wskaźnik cen}\PY{l+s+s1}{\PYZsq{}}\PY{p}{]}\PY{p}{,} \PY{n}{inplace}\PY{o}{=}\PY{k+kc}{True}\PY{p}{,} \PY{n}{errors}\PY{o}{=}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{ignore}\PY{l+s+s1}{\PYZsq{}}\PY{p}{)}
|
|
\PY{n}{df} \PY{o}{=} \PY{n}{df}\PY{p}{[}\PY{n}{df}\PY{p}{[}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Rok}\PY{l+s+s1}{\PYZsq{}}\PY{p}{]} \PY{o}{!=} \PY{l+m+mi}{2025}\PY{p}{]}
|
|
|
|
\PY{n}{df}\PY{o}{.}\PY{n}{rename}\PY{p}{(}\PY{n}{columns}\PY{o}{=}\PY{p}{\PYZob{}}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Nazwa}\PY{l+s+s1}{\PYZsq{}}\PY{p}{:} \PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Wojewodztwo}\PY{l+s+s1}{\PYZsq{}}\PY{p}{,} \PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Okresy}\PY{l+s+s1}{\PYZsq{}}\PY{p}{:} \PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Okres}\PY{l+s+s1}{\PYZsq{}}\PY{p}{\PYZcb{}}\PY{p}{,} \PY{n}{inplace}\PY{o}{=}\PY{k+kc}{True}\PY{p}{)}
|
|
\PY{n}{df}\PY{o}{.}\PY{n}{sort\PYZus{}values}\PY{p}{(}\PY{n}{by}\PY{o}{=}\PY{p}{[}\PY{l+s+s2}{\PYZdq{}}\PY{l+s+s2}{Wojewodztwo}\PY{l+s+s2}{\PYZdq{}}\PY{p}{,} \PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Rok}\PY{l+s+s1}{\PYZsq{}}\PY{p}{,} \PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Okres}\PY{l+s+s1}{\PYZsq{}}\PY{p}{]}\PY{p}{,} \PY{n}{inplace}\PY{o}{=}\PY{k+kc}{True}\PY{p}{)}
|
|
\PY{n}{df}\PY{o}{.}\PY{n}{reset\PYZus{}index}\PY{p}{(}\PY{n}{drop}\PY{o}{=}\PY{k+kc}{True}\PY{p}{,} \PY{n}{inplace}\PY{o}{=}\PY{k+kc}{True}\PY{p}{)}
|
|
|
|
\PY{n}{df}\PY{p}{[}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Rok}\PY{l+s+s1}{\PYZsq{}}\PY{p}{]} \PY{o}{=} \PY{n}{df}\PY{p}{[}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Rok}\PY{l+s+s1}{\PYZsq{}}\PY{p}{]}\PY{o}{.}\PY{n}{astype}\PY{p}{(}\PY{n+nb}{int}\PY{p}{)}
|
|
|
|
\PY{n}{okres\PYZus{}mapping} \PY{o}{=} \PY{p}{\PYZob{}}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{1 kwartał}\PY{l+s+s1}{\PYZsq{}}\PY{p}{:} \PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Q1}\PY{l+s+s1}{\PYZsq{}}\PY{p}{,} \PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{2 kwartał}\PY{l+s+s1}{\PYZsq{}}\PY{p}{:} \PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Q2}\PY{l+s+s1}{\PYZsq{}}\PY{p}{,} \PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{3 kwartał}\PY{l+s+s1}{\PYZsq{}}\PY{p}{:} \PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Q3}\PY{l+s+s1}{\PYZsq{}}\PY{p}{,} \PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{4 kwartał}\PY{l+s+s1}{\PYZsq{}}\PY{p}{:} \PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Q4}\PY{l+s+s1}{\PYZsq{}}\PY{p}{\PYZcb{}}
|
|
\PY{n}{df}\PY{p}{[}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Okres}\PY{l+s+s1}{\PYZsq{}}\PY{p}{]} \PY{o}{=} \PY{n}{df}\PY{p}{[}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Okres}\PY{l+s+s1}{\PYZsq{}}\PY{p}{]}\PY{o}{.}\PY{n}{map}\PY{p}{(}\PY{n}{okres\PYZus{}mapping}\PY{p}{)}
|
|
\PY{n}{df}\PY{p}{[}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Okres}\PY{l+s+s1}{\PYZsq{}}\PY{p}{]} \PY{o}{=} \PY{n}{pd}\PY{o}{.}\PY{n}{Categorical}\PY{p}{(}\PY{n}{df}\PY{p}{[}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Okres}\PY{l+s+s1}{\PYZsq{}}\PY{p}{]}\PY{p}{,} \PY{n}{categories}\PY{o}{=}\PY{p}{[}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Q1}\PY{l+s+s1}{\PYZsq{}}\PY{p}{,} \PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Q2}\PY{l+s+s1}{\PYZsq{}}\PY{p}{,} \PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Q3}\PY{l+s+s1}{\PYZsq{}}\PY{p}{,} \PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Q4}\PY{l+s+s1}{\PYZsq{}}\PY{p}{]}\PY{p}{,} \PY{n}{ordered}\PY{o}{=}\PY{k+kc}{True}\PY{p}{)}
|
|
|
|
\PY{n}{df}\PY{p}{[}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Wartosc}\PY{l+s+s1}{\PYZsq{}}\PY{p}{]} \PY{o}{=} \PY{n}{pd}\PY{o}{.}\PY{n}{to\PYZus{}numeric}\PY{p}{(}\PY{n}{df}\PY{p}{[}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Wartosc}\PY{l+s+s1}{\PYZsq{}}\PY{p}{]}\PY{o}{.}\PY{n}{str}\PY{o}{.}\PY{n}{replace}\PY{p}{(}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{,}\PY{l+s+s1}{\PYZsq{}}\PY{p}{,} \PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{.}\PY{l+s+s1}{\PYZsq{}}\PY{p}{)}\PY{p}{,} \PY{n}{errors}\PY{o}{=}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{coerce}\PY{l+s+s1}{\PYZsq{}}\PY{p}{)}
|
|
|
|
\PY{n}{df}\PY{p}{[}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Okres\PYZus{}czas}\PY{l+s+s1}{\PYZsq{}}\PY{p}{]} \PY{o}{=} \PY{n}{df}\PY{p}{[}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Rok}\PY{l+s+s1}{\PYZsq{}}\PY{p}{]}\PY{o}{.}\PY{n}{astype}\PY{p}{(}\PY{n+nb}{str}\PY{p}{)} \PY{o}{+} \PY{n}{df}\PY{p}{[}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Okres}\PY{l+s+s1}{\PYZsq{}}\PY{p}{]}\PY{o}{.}\PY{n}{str}\PY{o}{.}\PY{n}{replace}\PY{p}{(}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Q}\PY{l+s+s1}{\PYZsq{}}\PY{p}{,} \PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{\PYZhy{}Q}\PY{l+s+s1}{\PYZsq{}}\PY{p}{)}
|
|
\PY{n}{df}\PY{p}{[}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Okres\PYZus{}czas}\PY{l+s+s1}{\PYZsq{}}\PY{p}{]} \PY{o}{=} \PY{n}{pd}\PY{o}{.}\PY{n}{PeriodIndex}\PY{p}{(}\PY{n}{df}\PY{p}{[}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Okres\PYZus{}czas}\PY{l+s+s1}{\PYZsq{}}\PY{p}{]}\PY{p}{,} \PY{n}{freq}\PY{o}{=}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Q}\PY{l+s+s1}{\PYZsq{}}\PY{p}{)}
|
|
|
|
\PY{n}{df} \PY{o}{=} \PY{n}{df}\PY{o}{.}\PY{n}{sort\PYZus{}values}\PY{p}{(}\PY{p}{[}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Wojewodztwo}\PY{l+s+s1}{\PYZsq{}}\PY{p}{,} \PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Okres\PYZus{}czas}\PY{l+s+s1}{\PYZsq{}}\PY{p}{]}\PY{p}{)}\PY{o}{.}\PY{n}{reset\PYZus{}index}\PY{p}{(}\PY{n}{drop}\PY{o}{=}\PY{k+kc}{True}\PY{p}{)}
|
|
|
|
\PY{n}{df}\PY{p}{[}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Kwartal}\PY{l+s+s1}{\PYZsq{}}\PY{p}{]} \PY{o}{=} \PY{n}{df}\PY{p}{[}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Rok}\PY{l+s+s1}{\PYZsq{}}\PY{p}{]}\PY{o}{.}\PY{n}{astype}\PY{p}{(}\PY{n+nb}{str}\PY{p}{)} \PY{o}{+} \PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{\PYZhy{}}\PY{l+s+s1}{\PYZsq{}} \PY{o}{+} \PY{n}{df}\PY{p}{[}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Okres}\PY{l+s+s1}{\PYZsq{}}\PY{p}{]}\PY{o}{.}\PY{n}{astype}\PY{p}{(}\PY{n+nb}{str}\PY{p}{)}
|
|
\end{Verbatim}
|
|
\end{tcolorbox}
|
|
|
|
|
|
\subsection{Eksploracyjna analiza
|
|
danych}\label{eksploracyjna-analiza-danych}
|
|
|
|
\begin{tcolorbox}[breakable, size=fbox, boxrule=1pt, pad at break*=1mm,colback=cellbackground, colframe=cellborder]
|
|
\prompt{In}{incolor}{3}{\boxspacing}
|
|
\begin{Verbatim}[commandchars=\\\{\}]
|
|
\PY{c+c1}{\PYZsh{} Informacje o danych}
|
|
\PY{n+nb}{print}\PY{p}{(}\PY{n}{df}\PY{o}{.}\PY{n}{info}\PY{p}{(}\PY{p}{)}\PY{p}{)}
|
|
|
|
\PY{c+c1}{\PYZsh{} Zakres lat i unikalne jednostki}
|
|
\PY{n+nb}{print}\PY{p}{(}\PY{l+s+s2}{\PYZdq{}}\PY{l+s+se}{\PYZbs{}n}\PY{l+s+s2}{Zakres lat:}\PY{l+s+s2}{\PYZdq{}}\PY{p}{,} \PY{n}{df}\PY{p}{[}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Rok}\PY{l+s+s1}{\PYZsq{}}\PY{p}{]}\PY{o}{.}\PY{n}{min}\PY{p}{(}\PY{p}{)}\PY{p}{,} \PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{\PYZhy{}}\PY{l+s+s1}{\PYZsq{}}\PY{p}{,} \PY{n}{df}\PY{p}{[}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Rok}\PY{l+s+s1}{\PYZsq{}}\PY{p}{]}\PY{o}{.}\PY{n}{max}\PY{p}{(}\PY{p}{)}\PY{p}{)}
|
|
\PY{n+nb}{print}\PY{p}{(}\PY{l+s+s2}{\PYZdq{}}\PY{l+s+s2}{Województwa:}\PY{l+s+s2}{\PYZdq{}}\PY{p}{,} \PY{n}{df}\PY{p}{[}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Wojewodztwo}\PY{l+s+s1}{\PYZsq{}}\PY{p}{]}\PY{o}{.}\PY{n}{unique}\PY{p}{(}\PY{p}{)}\PY{p}{)}
|
|
|
|
\PY{c+c1}{\PYZsh{} Statystyki opisowe dla inflacji}
|
|
\PY{n+nb}{print}\PY{p}{(}\PY{l+s+s2}{\PYZdq{}}\PY{l+s+se}{\PYZbs{}n}\PY{l+s+s2}{Statystyki opisowe dla inflacji:}\PY{l+s+s2}{\PYZdq{}}\PY{p}{)}
|
|
\PY{n+nb}{print}\PY{p}{(}\PY{n}{df}\PY{p}{[}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Wartosc}\PY{l+s+s1}{\PYZsq{}}\PY{p}{]}\PY{o}{.}\PY{n}{describe}\PY{p}{(}\PY{p}{)}\PY{p}{)}
|
|
|
|
\PY{n+nb}{print}\PY{p}{(}\PY{l+s+s2}{\PYZdq{}}\PY{l+s+se}{\PYZbs{}n}\PY{l+s+s2}{Statystyki opisowe dla inflacji (grupowane według województw):}\PY{l+s+s2}{\PYZdq{}}\PY{p}{)}
|
|
\PY{n+nb}{print}\PY{p}{(}\PY{n}{df}\PY{o}{.}\PY{n}{groupby}\PY{p}{(}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Wojewodztwo}\PY{l+s+s1}{\PYZsq{}}\PY{p}{)}\PY{p}{[}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Wartosc}\PY{l+s+s1}{\PYZsq{}}\PY{p}{]}\PY{o}{.}\PY{n}{agg}\PY{p}{(}\PY{p}{[}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{mean}\PY{l+s+s1}{\PYZsq{}}\PY{p}{,} \PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{std}\PY{l+s+s1}{\PYZsq{}}\PY{p}{,} \PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{min}\PY{l+s+s1}{\PYZsq{}}\PY{p}{,} \PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{max}\PY{l+s+s1}{\PYZsq{}}\PY{p}{]}\PY{p}{)}\PY{p}{)}
|
|
\end{Verbatim}
|
|
\end{tcolorbox}
|
|
|
|
\begin{Verbatim}[commandchars=\\\{\}]
|
|
<class 'pandas.core.frame.DataFrame'>
|
|
RangeIndex: 1280 entries, 0 to 1279
|
|
Data columns (total 6 columns):
|
|
\# Column Non-Null Count Dtype
|
|
--- ------ -------------- -----
|
|
0 Wojewodztwo 1280 non-null object
|
|
1 Okres 1280 non-null category
|
|
2 Rok 1280 non-null int64
|
|
3 Wartosc 1280 non-null float64
|
|
4 Okres\_czas 1280 non-null period[Q-DEC]
|
|
5 Kwartal 1280 non-null object
|
|
dtypes: category(1), float64(1), int64(1), object(2), period[Q-DEC](1)
|
|
memory usage: 51.6+ KB
|
|
None
|
|
|
|
Zakres lat: 2005 - 2024
|
|
Województwa: ['DOLNOŚLĄSKIE' 'KUJAWSKO-POMORSKIE' 'LUBELSKIE' 'LUBUSKIE'
|
|
'MAZOWIECKIE'
|
|
'MAŁOPOLSKIE' 'OPOLSKIE' 'PODKARPACKIE' 'PODLASKIE' 'POMORSKIE'
|
|
'WARMIŃSKO-MAZURSKIE' 'WIELKOPOLSKIE' 'ZACHODNIOPOMORSKIE' 'ŁÓDZKIE'
|
|
'ŚLĄSKIE' 'ŚWIĘTOKRZYSKIE']
|
|
|
|
Statystyki opisowe dla inflacji:
|
|
count 1280.000000
|
|
mean 100.835703
|
|
std 1.169597
|
|
min 99.000000
|
|
25\% 100.100000
|
|
50\% 100.500000
|
|
75\% 101.400000
|
|
max 107.000000
|
|
Name: Wartosc, dtype: float64
|
|
|
|
Statystyki opisowe dla inflacji (grupowane według województw):
|
|
mean std min max
|
|
Wojewodztwo
|
|
DOLNOŚLĄSKIE 100.82375 1.116986 99.3 105.5
|
|
KUJAWSKO-POMORSKIE 100.85125 1.221432 99.3 106.6
|
|
LUBELSKIE 100.78125 1.177757 99.1 106.3
|
|
LUBUSKIE 100.87875 1.145127 99.4 105.5
|
|
MAZOWIECKIE 100.80750 1.101986 99.3 105.3
|
|
MAŁOPOLSKIE 100.89750 1.219356 99.4 105.6
|
|
OPOLSKIE 100.83625 1.188366 99.2 105.9
|
|
PODKARPACKIE 100.85125 1.155942 99.0 104.9
|
|
PODLASKIE 100.79000 1.177704 99.3 106.7
|
|
POMORSKIE 100.80250 1.106022 99.4 105.4
|
|
WARMIŃSKO-MAZURSKIE 100.82875 1.182059 99.1 105.9
|
|
WIELKOPOLSKIE 100.88125 1.208000 99.1 106.3
|
|
ZACHODNIOPOMORSKIE 100.83125 1.152608 99.5 105.4
|
|
ŁÓDZKIE 100.85250 1.214154 99.3 106.3
|
|
ŚLĄSKIE 100.79875 1.157966 99.3 105.5
|
|
ŚWIĘTOKRZYSKIE 100.85875 1.277229 99.1 107.0
|
|
\end{Verbatim}
|
|
|
|
\emph{Wyniki: Statystyki opisowe dla inflacji w województwach}
|
|
|
|
\paragraph{Wykres: Inflacja w wybranym województwie w
|
|
czasie}\label{wykres-inflacja-w-wybranym-wojewuxf3dztwie-w-czasie}
|
|
|
|
\begin{tcolorbox}[breakable, size=fbox, boxrule=1pt, pad at break*=1mm,colback=cellbackground, colframe=cellborder]
|
|
\prompt{In}{incolor}{4}{\boxspacing}
|
|
\begin{Verbatim}[commandchars=\\\{\}]
|
|
\PY{c+c1}{\PYZsh{} Wykres: Inflacja w czasie dla wybranego województwa}
|
|
\PY{n}{woj} \PY{o}{=} \PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{WIELKOPOLSKIE}\PY{l+s+s1}{\PYZsq{}}
|
|
\PY{n}{fig}\PY{p}{,} \PY{n}{ax} \PY{o}{=} \PY{n}{plt}\PY{o}{.}\PY{n}{subplots}\PY{p}{(}\PY{n}{figsize}\PY{o}{=}\PY{p}{(}\PY{l+m+mi}{16}\PY{p}{,} \PY{l+m+mi}{6}\PY{p}{)}\PY{p}{)}
|
|
\PY{n}{ax}\PY{o}{.}\PY{n}{plot}\PY{p}{(}\PY{n}{df}\PY{p}{[}\PY{n}{df}\PY{p}{[}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Wojewodztwo}\PY{l+s+s1}{\PYZsq{}}\PY{p}{]} \PY{o}{==} \PY{n}{woj}\PY{p}{]}\PY{p}{[}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Kwartal}\PY{l+s+s1}{\PYZsq{}}\PY{p}{]}\PY{p}{,} \PY{n}{df}\PY{p}{[}\PY{n}{df}\PY{p}{[}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Wojewodztwo}\PY{l+s+s1}{\PYZsq{}}\PY{p}{]} \PY{o}{==} \PY{n}{woj}\PY{p}{]}\PY{p}{[}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Wartosc}\PY{l+s+s1}{\PYZsq{}}\PY{p}{]}\PY{p}{,} \PY{n}{marker}\PY{o}{=}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{o}\PY{l+s+s1}{\PYZsq{}}\PY{p}{)}
|
|
\PY{n}{ax}\PY{o}{.}\PY{n}{set\PYZus{}title}\PY{p}{(}\PY{l+s+sa}{f}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Inflacja w }\PY{l+s+si}{\PYZob{}}\PY{n}{woj}\PY{l+s+si}{\PYZcb{}}\PY{l+s+s1}{ w czasie}\PY{l+s+s1}{\PYZsq{}}\PY{p}{)}
|
|
\PY{n}{ax}\PY{o}{.}\PY{n}{set\PYZus{}xlabel}\PY{p}{(}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Kwartał}\PY{l+s+s1}{\PYZsq{}}\PY{p}{)}
|
|
\PY{n}{ax}\PY{o}{.}\PY{n}{set\PYZus{}ylabel}\PY{p}{(}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Wartość}\PY{l+s+s1}{\PYZsq{}}\PY{p}{)}
|
|
\PY{n}{xticks} \PY{o}{=} \PY{n}{ax}\PY{o}{.}\PY{n}{get\PYZus{}xticks}\PY{p}{(}\PY{p}{)}
|
|
\PY{n}{ax}\PY{o}{.}\PY{n}{set\PYZus{}xticks}\PY{p}{(}\PY{n}{xticks}\PY{p}{[}\PY{p}{:}\PY{p}{:}\PY{l+m+mi}{2}\PY{p}{]}\PY{p}{)}
|
|
\PY{n}{plt}\PY{o}{.}\PY{n}{setp}\PY{p}{(}\PY{n}{ax}\PY{o}{.}\PY{n}{get\PYZus{}xticklabels}\PY{p}{(}\PY{p}{)}\PY{p}{,} \PY{n}{rotation}\PY{o}{=}\PY{l+m+mi}{90}\PY{p}{)}
|
|
\PY{n}{plt}\PY{o}{.}\PY{n}{tight\PYZus{}layout}\PY{p}{(}\PY{p}{)}
|
|
\PY{n}{plt}\PY{o}{.}\PY{n}{show}\PY{p}{(}\PY{p}{)}
|
|
\end{Verbatim}
|
|
\end{tcolorbox}
|
|
|
|
\begin{center}
|
|
\adjustimage{max size={0.9\linewidth}{0.9\paperheight}}{ASC_files/ASC_7_0.png}
|
|
\end{center}
|
|
{ \hspace*{\fill} \\}
|
|
|
|
\emph{Wizualizacja: Inflacja w województwie wielkopolskim w czasie.}
|
|
|
|
|
|
|
|
\paragraph{Wykres: Porównanie rozkładów inflacji w województwach
|
|
(boxplot)}\label{wykres-poruxf3wnanie-rozkux142aduxf3w-inflacji-w-wojewuxf3dztwach-boxplot}
|
|
|
|
\begin{tcolorbox}[breakable, size=fbox, boxrule=1pt, pad at break*=1mm,colback=cellbackground, colframe=cellborder]
|
|
\prompt{In}{incolor}{5}{\boxspacing}
|
|
\begin{Verbatim}[commandchars=\\\{\}]
|
|
\PY{c+c1}{\PYZsh{} Wykres: Porównanie rozkładów inflacji w województwach (boxplot)}
|
|
\PY{n}{plt}\PY{o}{.}\PY{n}{figure}\PY{p}{(}\PY{n}{figsize}\PY{o}{=}\PY{p}{(}\PY{l+m+mi}{16}\PY{p}{,}\PY{l+m+mi}{6}\PY{p}{)}\PY{p}{)}
|
|
\PY{n}{sns}\PY{o}{.}\PY{n}{boxplot}\PY{p}{(}\PY{n}{data}\PY{o}{=}\PY{n}{df}\PY{p}{,} \PY{n}{x}\PY{o}{=}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Wojewodztwo}\PY{l+s+s1}{\PYZsq{}}\PY{p}{,} \PY{n}{y}\PY{o}{=}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Wartosc}\PY{l+s+s1}{\PYZsq{}}\PY{p}{)}
|
|
\PY{n}{plt}\PY{o}{.}\PY{n}{title}\PY{p}{(}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Rozkład inflacji w województwach}\PY{l+s+s1}{\PYZsq{}}\PY{p}{)}
|
|
\PY{n}{plt}\PY{o}{.}\PY{n}{xlabel}\PY{p}{(}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Województwo}\PY{l+s+s1}{\PYZsq{}}\PY{p}{)}
|
|
\PY{n}{plt}\PY{o}{.}\PY{n}{ylabel}\PY{p}{(}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Wartość}\PY{l+s+s1}{\PYZsq{}}\PY{p}{)}
|
|
\PY{n}{plt}\PY{o}{.}\PY{n}{xticks}\PY{p}{(}\PY{n}{rotation}\PY{o}{=}\PY{l+m+mi}{90}\PY{p}{)}
|
|
\PY{n}{plt}\PY{o}{.}\PY{n}{tight\PYZus{}layout}\PY{p}{(}\PY{p}{)}
|
|
\PY{n}{plt}\PY{o}{.}\PY{n}{show}\PY{p}{(}\PY{p}{)}
|
|
\end{Verbatim}
|
|
\end{tcolorbox}
|
|
|
|
\begin{center}
|
|
\adjustimage{max size={0.9\linewidth}{0.9\paperheight}}{ASC_files/ASC_9_0.png}
|
|
\end{center}
|
|
{ \hspace*{\fill} \\}
|
|
|
|
\emph{Wizualizacja: Porównanie rozkładów inflacji w regionach --
|
|
wartości odstające są zbliżone w większości województw.}
|
|
|
|
|
|
|
|
\paragraph{Identyfikacja i analiza wartości
|
|
odstających}\label{identyfikacja-i-analiza-wartoux15bci-odstajux105cych}
|
|
|
|
W procesie eksploracji danych pojawił się problem wartości odstających
|
|
(outlierów). Wartości te mogą istotnie wpływać na wyniki modelowania
|
|
szeregów czasowych, zwłaszcza w kontekście prognozowania. Przeprowadzono
|
|
więc identyfikację wartości odstających dla każdego województwa osobno,
|
|
korzystając z klasycznej reguły pudełkowej (1.5 x IQR).
|
|
|
|
\textbf{Proces myślowy:} - Wartości odstające zostały potraktowane nie
|
|
jako anomalia danych, lecz jako potencjalny efekt rzeczywistych,
|
|
gwałtownych zmian cen wywołanych przez zjawiska o charakterze
|
|
ogólnokrajowym (np. pandemia COVID-19). - Zdecydowano się nie usuwać
|
|
outlierów, ponieważ ich obecność odzwierciedla pełną dynamikę inflacji i
|
|
pozwala modelowi ARIMA lepiej uchwycić ryzyko powtórzenia się podobnych
|
|
sytuacji w przyszłości. - Obserwacje odstające występowały w tym samym
|
|
okresie we wszystkich województwach, co sugeruje, że nie były wynikiem
|
|
błędów pomiarowych czy specyfiki regionalnej, lecz ogólnopolskich szoków
|
|
gospodarczych.
|
|
|
|
\begin{tcolorbox}[breakable, size=fbox, boxrule=1pt, pad at break*=1mm,colback=cellbackground, colframe=cellborder]
|
|
\prompt{In}{incolor}{6}{\boxspacing}
|
|
\begin{Verbatim}[commandchars=\\\{\}]
|
|
\PY{k+kn}{import}\PY{+w}{ }\PY{n+nn}{warnings}
|
|
|
|
\PY{k}{def}\PY{+w}{ }\PY{n+nf}{find\PYZus{}outliers}\PY{p}{(}\PY{n}{group}\PY{p}{)}\PY{p}{:}
|
|
\PY{n}{q1} \PY{o}{=} \PY{n}{group}\PY{p}{[}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Wartosc}\PY{l+s+s1}{\PYZsq{}}\PY{p}{]}\PY{o}{.}\PY{n}{quantile}\PY{p}{(}\PY{l+m+mf}{0.25}\PY{p}{)}
|
|
\PY{n}{q3} \PY{o}{=} \PY{n}{group}\PY{p}{[}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Wartosc}\PY{l+s+s1}{\PYZsq{}}\PY{p}{]}\PY{o}{.}\PY{n}{quantile}\PY{p}{(}\PY{l+m+mf}{0.75}\PY{p}{)}
|
|
\PY{n}{iqr} \PY{o}{=} \PY{n}{q3} \PY{o}{\PYZhy{}} \PY{n}{q1}
|
|
\PY{n}{lower} \PY{o}{=} \PY{n}{q1} \PY{o}{\PYZhy{}} \PY{l+m+mf}{1.5} \PY{o}{*} \PY{n}{iqr}
|
|
\PY{n}{upper} \PY{o}{=} \PY{n}{q3} \PY{o}{+} \PY{l+m+mf}{1.5} \PY{o}{*} \PY{n}{iqr}
|
|
\PY{n}{outliers} \PY{o}{=} \PY{n}{group}\PY{p}{[}\PY{p}{(}\PY{n}{group}\PY{p}{[}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Wartosc}\PY{l+s+s1}{\PYZsq{}}\PY{p}{]} \PY{o}{\PYZlt{}} \PY{n}{lower}\PY{p}{)} \PY{o}{|} \PY{p}{(}\PY{n}{group}\PY{p}{[}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Wartosc}\PY{l+s+s1}{\PYZsq{}}\PY{p}{]} \PY{o}{\PYZgt{}} \PY{n}{upper}\PY{p}{)}\PY{p}{]}
|
|
\PY{k}{return} \PY{n}{outliers}
|
|
|
|
\PY{k}{with} \PY{n}{warnings}\PY{o}{.}\PY{n}{catch\PYZus{}warnings}\PY{p}{(}\PY{p}{)}\PY{p}{:}
|
|
\PY{n}{warnings}\PY{o}{.}\PY{n}{simplefilter}\PY{p}{(}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{ignore}\PY{l+s+s1}{\PYZsq{}}\PY{p}{)}
|
|
\PY{n}{outliers\PYZus{}df} \PY{o}{=} \PY{n}{df}\PY{o}{.}\PY{n}{groupby}\PY{p}{(}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Wojewodztwo}\PY{l+s+s1}{\PYZsq{}}\PY{p}{,} \PY{n}{group\PYZus{}keys}\PY{o}{=}\PY{k+kc}{False}\PY{p}{)}\PY{o}{.}\PY{n}{apply}\PY{p}{(}\PY{n}{find\PYZus{}outliers}\PY{p}{)}\PY{o}{.}\PY{n}{reset\PYZus{}index}\PY{p}{(}\PY{p}{)}
|
|
|
|
\PY{n}{wojewodztwa} \PY{o}{=} \PY{n}{df}\PY{p}{[}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Wojewodztwo}\PY{l+s+s1}{\PYZsq{}}\PY{p}{]}\PY{o}{.}\PY{n}{unique}\PY{p}{(}\PY{p}{)}
|
|
\PY{n}{n} \PY{o}{=} \PY{n+nb}{len}\PY{p}{(}\PY{n}{wojewodztwa}\PY{p}{)}
|
|
\PY{n}{cols} \PY{o}{=} \PY{l+m+mi}{3}
|
|
\PY{n}{rows} \PY{o}{=} \PY{p}{(}\PY{n}{n} \PY{o}{+} \PY{n}{cols} \PY{o}{\PYZhy{}} \PY{l+m+mi}{1}\PY{p}{)} \PY{o}{/}\PY{o}{/} \PY{n}{cols}
|
|
|
|
\PY{n}{fig}\PY{p}{,} \PY{n}{axes} \PY{o}{=} \PY{n}{plt}\PY{o}{.}\PY{n}{subplots}\PY{p}{(}\PY{n}{rows}\PY{p}{,} \PY{n}{cols}\PY{p}{,} \PY{n}{figsize}\PY{o}{=}\PY{p}{(}\PY{l+m+mi}{20}\PY{p}{,} \PY{l+m+mi}{25}\PY{p}{)}\PY{p}{,} \PY{n}{sharex}\PY{o}{=}\PY{k+kc}{False}\PY{p}{)}
|
|
\PY{n}{axes} \PY{o}{=} \PY{n}{axes}\PY{o}{.}\PY{n}{flatten}\PY{p}{(}\PY{p}{)}
|
|
|
|
\PY{k}{for} \PY{n}{i}\PY{p}{,} \PY{n}{woj} \PY{o+ow}{in} \PY{n+nb}{enumerate}\PY{p}{(}\PY{n}{wojewodztwa}\PY{p}{)}\PY{p}{:}
|
|
\PY{n}{woj\PYZus{}df} \PY{o}{=} \PY{n}{df}\PY{p}{[}\PY{n}{df}\PY{p}{[}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Wojewodztwo}\PY{l+s+s1}{\PYZsq{}}\PY{p}{]} \PY{o}{==} \PY{n}{woj}\PY{p}{]}
|
|
\PY{n}{woj\PYZus{}out} \PY{o}{=} \PY{n}{outliers\PYZus{}df}\PY{p}{[}\PY{n}{outliers\PYZus{}df}\PY{p}{[}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Wojewodztwo}\PY{l+s+s1}{\PYZsq{}}\PY{p}{]} \PY{o}{==} \PY{n}{woj}\PY{p}{]}
|
|
\PY{n}{ax} \PY{o}{=} \PY{n}{axes}\PY{p}{[}\PY{n}{i}\PY{p}{]}
|
|
\PY{n}{ax}\PY{o}{.}\PY{n}{plot}\PY{p}{(}\PY{n}{woj\PYZus{}df}\PY{p}{[}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Kwartal}\PY{l+s+s1}{\PYZsq{}}\PY{p}{]}\PY{p}{,} \PY{n}{woj\PYZus{}df}\PY{p}{[}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Wartosc}\PY{l+s+s1}{\PYZsq{}}\PY{p}{]}\PY{p}{,} \PY{n}{marker}\PY{o}{=}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{o}\PY{l+s+s1}{\PYZsq{}}\PY{p}{,} \PY{n}{label}\PY{o}{=}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Wartości}\PY{l+s+s1}{\PYZsq{}}\PY{p}{)}
|
|
\PY{n}{ax}\PY{o}{.}\PY{n}{scatter}\PY{p}{(}\PY{n}{woj\PYZus{}out}\PY{p}{[}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Kwartal}\PY{l+s+s1}{\PYZsq{}}\PY{p}{]}\PY{p}{,} \PY{n}{woj\PYZus{}out}\PY{p}{[}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Wartosc}\PY{l+s+s1}{\PYZsq{}}\PY{p}{]}\PY{p}{,} \PY{n}{color}\PY{o}{=}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{red}\PY{l+s+s1}{\PYZsq{}}\PY{p}{,} \PY{n}{label}\PY{o}{=}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Outliery}\PY{l+s+s1}{\PYZsq{}}\PY{p}{,} \PY{n}{zorder}\PY{o}{=}\PY{l+m+mi}{5}\PY{p}{)}
|
|
\PY{n}{ax}\PY{o}{.}\PY{n}{set\PYZus{}title}\PY{p}{(}\PY{n}{woj}\PY{p}{)}
|
|
\PY{n}{ax}\PY{o}{.}\PY{n}{set\PYZus{}xlabel}\PY{p}{(}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Kwartal}\PY{l+s+s1}{\PYZsq{}}\PY{p}{)}
|
|
\PY{n}{ax}\PY{o}{.}\PY{n}{set\PYZus{}ylabel}\PY{p}{(}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Wartosc}\PY{l+s+s1}{\PYZsq{}}\PY{p}{)}
|
|
\PY{n}{xticks} \PY{o}{=} \PY{n}{ax}\PY{o}{.}\PY{n}{get\PYZus{}xticks}\PY{p}{(}\PY{p}{)}
|
|
\PY{n}{ax}\PY{o}{.}\PY{n}{set\PYZus{}xticks}\PY{p}{(}\PY{n}{xticks}\PY{p}{[}\PY{p}{:}\PY{p}{:}\PY{l+m+mi}{4}\PY{p}{]}\PY{p}{)}
|
|
\PY{n}{ax}\PY{o}{.}\PY{n}{tick\PYZus{}params}\PY{p}{(}\PY{n}{axis}\PY{o}{=}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{x}\PY{l+s+s1}{\PYZsq{}}\PY{p}{,} \PY{n}{rotation}\PY{o}{=}\PY{l+m+mi}{90}\PY{p}{)}
|
|
\PY{n}{ax}\PY{o}{.}\PY{n}{legend}\PY{p}{(}\PY{n}{fontsize}\PY{o}{=}\PY{l+m+mi}{8}\PY{p}{)}
|
|
|
|
\PY{c+c1}{\PYZsh{} Ukryj puste osie}
|
|
\PY{k}{for} \PY{n}{j} \PY{o+ow}{in} \PY{n+nb}{range}\PY{p}{(}\PY{n}{i}\PY{o}{+}\PY{l+m+mi}{1}\PY{p}{,} \PY{n+nb}{len}\PY{p}{(}\PY{n}{axes}\PY{p}{)}\PY{p}{)}\PY{p}{:}
|
|
\PY{n}{axes}\PY{p}{[}\PY{n}{j}\PY{p}{]}\PY{o}{.}\PY{n}{set\PYZus{}visible}\PY{p}{(}\PY{k+kc}{False}\PY{p}{)}
|
|
|
|
\PY{n}{plt}\PY{o}{.}\PY{n}{tight\PYZus{}layout}\PY{p}{(}\PY{p}{)}
|
|
\PY{n}{plt}\PY{o}{.}\PY{n}{show}\PY{p}{(}\PY{p}{)}
|
|
\end{Verbatim}
|
|
\end{tcolorbox}
|
|
|
|
\begin{center}
|
|
\adjustimage{max size={0.9\linewidth}{0.9\paperheight}}{ASC_files/ASC_11_0.png}
|
|
\end{center}
|
|
{ \hspace*{\fill} \\}
|
|
|
|
\emph{Wizualizacja: Wartości odstające inflacji w poszczególnych
|
|
województwach.}
|
|
|
|
|
|
|
|
\paragraph{Wykres: Średnia inflacja w poszczególnych
|
|
kwartałach}\label{wykres-ux15brednia-inflacja-w-poszczeguxf3lnych-kwartaux142ach}
|
|
|
|
\begin{tcolorbox}[breakable, size=fbox, boxrule=1pt, pad at break*=1mm,colback=cellbackground, colframe=cellborder]
|
|
\prompt{In}{incolor}{7}{\boxspacing}
|
|
\begin{Verbatim}[commandchars=\\\{\}]
|
|
\PY{c+c1}{\PYZsh{} Wykres: Średnia inflacja wg kwartału}
|
|
\PY{n}{plt}\PY{o}{.}\PY{n}{figure}\PY{p}{(}\PY{n}{figsize}\PY{o}{=}\PY{p}{(}\PY{l+m+mi}{10}\PY{p}{,}\PY{l+m+mi}{5}\PY{p}{)}\PY{p}{)}
|
|
\PY{n}{sns}\PY{o}{.}\PY{n}{barplot}\PY{p}{(}\PY{n}{data}\PY{o}{=}\PY{n}{df}\PY{p}{,} \PY{n}{x}\PY{o}{=}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Okres}\PY{l+s+s1}{\PYZsq{}}\PY{p}{,} \PY{n}{y}\PY{o}{=}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Wartosc}\PY{l+s+s1}{\PYZsq{}}\PY{p}{)}
|
|
\PY{n}{plt}\PY{o}{.}\PY{n}{title}\PY{p}{(}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Średnia inflacja w poszczególnych kwartałach}\PY{l+s+s1}{\PYZsq{}}\PY{p}{)}
|
|
\PY{n}{plt}\PY{o}{.}\PY{n}{ylim}\PY{p}{(}\PY{l+m+mi}{90}\PY{p}{,} \PY{k+kc}{None}\PY{p}{)}
|
|
\PY{n}{plt}\PY{o}{.}\PY{n}{xlabel}\PY{p}{(}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Kwartal}\PY{l+s+s1}{\PYZsq{}}\PY{p}{)}
|
|
\PY{n}{plt}\PY{o}{.}\PY{n}{ylabel}\PY{p}{(}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Średnia wartość inflacji}\PY{l+s+s1}{\PYZsq{}}\PY{p}{)}
|
|
\PY{n}{plt}\PY{o}{.}\PY{n}{tight\PYZus{}layout}\PY{p}{(}\PY{p}{)}
|
|
\PY{k}{for} \PY{n}{p} \PY{o+ow}{in} \PY{n}{plt}\PY{o}{.}\PY{n}{gca}\PY{p}{(}\PY{p}{)}\PY{o}{.}\PY{n}{patches}\PY{p}{:}
|
|
\PY{n}{plt}\PY{o}{.}\PY{n}{gca}\PY{p}{(}\PY{p}{)}\PY{o}{.}\PY{n}{annotate}\PY{p}{(}\PY{l+s+sa}{f}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+si}{\PYZob{}}\PY{n}{p}\PY{o}{.}\PY{n}{get\PYZus{}height}\PY{p}{(}\PY{p}{)}\PY{l+s+si}{:}\PY{l+s+s1}{.2f}\PY{l+s+si}{\PYZcb{}}\PY{l+s+s1}{\PYZsq{}}\PY{p}{,} \PY{p}{(}\PY{n}{p}\PY{o}{.}\PY{n}{get\PYZus{}x}\PY{p}{(}\PY{p}{)} \PY{o}{+} \PY{n}{p}\PY{o}{.}\PY{n}{get\PYZus{}width}\PY{p}{(}\PY{p}{)} \PY{o}{/} \PY{l+m+mf}{2.}\PY{p}{,} \PY{n}{p}\PY{o}{.}\PY{n}{get\PYZus{}height}\PY{p}{(}\PY{p}{)}\PY{p}{)}\PY{p}{,}
|
|
\PY{n}{ha}\PY{o}{=}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{center}\PY{l+s+s1}{\PYZsq{}}\PY{p}{,} \PY{n}{va}\PY{o}{=}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{bottom}\PY{l+s+s1}{\PYZsq{}}\PY{p}{,} \PY{n}{fontsize}\PY{o}{=}\PY{l+m+mi}{10}\PY{p}{,} \PY{n}{color}\PY{o}{=}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{black}\PY{l+s+s1}{\PYZsq{}}\PY{p}{,} \PY{n}{rotation}\PY{o}{=}\PY{l+m+mi}{0}\PY{p}{)}
|
|
\PY{n}{plt}\PY{o}{.}\PY{n}{show}\PY{p}{(}\PY{p}{)}
|
|
\end{Verbatim}
|
|
\end{tcolorbox}
|
|
|
|
\begin{center}
|
|
\adjustimage{max size={0.9\linewidth}{0.9\paperheight}}{ASC_files/ASC_13_0.png}
|
|
\end{center}
|
|
{ \hspace*{\fill} \\}
|
|
|
|
\emph{Wizualizacja: Sezonowość inflacji -- najwyższe wartości na
|
|
początku roku.}
|
|
|
|
|
|
|
|
\subsection{Prognozowanie inflacji}\label{prognozowanie-inflacji}
|
|
|
|
\begin{tcolorbox}[breakable, size=fbox, boxrule=1pt, pad at break*=1mm,colback=cellbackground, colframe=cellborder]
|
|
\prompt{In}{incolor}{8}{\boxspacing}
|
|
\begin{Verbatim}[commandchars=\\\{\}]
|
|
\PY{k+kn}{import}\PY{+w}{ }\PY{n+nn}{warnings}
|
|
|
|
\PY{n}{wojewodztwa} \PY{o}{=} \PY{n}{df}\PY{p}{[}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Wojewodztwo}\PY{l+s+s1}{\PYZsq{}}\PY{p}{]}\PY{o}{.}\PY{n}{unique}\PY{p}{(}\PY{p}{)}
|
|
\PY{n}{results} \PY{o}{=} \PY{p}{[}\PY{p}{]}
|
|
|
|
\PY{k}{for} \PY{n}{woj} \PY{o+ow}{in} \PY{n}{wojewodztwa}\PY{p}{:}
|
|
\PY{n}{df\PYZus{}woj} \PY{o}{=} \PY{n}{df}\PY{p}{[}\PY{n}{df}\PY{p}{[}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Wojewodztwo}\PY{l+s+s1}{\PYZsq{}}\PY{p}{]} \PY{o}{==} \PY{n}{woj}\PY{p}{]}\PY{o}{.}\PY{n}{sort\PYZus{}values}\PY{p}{(}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Okres\PYZus{}czas}\PY{l+s+s1}{\PYZsq{}}\PY{p}{)}\PY{o}{.}\PY{n}{set\PYZus{}index}\PY{p}{(}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Okres\PYZus{}czas}\PY{l+s+s1}{\PYZsq{}}\PY{p}{)}
|
|
\PY{n}{train} \PY{o}{=} \PY{n}{df\PYZus{}woj}\PY{p}{[}\PY{n}{df\PYZus{}woj}\PY{o}{.}\PY{n}{index} \PY{o}{\PYZlt{}}\PY{o}{=} \PY{n}{pd}\PY{o}{.}\PY{n}{Period}\PY{p}{(}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{2022Q4}\PY{l+s+s1}{\PYZsq{}}\PY{p}{)}\PY{p}{]}
|
|
\PY{n}{test} \PY{o}{=} \PY{n}{df\PYZus{}woj}\PY{p}{[}\PY{n}{df\PYZus{}woj}\PY{o}{.}\PY{n}{index} \PY{o}{\PYZgt{}}\PY{o}{=} \PY{n}{pd}\PY{o}{.}\PY{n}{Period}\PY{p}{(}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{2023Q1}\PY{l+s+s1}{\PYZsq{}}\PY{p}{)}\PY{p}{]}
|
|
|
|
\PY{c+c1}{\PYZsh{} auto\PYZus{}arima}
|
|
\PY{k}{with} \PY{n}{warnings}\PY{o}{.}\PY{n}{catch\PYZus{}warnings}\PY{p}{(}\PY{p}{)}\PY{p}{:}
|
|
\PY{n}{warnings}\PY{o}{.}\PY{n}{simplefilter}\PY{p}{(}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{ignore}\PY{l+s+s1}{\PYZsq{}}\PY{p}{)}
|
|
\PY{n}{stepwise\PYZus{}model} \PY{o}{=} \PY{n}{auto\PYZus{}arima}\PY{p}{(}\PY{n}{train}\PY{p}{[}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Wartosc}\PY{l+s+s1}{\PYZsq{}}\PY{p}{]}\PY{p}{,} \PY{n}{seasonal}\PY{o}{=}\PY{k+kc}{True}\PY{p}{,} \PY{n}{m}\PY{o}{=}\PY{l+m+mi}{4}\PY{p}{,} \PY{n}{suppress\PYZus{}warnings}\PY{o}{=}\PY{k+kc}{True}\PY{p}{)}
|
|
\PY{n}{model} \PY{o}{=} \PY{n}{ARIMA}\PY{p}{(}\PY{n}{train}\PY{p}{[}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Wartosc}\PY{l+s+s1}{\PYZsq{}}\PY{p}{]}\PY{p}{,} \PY{n}{order}\PY{o}{=}\PY{n}{stepwise\PYZus{}model}\PY{o}{.}\PY{n}{order}\PY{p}{,} \PY{n}{seasonal\PYZus{}order}\PY{o}{=}\PY{n}{stepwise\PYZus{}model}\PY{o}{.}\PY{n}{seasonal\PYZus{}order}\PY{p}{)}
|
|
\PY{n}{model\PYZus{}fit} \PY{o}{=} \PY{n}{model}\PY{o}{.}\PY{n}{fit}\PY{p}{(}\PY{n}{method\PYZus{}kwargs}\PY{o}{=}\PY{p}{\PYZob{}}\PY{l+s+s2}{\PYZdq{}}\PY{l+s+s2}{maxiter}\PY{l+s+s2}{\PYZdq{}}\PY{p}{:} \PY{l+m+mi}{200}\PY{p}{\PYZcb{}}\PY{p}{)}
|
|
|
|
\PY{c+c1}{\PYZsh{} prognoza na okres testowy}
|
|
\PY{n}{forecast} \PY{o}{=} \PY{n}{model\PYZus{}fit}\PY{o}{.}\PY{n}{forecast}\PY{p}{(}\PY{n}{steps}\PY{o}{=}\PY{n+nb}{len}\PY{p}{(}\PY{n}{test}\PY{p}{)}\PY{p}{)}
|
|
\PY{n}{forecast}\PY{o}{.}\PY{n}{index} \PY{o}{=} \PY{n}{test}\PY{o}{.}\PY{n}{index}
|
|
|
|
\PY{c+c1}{\PYZsh{} błędy}
|
|
\PY{n}{mae} \PY{o}{=} \PY{n}{mean\PYZus{}absolute\PYZus{}error}\PY{p}{(}\PY{n}{test}\PY{p}{[}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Wartosc}\PY{l+s+s1}{\PYZsq{}}\PY{p}{]}\PY{p}{,} \PY{n}{forecast}\PY{p}{)}
|
|
\PY{n}{rmse} \PY{o}{=} \PY{n}{np}\PY{o}{.}\PY{n}{sqrt}\PY{p}{(}\PY{n}{np}\PY{o}{.}\PY{n}{mean}\PY{p}{(}\PY{p}{(}\PY{n}{test}\PY{p}{[}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Wartosc}\PY{l+s+s1}{\PYZsq{}}\PY{p}{]} \PY{o}{\PYZhy{}} \PY{n}{forecast}\PY{p}{)} \PY{o}{*}\PY{o}{*} \PY{l+m+mi}{2}\PY{p}{)}\PY{p}{)}
|
|
|
|
\PY{c+c1}{\PYZsh{} prognoza na kolejne 4 kwartały}
|
|
\PY{n}{future\PYZus{}forecast} \PY{o}{=} \PY{n}{model\PYZus{}fit}\PY{o}{.}\PY{n}{forecast}\PY{p}{(}\PY{n}{steps}\PY{o}{=}\PY{l+m+mi}{4}\PY{p}{)}
|
|
|
|
\PY{n}{results}\PY{o}{.}\PY{n}{append}\PY{p}{(}\PY{p}{\PYZob{}}
|
|
\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Wojewodztwo}\PY{l+s+s1}{\PYZsq{}}\PY{p}{:} \PY{n}{woj}\PY{p}{,}
|
|
\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{MAE}\PY{l+s+s1}{\PYZsq{}}\PY{p}{:} \PY{n}{mae}\PY{p}{,}
|
|
\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{RMSE}\PY{l+s+s1}{\PYZsq{}}\PY{p}{:} \PY{n}{rmse}\PY{p}{,}
|
|
\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Prognoza\PYZus{}nast\PYZus{}Q1}\PY{l+s+s1}{\PYZsq{}}\PY{p}{:} \PY{n}{future\PYZus{}forecast}\PY{o}{.}\PY{n}{iloc}\PY{p}{[}\PY{l+m+mi}{0}\PY{p}{]}\PY{p}{,}
|
|
\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Prognoza\PYZus{}nast\PYZus{}Q2}\PY{l+s+s1}{\PYZsq{}}\PY{p}{:} \PY{n}{future\PYZus{}forecast}\PY{o}{.}\PY{n}{iloc}\PY{p}{[}\PY{l+m+mi}{1}\PY{p}{]}\PY{p}{,}
|
|
\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Prognoza\PYZus{}nast\PYZus{}Q3}\PY{l+s+s1}{\PYZsq{}}\PY{p}{:} \PY{n}{future\PYZus{}forecast}\PY{o}{.}\PY{n}{iloc}\PY{p}{[}\PY{l+m+mi}{2}\PY{p}{]}\PY{p}{,}
|
|
\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Prognoza\PYZus{}nast\PYZus{}Q4}\PY{l+s+s1}{\PYZsq{}}\PY{p}{:} \PY{n}{future\PYZus{}forecast}\PY{o}{.}\PY{n}{iloc}\PY{p}{[}\PY{l+m+mi}{3}\PY{p}{]}\PY{p}{,}
|
|
\PY{p}{\PYZcb{}}\PY{p}{)}
|
|
|
|
\PY{n}{results\PYZus{}df} \PY{o}{=} \PY{n}{pd}\PY{o}{.}\PY{n}{DataFrame}\PY{p}{(}\PY{n}{results}\PY{p}{)}\PY{o}{.}\PY{n}{sort\PYZus{}values}\PY{p}{(}\PY{n}{by}\PY{o}{=}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Wojewodztwo}\PY{l+s+s1}{\PYZsq{}}\PY{p}{)}\PY{o}{.}\PY{n}{reset\PYZus{}index}\PY{p}{(}\PY{n}{drop}\PY{o}{=}\PY{k+kc}{True}\PY{p}{)}
|
|
\PY{n}{results\PYZus{}df}
|
|
\end{Verbatim}
|
|
\end{tcolorbox}
|
|
|
|
\begin{tcolorbox}[breakable, size=fbox, boxrule=.5pt, pad at break*=1mm, opacityfill=0]
|
|
\prompt{Out}{outcolor}{8}{\boxspacing}
|
|
\begin{Verbatim}[commandchars=\\\{\}]
|
|
Wojewodztwo MAE RMSE Prognoza\_nast\_Q1 \textbackslash{}
|
|
0 DOLNOŚLĄSKIE 1.057990 1.349998 103.042604
|
|
1 KUJAWSKO-POMORSKIE 1.798216 2.109858 104.257795
|
|
2 LUBELSKIE 1.842612 2.201423 104.028267
|
|
3 LUBUSKIE 2.630262 2.835831 105.125033
|
|
4 MAZOWIECKIE 2.210909 2.382601 104.222372
|
|
5 MAŁOPOLSKIE 3.100145 3.327341 104.639357
|
|
6 OPOLSKIE 1.273130 1.776170 103.269950
|
|
7 PODKARPACKIE 1.662043 1.895028 103.983461
|
|
8 PODLASKIE 1.833321 2.130977 103.564815
|
|
9 POMORSKIE 2.744541 2.935636 104.558241
|
|
10 WARMIŃSKO-MAZURSKIE 2.276361 2.514340 104.126611
|
|
11 WIELKOPOLSKIE 1.977402 2.313830 104.174993
|
|
12 ZACHODNIOPOMORSKIE 2.142560 2.486010 105.092549
|
|
13 ŁÓDZKIE 2.655085 2.851156 104.215455
|
|
14 ŚLĄSKIE 1.665346 1.921836 103.719610
|
|
15 ŚWIĘTOKRZYSKIE 1.768887 2.151510 103.898081
|
|
|
|
Prognoza\_nast\_Q2 Prognoza\_nast\_Q3 Prognoza\_nast\_Q4
|
|
0 103.757840 102.228181 101.504872
|
|
1 105.056674 103.667468 102.565568
|
|
2 104.910522 103.169437 103.041379
|
|
3 105.438958 103.761610 103.909744
|
|
4 104.959720 102.875522 103.412013
|
|
5 105.285196 104.173087 104.198731
|
|
6 103.902339 103.216132 101.984858
|
|
7 103.965890 103.159991 102.937568
|
|
8 104.852343 103.016065 102.920822
|
|
9 104.976134 103.594970 103.833097
|
|
10 104.820131 103.339697 103.488421
|
|
11 105.092403 103.631222 103.081806
|
|
12 104.985644 103.634001 103.869870
|
|
13 105.243038 103.612173 103.650360
|
|
14 104.362231 103.072617 102.792637
|
|
15 104.899030 103.249998 102.580991
|
|
\end{Verbatim}
|
|
\end{tcolorbox}
|
|
|
|
\emph{Wyniki: Tabela z prognozami inflacji oraz wskaźnikami jakości
|
|
prognoz (MAE, RMSE) dla każdego województwa.}
|
|
|
|
|
|
|
|
\paragraph{Wykres: Porównanie błędów prognoz MAE i
|
|
RMSE}\label{wykres-poruxf3wnanie-bux142ux119duxf3w-prognoz-mae-i-rmse}
|
|
|
|
\begin{tcolorbox}[breakable, size=fbox, boxrule=1pt, pad at break*=1mm,colback=cellbackground, colframe=cellborder]
|
|
\prompt{In}{incolor}{10}{\boxspacing}
|
|
\begin{Verbatim}[commandchars=\\\{\}]
|
|
\PY{n}{labels} \PY{o}{=} \PY{n}{results\PYZus{}df}\PY{p}{[}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Wojewodztwo}\PY{l+s+s1}{\PYZsq{}}\PY{p}{]}
|
|
\PY{n}{x} \PY{o}{=} \PY{n}{np}\PY{o}{.}\PY{n}{arange}\PY{p}{(}\PY{n+nb}{len}\PY{p}{(}\PY{n}{labels}\PY{p}{)}\PY{p}{)}
|
|
\PY{n}{width} \PY{o}{=} \PY{l+m+mf}{0.35}
|
|
|
|
\PY{n}{fig}\PY{p}{,} \PY{n}{ax} \PY{o}{=} \PY{n}{plt}\PY{o}{.}\PY{n}{subplots}\PY{p}{(}\PY{n}{figsize}\PY{o}{=}\PY{p}{(}\PY{l+m+mi}{16}\PY{p}{,}\PY{l+m+mi}{6}\PY{p}{)}\PY{p}{)}
|
|
\PY{n}{rects1} \PY{o}{=} \PY{n}{ax}\PY{o}{.}\PY{n}{bar}\PY{p}{(}\PY{n}{x} \PY{o}{\PYZhy{}} \PY{n}{width}\PY{o}{/}\PY{l+m+mi}{2}\PY{p}{,} \PY{n}{results\PYZus{}df}\PY{p}{[}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{MAE}\PY{l+s+s1}{\PYZsq{}}\PY{p}{]}\PY{p}{,} \PY{n}{width}\PY{p}{,} \PY{n}{label}\PY{o}{=}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{MAE}\PY{l+s+s1}{\PYZsq{}}\PY{p}{,} \PY{n}{alpha}\PY{o}{=}\PY{l+m+mf}{0.8}\PY{p}{)}
|
|
\PY{n}{rects2} \PY{o}{=} \PY{n}{ax}\PY{o}{.}\PY{n}{bar}\PY{p}{(}\PY{n}{x} \PY{o}{+} \PY{n}{width}\PY{o}{/}\PY{l+m+mi}{2}\PY{p}{,} \PY{n}{results\PYZus{}df}\PY{p}{[}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{RMSE}\PY{l+s+s1}{\PYZsq{}}\PY{p}{]}\PY{p}{,} \PY{n}{width}\PY{p}{,} \PY{n}{label}\PY{o}{=}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{RMSE}\PY{l+s+s1}{\PYZsq{}}\PY{p}{,} \PY{n}{alpha}\PY{o}{=}\PY{l+m+mf}{0.8}\PY{p}{)}
|
|
|
|
\PY{n}{ax}\PY{o}{.}\PY{n}{set\PYZus{}ylabel}\PY{p}{(}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Błąd}\PY{l+s+s1}{\PYZsq{}}\PY{p}{)}
|
|
\PY{n}{ax}\PY{o}{.}\PY{n}{set\PYZus{}title}\PY{p}{(}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{MAE i RMSE prognoz inflacji w województwach}\PY{l+s+s1}{\PYZsq{}}\PY{p}{)}
|
|
\PY{n}{ax}\PY{o}{.}\PY{n}{set\PYZus{}xticks}\PY{p}{(}\PY{n}{x}\PY{p}{)}
|
|
\PY{n}{ax}\PY{o}{.}\PY{n}{set\PYZus{}xticklabels}\PY{p}{(}\PY{n}{labels}\PY{p}{,} \PY{n}{rotation}\PY{o}{=}\PY{l+m+mi}{90}\PY{p}{)}
|
|
\PY{n}{ax}\PY{o}{.}\PY{n}{legend}\PY{p}{(}\PY{p}{)}
|
|
\PY{n}{plt}\PY{o}{.}\PY{n}{tight\PYZus{}layout}\PY{p}{(}\PY{p}{)}
|
|
\PY{n}{plt}\PY{o}{.}\PY{n}{show}\PY{p}{(}\PY{p}{)}
|
|
\end{Verbatim}
|
|
\end{tcolorbox}
|
|
|
|
\begin{center}
|
|
\adjustimage{max size={0.9\linewidth}{0.9\paperheight}}{ASC_files/ASC_17_0.png}
|
|
\end{center}
|
|
{ \hspace*{\fill} \\}
|
|
|
|
\emph{Wizualizacja: Poziom błędów prognoz w regionach.}
|
|
|
|
|
|
|
|
\paragraph{Wykres: Heatmapa prognozowanych wzrostów inflacji w kolejnych
|
|
kwartałach}\label{wykres-heatmapa-prognozowanych-wzrostuxf3w-inflacji-w-kolejnych-kwartaux142ach}
|
|
|
|
\begin{tcolorbox}[breakable, size=fbox, boxrule=1pt, pad at break*=1mm,colback=cellbackground, colframe=cellborder]
|
|
\prompt{In}{incolor}{11}{\boxspacing}
|
|
\begin{Verbatim}[commandchars=\\\{\}]
|
|
\PY{n}{results\PYZus{}df\PYZus{}heatmap} \PY{o}{=} \PY{n}{results\PYZus{}df}
|
|
\PY{n}{future\PYZus{}cols} \PY{o}{=} \PY{p}{[}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Prognoza\PYZus{}nast\PYZus{}Q1}\PY{l+s+s1}{\PYZsq{}}\PY{p}{,} \PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Prognoza\PYZus{}nast\PYZus{}Q2}\PY{l+s+s1}{\PYZsq{}}\PY{p}{,} \PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Prognoza\PYZus{}nast\PYZus{}Q3}\PY{l+s+s1}{\PYZsq{}}\PY{p}{,} \PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Prognoza\PYZus{}nast\PYZus{}Q4}\PY{l+s+s1}{\PYZsq{}}\PY{p}{]}
|
|
|
|
\PY{k}{if} \PY{n}{results\PYZus{}df\PYZus{}heatmap}\PY{p}{[}\PY{n}{future\PYZus{}cols}\PY{p}{[}\PY{l+m+mi}{0}\PY{p}{]}\PY{p}{]}\PY{p}{[}\PY{l+m+mi}{0}\PY{p}{]} \PY{o}{\PYZgt{}} \PY{l+m+mi}{100}\PY{p}{:}
|
|
\PY{k}{for} \PY{n}{col} \PY{o+ow}{in} \PY{n}{future\PYZus{}cols}\PY{p}{:}
|
|
\PY{n}{results\PYZus{}df\PYZus{}heatmap}\PY{p}{[}\PY{n}{col}\PY{p}{]} \PY{o}{=} \PY{n}{results\PYZus{}df\PYZus{}heatmap}\PY{p}{[}\PY{n}{col}\PY{p}{]} \PY{o}{\PYZhy{}} \PY{l+m+mi}{100}
|
|
|
|
\PY{n}{plt}\PY{o}{.}\PY{n}{figure}\PY{p}{(}\PY{n}{figsize}\PY{o}{=}\PY{p}{(}\PY{l+m+mi}{16}\PY{p}{,}\PY{l+m+mi}{8}\PY{p}{)}\PY{p}{)}
|
|
\PY{n}{sns}\PY{o}{.}\PY{n}{heatmap}\PY{p}{(}
|
|
\PY{n}{results\PYZus{}df\PYZus{}heatmap}\PY{o}{.}\PY{n}{set\PYZus{}index}\PY{p}{(}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Wojewodztwo}\PY{l+s+s1}{\PYZsq{}}\PY{p}{)}\PY{p}{[}\PY{n}{future\PYZus{}cols}\PY{p}{]}\PY{p}{,}
|
|
\PY{n}{annot}\PY{o}{=}\PY{k+kc}{True}\PY{p}{,}
|
|
\PY{n}{cmap}\PY{o}{=}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{viridis}\PY{l+s+s1}{\PYZsq{}}\PY{p}{,}
|
|
\PY{n}{vmin}\PY{o}{=}\PY{l+m+mi}{0}\PY{p}{,}
|
|
\PY{n}{fmt}\PY{o}{=}\PY{l+s+s2}{\PYZdq{}}\PY{l+s+s2}{.2f}\PY{l+s+s2}{\PYZdq{}}\PY{p}{,}
|
|
\PY{n}{linewidths}\PY{o}{=}\PY{l+m+mf}{0.5}\PY{p}{,}
|
|
\PY{n}{linecolor}\PY{o}{=}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{white}\PY{l+s+s1}{\PYZsq{}}
|
|
\PY{p}{)}
|
|
\PY{n}{plt}\PY{o}{.}\PY{n}{title}\PY{p}{(}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Prognozowany wzrost inflacji (}\PY{l+s+s1}{\PYZpc{}}\PY{l+s+s1}{) w kolejnych kwartałach}\PY{l+s+s1}{\PYZsq{}}\PY{p}{)}
|
|
\PY{n}{plt}\PY{o}{.}\PY{n}{ylabel}\PY{p}{(}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Województwo}\PY{l+s+s1}{\PYZsq{}}\PY{p}{)}
|
|
\PY{n}{plt}\PY{o}{.}\PY{n}{xlabel}\PY{p}{(}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Kwartał}\PY{l+s+s1}{\PYZsq{}}\PY{p}{)}
|
|
\PY{n}{plt}\PY{o}{.}\PY{n}{tight\PYZus{}layout}\PY{p}{(}\PY{p}{)}
|
|
\PY{n}{plt}\PY{o}{.}\PY{n}{show}\PY{p}{(}\PY{p}{)}
|
|
\end{Verbatim}
|
|
\end{tcolorbox}
|
|
|
|
\begin{center}
|
|
\adjustimage{max size={0.9\linewidth}{0.9\paperheight}}{ASC_files/ASC_19_0.png}
|
|
\end{center}
|
|
{ \hspace*{\fill} \\}
|
|
|
|
\emph{Heatmapa: Prognozowane różnice inflacji w regionach w kolejnych
|
|
kwartałach.}
|
|
|
|
|
|
|
|
\subsection{Wizualizacja prognoz na mapie
|
|
Polski}\label{wizualizacja-prognoz-na-mapie-polski}
|
|
|
|
\begin{tcolorbox}[breakable, size=fbox, boxrule=1pt, pad at break*=1mm,colback=cellbackground, colframe=cellborder]
|
|
\prompt{In}{incolor}{12}{\boxspacing}
|
|
\begin{Verbatim}[commandchars=\\\{\}]
|
|
\PY{c+c1}{\PYZsh{} Wczytaj plik geojson z granicami województw}
|
|
\PY{n}{gdf} \PY{o}{=} \PY{n}{gpd}\PY{o}{.}\PY{n}{read\PYZus{}file}\PY{p}{(}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{wojewodztwa.geojson}\PY{l+s+s1}{\PYZsq{}}\PY{p}{)}
|
|
|
|
\PY{c+c1}{\PYZsh{} Mapowanie nazw województw}
|
|
\PY{n}{mapping} \PY{o}{=} \PY{p}{\PYZob{}}
|
|
\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{dolnośląskie}\PY{l+s+s1}{\PYZsq{}}\PY{p}{:} \PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{DOLNOŚLĄSKIE}\PY{l+s+s1}{\PYZsq{}}\PY{p}{,}
|
|
\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{kujawsko\PYZhy{}pomorskie}\PY{l+s+s1}{\PYZsq{}}\PY{p}{:} \PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{KUJAWSKO\PYZhy{}POMORSKIE}\PY{l+s+s1}{\PYZsq{}}\PY{p}{,}
|
|
\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{lubelskie}\PY{l+s+s1}{\PYZsq{}}\PY{p}{:} \PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{LUBELSKIE}\PY{l+s+s1}{\PYZsq{}}\PY{p}{,}
|
|
\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{lubuskie}\PY{l+s+s1}{\PYZsq{}}\PY{p}{:} \PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{LUBUSKIE}\PY{l+s+s1}{\PYZsq{}}\PY{p}{,}
|
|
\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{mazowieckie}\PY{l+s+s1}{\PYZsq{}}\PY{p}{:} \PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{MAZOWIECKIE}\PY{l+s+s1}{\PYZsq{}}\PY{p}{,}
|
|
\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{małopolskie}\PY{l+s+s1}{\PYZsq{}}\PY{p}{:} \PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{MAŁOPOLSKIE}\PY{l+s+s1}{\PYZsq{}}\PY{p}{,}
|
|
\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{opolskie}\PY{l+s+s1}{\PYZsq{}}\PY{p}{:} \PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{OPOLSKIE}\PY{l+s+s1}{\PYZsq{}}\PY{p}{,}
|
|
\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{podkarpackie}\PY{l+s+s1}{\PYZsq{}}\PY{p}{:} \PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{PODKARPACKIE}\PY{l+s+s1}{\PYZsq{}}\PY{p}{,}
|
|
\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{podlaskie}\PY{l+s+s1}{\PYZsq{}}\PY{p}{:} \PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{PODLASKIE}\PY{l+s+s1}{\PYZsq{}}\PY{p}{,}
|
|
\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{pomorskie}\PY{l+s+s1}{\PYZsq{}}\PY{p}{:} \PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{POMORSKIE}\PY{l+s+s1}{\PYZsq{}}\PY{p}{,}
|
|
\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{warmińsko\PYZhy{}mazurskie}\PY{l+s+s1}{\PYZsq{}}\PY{p}{:} \PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{WARMIŃSKO\PYZhy{}MAZURSKIE}\PY{l+s+s1}{\PYZsq{}}\PY{p}{,}
|
|
\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{wielkopolskie}\PY{l+s+s1}{\PYZsq{}}\PY{p}{:} \PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{WIELKOPOLSKIE}\PY{l+s+s1}{\PYZsq{}}\PY{p}{,}
|
|
\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{zachodniopomorskie}\PY{l+s+s1}{\PYZsq{}}\PY{p}{:} \PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{ZACHODNIOPOMORSKIE}\PY{l+s+s1}{\PYZsq{}}\PY{p}{,}
|
|
\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{łódzkie}\PY{l+s+s1}{\PYZsq{}}\PY{p}{:} \PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{ŁÓDZKIE}\PY{l+s+s1}{\PYZsq{}}\PY{p}{,}
|
|
\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{śląskie}\PY{l+s+s1}{\PYZsq{}}\PY{p}{:} \PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{ŚLĄSKIE}\PY{l+s+s1}{\PYZsq{}}\PY{p}{,}
|
|
\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{świętokrzyskie}\PY{l+s+s1}{\PYZsq{}}\PY{p}{:} \PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{ŚWIĘTOKRZYSKIE}\PY{l+s+s1}{\PYZsq{}}
|
|
\PY{p}{\PYZcb{}}
|
|
\PY{n}{gdf}\PY{p}{[}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Wojewodztwo}\PY{l+s+s1}{\PYZsq{}}\PY{p}{]} \PY{o}{=} \PY{n}{gdf}\PY{p}{[}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{nazwa}\PY{l+s+s1}{\PYZsq{}}\PY{p}{]}\PY{o}{.}\PY{n}{map}\PY{p}{(}\PY{n}{mapping}\PY{p}{)}
|
|
|
|
\PY{c+c1}{\PYZsh{} Połącz dane z prognozą z geometrią województw}
|
|
\PY{n}{map\PYZus{}df} \PY{o}{=} \PY{n}{gdf}\PY{o}{.}\PY{n}{merge}\PY{p}{(}\PY{n}{results\PYZus{}df}\PY{p}{,} \PY{n}{on}\PY{o}{=}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Wojewodztwo}\PY{l+s+s1}{\PYZsq{}}\PY{p}{)}
|
|
\PY{n}{map\PYZus{}df}\PY{p}{[}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Prognoza}\PY{l+s+s1}{\PYZsq{}}\PY{p}{]} \PY{o}{=} \PY{n}{map\PYZus{}df}\PY{p}{[}\PY{p}{[}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Prognoza\PYZus{}nast\PYZus{}Q1}\PY{l+s+s1}{\PYZsq{}}\PY{p}{,} \PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Prognoza\PYZus{}nast\PYZus{}Q2}\PY{l+s+s1}{\PYZsq{}}\PY{p}{,} \PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Prognoza\PYZus{}nast\PYZus{}Q3}\PY{l+s+s1}{\PYZsq{}}\PY{p}{,} \PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Prognoza\PYZus{}nast\PYZus{}Q4}\PY{l+s+s1}{\PYZsq{}}\PY{p}{]}\PY{p}{]}\PY{o}{.}\PY{n}{mean}\PY{p}{(}\PY{n}{axis}\PY{o}{=}\PY{l+m+mi}{1}\PY{p}{)}
|
|
|
|
\PY{c+c1}{\PYZsh{} Wizualizacja}
|
|
\PY{n}{fig}\PY{p}{,} \PY{n}{ax} \PY{o}{=} \PY{n}{plt}\PY{o}{.}\PY{n}{subplots}\PY{p}{(}\PY{l+m+mi}{1}\PY{p}{,} \PY{l+m+mi}{1}\PY{p}{,} \PY{n}{figsize}\PY{o}{=}\PY{p}{(}\PY{l+m+mi}{20}\PY{p}{,} \PY{l+m+mi}{12}\PY{p}{)}\PY{p}{)}
|
|
\PY{n}{map\PYZus{}df}\PY{o}{.}\PY{n}{plot}\PY{p}{(}\PY{n}{column}\PY{o}{=}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Prognoza}\PY{l+s+s1}{\PYZsq{}}\PY{p}{,} \PY{n}{cmap}\PY{o}{=}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{viridis}\PY{l+s+s1}{\PYZsq{}}\PY{p}{,} \PY{n}{linewidth}\PY{o}{=}\PY{l+m+mf}{0.8}\PY{p}{,} \PY{n}{ax}\PY{o}{=}\PY{n}{ax}\PY{p}{,} \PY{n}{edgecolor}\PY{o}{=}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{0.8}\PY{l+s+s1}{\PYZsq{}}\PY{p}{,} \PY{n}{legend}\PY{o}{=}\PY{k+kc}{True}\PY{p}{)}
|
|
\PY{n}{ax}\PY{o}{.}\PY{n}{set\PYZus{}title}\PY{p}{(}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Prognozowana inflacja w najbliższym kwartale (wg województw)}\PY{l+s+s1}{\PYZsq{}}\PY{p}{,} \PY{n}{fontdict}\PY{o}{=}\PY{p}{\PYZob{}}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{fontsize}\PY{l+s+s1}{\PYZsq{}}\PY{p}{:}\PY{l+m+mi}{16}\PY{p}{\PYZcb{}}\PY{p}{)}
|
|
\PY{n}{ax}\PY{o}{.}\PY{n}{axis}\PY{p}{(}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{off}\PY{l+s+s1}{\PYZsq{}}\PY{p}{)}
|
|
|
|
\PY{c+c1}{\PYZsh{} Etykiety}
|
|
\PY{k}{for} \PY{n}{idx}\PY{p}{,} \PY{n}{row} \PY{o+ow}{in} \PY{n}{map\PYZus{}df}\PY{o}{.}\PY{n}{iterrows}\PY{p}{(}\PY{p}{)}\PY{p}{:}
|
|
\PY{n}{plt}\PY{o}{.}\PY{n}{annotate}\PY{p}{(}\PY{l+s+sa}{f}\PY{l+s+s2}{\PYZdq{}}\PY{l+s+si}{\PYZob{}}\PY{n}{row}\PY{p}{[}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Prognoza}\PY{l+s+s1}{\PYZsq{}}\PY{p}{]}\PY{l+s+si}{:}\PY{l+s+s2}{.2f}\PY{l+s+si}{\PYZcb{}}\PY{l+s+s2}{\PYZdq{}}\PY{p}{,}
|
|
\PY{n}{xy}\PY{o}{=}\PY{p}{(}\PY{n}{row}\PY{p}{[}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{geometry}\PY{l+s+s1}{\PYZsq{}}\PY{p}{]}\PY{o}{.}\PY{n}{centroid}\PY{o}{.}\PY{n}{x}\PY{p}{,} \PY{n}{row}\PY{p}{[}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{geometry}\PY{l+s+s1}{\PYZsq{}}\PY{p}{]}\PY{o}{.}\PY{n}{centroid}\PY{o}{.}\PY{n}{y}\PY{p}{)}\PY{p}{,}
|
|
\PY{n}{horizontalalignment}\PY{o}{=}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{center}\PY{l+s+s1}{\PYZsq{}}\PY{p}{,} \PY{n}{fontsize}\PY{o}{=}\PY{l+m+mi}{9}\PY{p}{)}
|
|
\PY{n}{plt}\PY{o}{.}\PY{n}{show}\PY{p}{(}\PY{p}{)}
|
|
\end{Verbatim}
|
|
\end{tcolorbox}
|
|
|
|
\begin{center}
|
|
\adjustimage{max size={0.9\linewidth}{0.9\paperheight}}{ASC_files/ASC_21_0.png}
|
|
\end{center}
|
|
{ \hspace*{\fill} \\}
|
|
|
|
\emph{Mapa: Prognozowane średnie wartości inflacji w nadchodzących
|
|
kwartałach.}
|
|
|
|
\begin{center}\rule{0.5\linewidth}{0.5pt}\end{center}
|
|
|
|
\section{Wyniki obliczeń}\label{wyniki-obliczeux144}
|
|
|
|
\begin{itemize}
|
|
\tightlist
|
|
\item
|
|
Dane obejmujące lata 2005--2024 wykazują umiarkowaną zmienność
|
|
wskaźnika inflacji w skali kraju i regionów, a także delikatną
|
|
sezonowość kwartalną (najwyższe wartości na początku roku).
|
|
\item
|
|
W analizowanym okresie wyraźny wzrost inflacji (lata 2021--2023) był
|
|
związany z globalnymi zjawiskami gospodarczymi (np. pandemia
|
|
COVID-19), co odnotowano we wszystkich województwach.
|
|
\item
|
|
Najtrafniejsze prognozy (najniższe MAE i RMSE) uzyskano dla województw
|
|
o stabilniejszym przebiegu inflacji (dolnośląskie, opolskie,
|
|
podkarpackie, śląskie).
|
|
\item
|
|
Największą prognozowaną dynamikę inflacji w najbliższych czterech
|
|
kwartałach odnotowano w województwach lubuskim, pomorskim, łódzkim
|
|
oraz kujawsko-pomorskim.
|
|
\item
|
|
Wyniki prognoz potwierdzają, że inflacja w Polsce ma w dużej mierze
|
|
charakter ogólnokrajowy, a różnice regionalne są stosunkowo
|
|
niewielkie.
|
|
\end{itemize}
|
|
|
|
\subsection{Podsumowanie i wnioski}\label{podsumowanie-i-wnioski}
|
|
|
|
Przeprowadzona analiza umożliwiła szczegółowe zbadanie dynamiki inflacji
|
|
w polskich województwach w latach 2005--2024 oraz opracowanie
|
|
wiarygodnych prognoz na kolejne kwartały. Dane wykazały umiarkowaną
|
|
zmienność i sezonowość wskaźnika inflacji, a także silny wpływ czynników
|
|
ogólnokrajowych na przebieg procesów inflacyjnych. Modele ARIMA
|
|
pozwoliły uzyskać dobrej jakości prognozy dla większości regionów.
|
|
Wizualizacja wyników na mapie Polski ułatwia intuicyjne porównanie
|
|
sytuacji w poszczególnych województwach.
|
|
|
|
Należy pamiętać, że prognozy opierają się na założeniu kontynuacji
|
|
dotychczasowych trendów i nie uwzględniają potencjalnych,
|
|
nieprzewidywalnych zdarzeń przyszłych. W przyszłych badaniach warto
|
|
rozważyć uwzględnienie dodatkowych zmiennych makroekonomicznych oraz
|
|
alternatywnych metod prognostycznych dla jeszcze lepszego odwzorowania
|
|
procesów inflacyjnych w Polsce.
|
|
|
|
|
|
% Add a bibliography block to the postdoc
|
|
|
|
|
|
|
|
\end{document}
|