From a8e7a2700c6cf1c1dfe74fef8b3a334d701215c5 Mon Sep 17 00:00:00 2001 From: Hahnbee Lee <55263191+hahnbeelee@users.noreply.github.com> Date: Mon, 31 Jul 2023 14:26:30 -0700 Subject: [PATCH 01/61] working --- .gitignore | 2 + nbs/_extensions/mintlify/_extension.yml | 29 +++++ nbs/_extensions/mintlify/mintlify.lua | 53 ++++++++ .../mintlify/mintlify_renderers.lua | 22 ++++ nbs/_extensions/mintlify/mintlify_utils.lua | 33 +++++ nbs/_extensions/mintlify/mintlify_writer.lua | 113 ++++++++++++++++++ nbs/_quarto.yml | 14 +-- 7 files changed, 257 insertions(+), 9 deletions(-) create mode 100644 nbs/_extensions/mintlify/_extension.yml create mode 100644 nbs/_extensions/mintlify/mintlify.lua create mode 100644 nbs/_extensions/mintlify/mintlify_renderers.lua create mode 100644 nbs/_extensions/mintlify/mintlify_utils.lua create mode 100644 nbs/_extensions/mintlify/mintlify_writer.lua diff --git a/.gitignore b/.gitignore index 44f997cf7..0ba7ed1d9 100644 --- a/.gitignore +++ b/.gitignore @@ -21,3 +21,5 @@ sidebar.yml nbs/.last_checked .venv .idea + +/.luarc.json diff --git a/nbs/_extensions/mintlify/_extension.yml b/nbs/_extensions/mintlify/_extension.yml new file mode 100644 index 000000000..d8b187db4 --- /dev/null +++ b/nbs/_extensions/mintlify/_extension.yml @@ -0,0 +1,29 @@ +title: Mintlify +author: Mintlify, Inc +organization: Mintlify +contributes: + project: + project: + type: default + detect: + - ["mint.json"] + render: + - "**/*.qmd" + - "**/*.ipynb" + format: mintlify-md + formats: + md: + # Although we use a custom writer, we still need the variants here the lua filters to render correctly. + # Ideally, we would forward the variants to the custom writer. + variant: gfm+pipe_tables+tex_math_dollars+header_attributes+raw_html+all_symbols_escapable+backtick_code_blocks+fenced_code_blocks+space_in_atx_header+intraword_underscores+lists_without_preceding_blankline+shortcut_reference_links + writer: mintlify_writer.lua + output-ext: mdx + inline-includes: true + preserve-yaml: true + wrap: none + fig-format: retina + fig-width: 8 + fig-height: 5 + html-math-method: webtex + filters: + - mintlify.lua diff --git a/nbs/_extensions/mintlify/mintlify.lua b/nbs/_extensions/mintlify/mintlify.lua new file mode 100644 index 000000000..bbe60a9f1 --- /dev/null +++ b/nbs/_extensions/mintlify/mintlify.lua @@ -0,0 +1,53 @@ +-- mintlify.lua + +local kQuartoRawHtml = "quartoRawHtml" +local rawHtmlVars = pandoc.List() + +function Pandoc(doc) + -- insert exports at the top if we have them + if #rawHtmlVars > 0 then + local exports = ("export const %s =\n[%s];"):format(kQuartoRawHtml, + table.concat( + rawHtmlVars:map(function(var) return '`'.. var .. '`' end), + "," + ) + ) + doc.blocks:insert(1, pandoc.RawBlock("markdown", exports .. "\n")) + end + + return doc +end + + +-- strip image attributes (which may result from +-- fig-format: retina) as they will result in an +-- img tag which won't hit the asset pipeline +function Image(el) + el.attr = pandoc.Attr() + return el +end + +-- header attributes only support id +function Header(el) + el.attr = pandoc.Attr(el.identifier) + return el +end + +-- transform 'mdx' into passthrough content, transform 'html' +-- into raw commamark to pass through via dangerouslySetInnerHTML +function RawBlock(el) + if el.format == 'mdx' then + return pandoc.CodeBlock(el.text, pandoc.Attr("", {"mdx-code-block"})) + elseif el.format == 'html' then + -- track the raw html vars (we'll insert them at the top later on as + -- mdx requires all exports be declared together) + local html = string.gsub(el.text, "\n+", "\n") + rawHtmlVars:insert(html) + + -- generate a div container for the raw html and return it as the block + local html = ("
") + :format(kQuartoRawHtml, #rawHtmlVars-1) .. "\n" + return pandoc.RawBlock("html", html) + end +end + diff --git a/nbs/_extensions/mintlify/mintlify_renderers.lua b/nbs/_extensions/mintlify/mintlify_renderers.lua new file mode 100644 index 000000000..029b3fbf1 --- /dev/null +++ b/nbs/_extensions/mintlify/mintlify_renderers.lua @@ -0,0 +1,22 @@ +local codeBlock = require('mintlify_utils').codeBlock + +-- print("Found me") +-- _quarto.ast.add_renderer("Callout", function() +-- return we_are_docusaurus -- detect docusaurus-md +-- end, function(node) +-- local admonition = pandoc.List() +-- admonition:insert(pandoc.RawBlock("markdown", "\n:::" .. node.type)) +-- if node.title then +-- admonition:insert(pandoc.Header(2, node.title)) +-- end +-- local content = node.content +-- if type(content) == "table" then +-- admonition:extend(content) +-- else +-- admonition:insert(content) +-- end +-- admonition:insert(pandoc.RawBlock("markdown", ":::\n")) +-- return admonition +-- end) + +return {} -- return an empty table as a hack to pretend we're a shortcode handler for now \ No newline at end of file diff --git a/nbs/_extensions/mintlify/mintlify_utils.lua b/nbs/_extensions/mintlify/mintlify_utils.lua new file mode 100644 index 000000000..ae076ddaa --- /dev/null +++ b/nbs/_extensions/mintlify/mintlify_utils.lua @@ -0,0 +1,33 @@ +function codeBlock(el, filename) + local lang = el.attr.classes[1] + local title = filename or el.attr.attributes["filename"] or el.attr.attributes["title"] + local showLineNumbers = el.attr.classes:includes('number-lines') + if lang or title or showLineNumbers then + if not lang then + lang = 'text' + end + local code = "\n```" .. lang + if showLineNumbers then + code = code .. " showLineNumbers" + end + if title then + code = code .. " title=\"" .. title .. "\"" + end + code = code .. "\n" .. el.text .. "\n```\n" + + -- docusaures code block attributes don't conform to any syntax + -- that pandoc natively understands, so return the CodeBlock as + -- "raw" markdown (so it bypasses pandoc processing entirely) + return pandoc.RawBlock("markdown", code) + + elseif #el.attr.classes == 0 then + el.attr.classes:insert('text') + return el + end + + return nil +end + +return { + codeBlock = codeBlock +} \ No newline at end of file diff --git a/nbs/_extensions/mintlify/mintlify_writer.lua b/nbs/_extensions/mintlify/mintlify_writer.lua new file mode 100644 index 000000000..daa7d7019 --- /dev/null +++ b/nbs/_extensions/mintlify/mintlify_writer.lua @@ -0,0 +1,113 @@ + +local codeBlock = require('mintlify_utils').codeBlock + + +local reactPreamble = pandoc.List() + +local function addPreamble(preamble) + if not reactPreamble:includes(preamble) then + reactPreamble:insert(preamble) + end +end + +local function jsx(content) + return pandoc.RawBlock("markdown", content) +end + +local function tabset(node, filter) + -- note groupId + local groupId = "" + local group = node.attr.attributes["group"] + if group then + groupId = ([[ groupId="%s"]]):format(group) + end + + -- create tabs + local tabs = pandoc.Div({}) + tabs.content:insert(jsx("")) + + -- iterate through content + for i=1,#node.tabs do + local content = node.tabs[i].content + local title = node.tabs[i].title + + tabs.content:insert(jsx(([[]]):format(pandoc.utils.stringify(title)))) + local result = quarto._quarto.ast.walk(content, filter) + if type(result) == "table" then + tabs.content:extend(result) + else + tabs.content:insert(result) + end + tabs.content:insert(jsx("")) + end + + -- end tab and tabset + tabs.content:insert(jsx("")) + + -- ensure we have required deps + addPreamble("import Tabs from '@theme/Tabs';") + addPreamble("import TabItem from '@theme/TabItem';") + + return tabs +end + +function Writer(doc, opts) + local filter + filter = { + CodeBlock = codeBlock, + + DecoratedCodeBlock = function(node) + local el = node.code_block + return codeBlock(el, node.filename) + end, + + Tabset = function(node) + return tabset(node, filter) + end, + + Callout = function(node) + local admonition = pandoc.List() + admonition:insert(pandoc.RawBlock("markdown", "\n:::" .. node.type)) + if node.title then + admonition:insert(pandoc.Header(2, node.title)) + end + local content = node.content + if type(content) == "table" then + admonition:extend(content) + else + admonition:insert(content) + end + admonition:insert(pandoc.RawBlock("markdown", ":::\n")) + return admonition + end + } + + doc = quarto._quarto.ast.walk(doc, filter) + + -- insert react preamble if we have it + if #reactPreamble > 0 then + local preamble = table.concat(reactPreamble, "\n") + doc.blocks:insert(1, pandoc.RawBlock("markdown", preamble .. "\n")) + end + + local extensions = { + yaml_metadata_block = true, + pipe_tables = true, + footnotes = true, + tex_math_dollars = true, + header_attributes = true, + raw_html = true, + all_symbols_escapable = true, + backtick_code_blocks = true, + fenced_code_blocks = true, + space_in_atx_header = true, + intraword_underscores = true, + lists_without_preceding_blankline = true, + shortcut_reference_links = true, + } + + return pandoc.write(doc, { + format = 'markdown_strict', + extensions = extensions + }, opts) +end diff --git a/nbs/_quarto.yml b/nbs/_quarto.yml index f708a5614..26cbcb454 100644 --- a/nbs/_quarto.yml +++ b/nbs/_quarto.yml @@ -1,16 +1,12 @@ project: - type: website + type: mintlify format: - html: - theme: cosmo - fontsize: 1em - linestretch: 1.7 - css: styles.css - toc: true + mintlify-md: + code-fold: true website: - twitter-card: + twitter-card: image: "https://farm6.staticflickr.com/5510/14338202952_93595258ff_z.jpg" site: "@Nixtlainc" open-graph: @@ -35,7 +31,7 @@ website: href: https://github.com/nixtla/neuralforecast - text: "HierarchicalForecast πŸ‘‘" href: https://github.com/nixtla/hierarchicalforecast - + - text: "Help" menu: - text: "Report an Issue" From fed2a6c734fe3065eb1b737e80c78ce506c3850d Mon Sep 17 00:00:00 2001 From: Hahnbee Lee <55263191+hahnbeelee@users.noreply.github.com> Date: Mon, 31 Jul 2023 14:27:44 -0700 Subject: [PATCH 02/61] remove header_attributes --- nbs/_extensions/mintlify/_extension.yml | 2 +- nbs/_extensions/mintlify/mintlify_writer.lua | 12 +++++------- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/nbs/_extensions/mintlify/_extension.yml b/nbs/_extensions/mintlify/_extension.yml index d8b187db4..b44062e4d 100644 --- a/nbs/_extensions/mintlify/_extension.yml +++ b/nbs/_extensions/mintlify/_extension.yml @@ -15,7 +15,7 @@ contributes: md: # Although we use a custom writer, we still need the variants here the lua filters to render correctly. # Ideally, we would forward the variants to the custom writer. - variant: gfm+pipe_tables+tex_math_dollars+header_attributes+raw_html+all_symbols_escapable+backtick_code_blocks+fenced_code_blocks+space_in_atx_header+intraword_underscores+lists_without_preceding_blankline+shortcut_reference_links + variant: gfm+pipe_tables+tex_math_dollars+raw_html+all_symbols_escapable+backtick_code_blocks+fenced_code_blocks+space_in_atx_header+intraword_underscores+lists_without_preceding_blankline+shortcut_reference_links writer: mintlify_writer.lua output-ext: mdx inline-includes: true diff --git a/nbs/_extensions/mintlify/mintlify_writer.lua b/nbs/_extensions/mintlify/mintlify_writer.lua index daa7d7019..1ea1721d0 100644 --- a/nbs/_extensions/mintlify/mintlify_writer.lua +++ b/nbs/_extensions/mintlify/mintlify_writer.lua @@ -1,4 +1,3 @@ - local codeBlock = require('mintlify_utils').codeBlock @@ -21,13 +20,13 @@ local function tabset(node, filter) if group then groupId = ([[ groupId="%s"]]):format(group) end - + -- create tabs local tabs = pandoc.Div({}) tabs.content:insert(jsx("")) - + -- iterate through content - for i=1,#node.tabs do + for i = 1, #node.tabs do local content = node.tabs[i].content local title = node.tabs[i].title @@ -51,7 +50,7 @@ local function tabset(node, filter) return tabs end -function Writer(doc, opts) +function Writer(doc, opts) local filter filter = { CodeBlock = codeBlock, @@ -81,7 +80,7 @@ function Writer(doc, opts) return admonition end } - + doc = quarto._quarto.ast.walk(doc, filter) -- insert react preamble if we have it @@ -95,7 +94,6 @@ function Writer(doc, opts) pipe_tables = true, footnotes = true, tex_math_dollars = true, - header_attributes = true, raw_html = true, all_symbols_escapable = true, backtick_code_blocks = true, From 22eb74b9f88a955554c55b378a4a30fa0851946d Mon Sep 17 00:00:00 2001 From: Hahnbee Lee <55263191+hahnbeelee@users.noreply.github.com> Date: Mon, 31 Jul 2023 15:05:46 -0700 Subject: [PATCH 03/61] remove fenced code blocks --- nbs/_extensions/mintlify/_extension.yml | 2 +- nbs/_extensions/mintlify/mintlify_writer.lua | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/nbs/_extensions/mintlify/_extension.yml b/nbs/_extensions/mintlify/_extension.yml index b44062e4d..2480e6b61 100644 --- a/nbs/_extensions/mintlify/_extension.yml +++ b/nbs/_extensions/mintlify/_extension.yml @@ -15,7 +15,7 @@ contributes: md: # Although we use a custom writer, we still need the variants here the lua filters to render correctly. # Ideally, we would forward the variants to the custom writer. - variant: gfm+pipe_tables+tex_math_dollars+raw_html+all_symbols_escapable+backtick_code_blocks+fenced_code_blocks+space_in_atx_header+intraword_underscores+lists_without_preceding_blankline+shortcut_reference_links + variant: gfm+pipe_tables+tex_math_dollars+raw_html+all_symbols_escapable+backtick_code_blocks+space_in_atx_header+intraword_underscores+lists_without_preceding_blankline+shortcut_reference_links writer: mintlify_writer.lua output-ext: mdx inline-includes: true diff --git a/nbs/_extensions/mintlify/mintlify_writer.lua b/nbs/_extensions/mintlify/mintlify_writer.lua index 1ea1721d0..e8f024f1b 100644 --- a/nbs/_extensions/mintlify/mintlify_writer.lua +++ b/nbs/_extensions/mintlify/mintlify_writer.lua @@ -97,7 +97,6 @@ function Writer(doc, opts) raw_html = true, all_symbols_escapable = true, backtick_code_blocks = true, - fenced_code_blocks = true, space_in_atx_header = true, intraword_underscores = true, lists_without_preceding_blankline = true, From 41a4570f7ee297f1af47883be0531c53757cc241 Mon Sep 17 00:00:00 2001 From: Hahnbee Lee <55263191+hahnbeelee@users.noreply.github.com> Date: Mon, 31 Jul 2023 15:52:56 -0700 Subject: [PATCH 04/61] Mintlify callouts --- nbs/_extensions/mintlify/mintlify_writer.lua | 25 +++++++++++++++----- 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/nbs/_extensions/mintlify/mintlify_writer.lua b/nbs/_extensions/mintlify/mintlify_writer.lua index e8f024f1b..289e71746 100644 --- a/nbs/_extensions/mintlify/mintlify_writer.lua +++ b/nbs/_extensions/mintlify/mintlify_writer.lua @@ -3,6 +3,18 @@ local codeBlock = require('mintlify_utils').codeBlock local reactPreamble = pandoc.List() +function capitalizeFirstLetter(str) + return (str:gsub("^%l", string.upper)) +end + +function castToMintlifyCallout(str) + if str == "caution" or str == "danger" then + return "Warning" + else + return capitalizeFirstLetter(str) + end +end + local function addPreamble(preamble) if not reactPreamble:includes(preamble) then reactPreamble:insert(preamble) @@ -65,18 +77,19 @@ function Writer(doc, opts) end, Callout = function(node) - local admonition = pandoc.List() - admonition:insert(pandoc.RawBlock("markdown", "\n:::" .. node.type)) + local admonition = pandoc.Div({}) + local mintlifyCallout = castToMintlifyCallout(node.type) + admonition.content:insert(jsx("<" .. mintlifyCallout .. ">")) if node.title then - admonition:insert(pandoc.Header(2, node.title)) + admonition.content:insert(pandoc.Header(2, node.title)) end local content = node.content if type(content) == "table" then - admonition:extend(content) + admonition.content:extend(content) else - admonition:insert(content) + admonition.content:insert(content) end - admonition:insert(pandoc.RawBlock("markdown", ":::\n")) + admonition.content:insert(jsx("")) return admonition end } From 19e24bfb72c02ca0052e1fc5c8805fb486e9e3e5 Mon Sep 17 00:00:00 2001 From: Hahnbee Lee <55263191+hahnbeelee@users.noreply.github.com> Date: Mon, 31 Jul 2023 16:34:03 -0700 Subject: [PATCH 05/61] Add mint.json --- nbs/_quarto.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nbs/_quarto.yml b/nbs/_quarto.yml index 26cbcb454..85280f992 100644 --- a/nbs/_quarto.yml +++ b/nbs/_quarto.yml @@ -52,4 +52,4 @@ website: body-footer: | Give us a ⭐ on [Github](https://github.com/nixtla/statsforecast) -metadata-files: [nbdev.yml, sidebar.yml] +metadata-files: [nbdev.yml, sidebar.yml, mint.json], From 167ff93895131ade076e7ae517b942d9fce8bd96 Mon Sep 17 00:00:00 2001 From: Hahnbee Lee <55263191+hahnbeelee@users.noreply.github.com> Date: Mon, 31 Jul 2023 17:10:11 -0700 Subject: [PATCH 06/61] remove comma --- nbs/_quarto.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/nbs/_quarto.yml b/nbs/_quarto.yml index 85280f992..90ca9f095 100644 --- a/nbs/_quarto.yml +++ b/nbs/_quarto.yml @@ -5,6 +5,10 @@ format: mintlify-md: code-fold: true +default: + body-footer: | + Give us a ⭐ on [Github](https://github.com/nixtla/statsforecast) + website: twitter-card: image: "https://farm6.staticflickr.com/5510/14338202952_93595258ff_z.jpg" @@ -52,4 +56,4 @@ website: body-footer: | Give us a ⭐ on [Github](https://github.com/nixtla/statsforecast) -metadata-files: [nbdev.yml, sidebar.yml, mint.json], +metadata-files: [nbdev.yml, sidebar.yml, mint.json] From feb09aa5c5b6efd371aa29b4c7f108a2b70a6f86 Mon Sep 17 00:00:00 2001 From: Hahnbee Lee <55263191+hahnbeelee@users.noreply.github.com> Date: Mon, 31 Jul 2023 17:10:18 -0700 Subject: [PATCH 07/61] remove commented code --- .../mintlify/mintlify_renderers.lua | 21 +------------------ 1 file changed, 1 insertion(+), 20 deletions(-) diff --git a/nbs/_extensions/mintlify/mintlify_renderers.lua b/nbs/_extensions/mintlify/mintlify_renderers.lua index 029b3fbf1..2597fbbf1 100644 --- a/nbs/_extensions/mintlify/mintlify_renderers.lua +++ b/nbs/_extensions/mintlify/mintlify_renderers.lua @@ -1,22 +1,3 @@ local codeBlock = require('mintlify_utils').codeBlock --- print("Found me") --- _quarto.ast.add_renderer("Callout", function() --- return we_are_docusaurus -- detect docusaurus-md --- end, function(node) --- local admonition = pandoc.List() --- admonition:insert(pandoc.RawBlock("markdown", "\n:::" .. node.type)) --- if node.title then --- admonition:insert(pandoc.Header(2, node.title)) --- end --- local content = node.content --- if type(content) == "table" then --- admonition:extend(content) --- else --- admonition:insert(content) --- end --- admonition:insert(pandoc.RawBlock("markdown", ":::\n")) --- return admonition --- end) - -return {} -- return an empty table as a hack to pretend we're a shortcode handler for now \ No newline at end of file +return {} -- return an empty table as a hack to pretend we're a shortcode handler for now From d2630a85417757e4764ff14444565e547d526664 Mon Sep 17 00:00:00 2001 From: Hahnbee Lee <55263191+hahnbeelee@users.noreply.github.com> Date: Tue, 1 Aug 2023 00:35:24 -0700 Subject: [PATCH 08/61] delete unused info --- nbs/_quarto.yml | 49 +----- nbs/custom.yml | 22 --- nbs/sidebar.yml | 17 -- nbs/styles.css | 416 ------------------------------------------------ 4 files changed, 1 insertion(+), 503 deletions(-) delete mode 100644 nbs/custom.yml delete mode 100644 nbs/sidebar.yml delete mode 100644 nbs/styles.css diff --git a/nbs/_quarto.yml b/nbs/_quarto.yml index 90ca9f095..179051882 100644 --- a/nbs/_quarto.yml +++ b/nbs/_quarto.yml @@ -9,51 +9,4 @@ default: body-footer: | Give us a ⭐ on [Github](https://github.com/nixtla/statsforecast) -website: - twitter-card: - image: "https://farm6.staticflickr.com/5510/14338202952_93595258ff_z.jpg" - site: "@Nixtlainc" - open-graph: - image: "https://github.com/Nixtla/styles/blob/2abf51612584169874c90cd7c4d347e3917eaf73/images/Banner%20Github.png" - google-analytics: "G-NXJNCVR18L" - repo-actions: [issue] - favicon: favicon_png.png - navbar: - background: primary - search: true - collapse-below: lg - left: - - text: "Get Started" - href: docs/getting-started/getting_started_short.html - - text: "NixtlaVerse" - menu: - - text: "StatsForecast ⚑️" - href: https://github.com/nixtla/statsforecast - - text: "MLForecast πŸ€–" - href: https://github.com/nixtla/mlforecast - - text: "NeuralForecast 🧠" - href: https://github.com/nixtla/neuralforecast - - text: "HierarchicalForecast πŸ‘‘" - href: https://github.com/nixtla/hierarchicalforecast - - - text: "Help" - menu: - - text: "Report an Issue" - icon: bug - href: https://github.com/nixtla/statsforecast/issues/new/choose - - text: "Join our Slack" - icon: chat-right-text - href: https://join.slack.com/t/nixtlaworkspace/shared_invite/zt-135dssye9-fWTzMpv2WBthq8NK0Yvu6A - right: - - icon: github - href: "https://github.com/nixtla/statsforecast" - - icon: twitter - href: https://twitter.com/nixtlainc - aria-label: Nixtla Twitter - - sidebar: - style: floating - body-footer: | - Give us a ⭐ on [Github](https://github.com/nixtla/statsforecast) - -metadata-files: [nbdev.yml, sidebar.yml, mint.json] +metadata-files: [mint.json] diff --git a/nbs/custom.yml b/nbs/custom.yml deleted file mode 100644 index 1b2c854c2..000000000 --- a/nbs/custom.yml +++ /dev/null @@ -1,22 +0,0 @@ -website: - logo: https://github.com/Nixtla/styles/blob/b9ea432cfa2dae20fc84d8634cae6db902f9ca3f/images/Nixtla_Blanco.png - reader-mode: false - navbar: - collapse-below: lg - left: - - text: "Get Started" - href: examples/Getting_Started_with_Auto_Arima_and_ETS.ipynb - - text: "Experiments" - href: https://github.com/Nixtla/statsforecast/tree/main/experiments - - text: "Help" - menu: - - text: "Report an Issue" - icon: bug - href: https://github.com/nixtla/statsforecast/issues - - text: "Slack Nixtla" - icon: chat-right-text - href: https://join.slack.com/t/nixtlaworkspace/shared_invite/zt-135dssye9-fWTzMpv2WBthq8NK0Yvu6A - right: - - icon: twitter - href: https://twitter.com/nixtlainc - aria-label: Nixtla Twitter diff --git a/nbs/sidebar.yml b/nbs/sidebar.yml deleted file mode 100644 index e9f29d299..000000000 --- a/nbs/sidebar.yml +++ /dev/null @@ -1,17 +0,0 @@ -website: - reader-mode: false - sidebar: - collapse-level: 1 - contents: - - index.ipynb - - text: "--" - - section: "Getting Started" - contents: docs/getting-started/* - - section: "Tutorials" - contents: docs/tutorials/* - - section: "How-To Guides" - contents: docs/how-to-guides/* - - section: "API Reference" - contents: src/core/* - - section: "Contributing" - contents: docs/contribute/* diff --git a/nbs/styles.css b/nbs/styles.css deleted file mode 100644 index ef52213db..000000000 --- a/nbs/styles.css +++ /dev/null @@ -1,416 +0,0 @@ -/* old */ -.cell { - margin-bottom: 1rem; -} - -.cell > .sourceCode { - margin-bottom: 0; -} - -.cell-output > pre { - margin-bottom: 0; -} - -.cell-output > pre, .cell-output > .sourceCode > pre, .cell-output-stdout > pre { - margin-left: 0.8rem; - margin-top: 0; - background: none; - border-left: 2px solid lightsalmon; - border-top-left-radius: 0; - border-top-right-radius: 0; -} - -.cell-output > .sourceCode { - border: none; - background: none; - margin-top: 0; -} - -.cell-output > div { - display: inline-block; -} - -div.description { - padding-left: 2px; - padding-top: 5px; - font-style: italic; - font-size: 135%; - opacity: 70%; -} - -/* show_doc signature */ -blockquote > pre { - font-size: 14px; -} - -.table { - font-size: 16px; - /* disable striped tables */ - --bs-table-striped-bg: var(--bs-table-bg); -} - -.quarto-figure-center > figure > figcaption { - text-align: center; -} - -.figure-caption { - font-size: 75%; - font-style: italic; -} - -/* new */ -@font-face { - font-family: 'Inter'; - src: url('./assets/Inter-VariableFont.ttf') format('ttf') -} - -:root { - --primary: rgb(75, 176, 215); - --secondary: rgb(255, 112, 0); -} - -html, body { - color: #374151; - font-family: 'Inter', sans-serif; -} - -header { - transform: translateY(0) !important; -} - -#title-block-header { - margin-block-end: 2rem; -} - -#quarto-sidebar { - top: 62px !important; - z-index: 100; -} - -.content a { - color: rgb(12, 18, 26); - text-decoration: none; - font-weight: 600; - border-bottom: 1px solid var(--primary); -} - -.content a:hover { - border-bottom: 2px solid var(--primary); -} - -a > code { - background-color: transparent !important; -} - -a > code:hover { - color: var(--primary) !important; -} - -.navbar { - background: rgba(255, 255, 255, 0.95); - backdrop-filter: blur(8px); - -webkit-backdrop-filter: blur(8px); /* For Safari support */ - border-bottom: 1px solid rgba(17, 24,39, 0.05); -} - -.nav-link { - color:rgba(17, 24,39, 0.6) !important; - font-size: 0.875rem; -} - -.nav-link.active { - color:rgb(17, 24,39) !important; -} - -.aa-SubmitIcon { - fill: rgba(17, 24,39, 0.6) !important; - height: 20px !important; - margin-top: -2px; -} - -.navbar #quarto-search { - margin-left: -2px; -} - -.navbar-container { - max-width: 1280px; - margin: 0 auto; -} - -.navbar-brand { - background-image: url('./assets/logo.png'); - background-size: contain; - background-repeat: no-repeat; - background-position: center; - height: 1.25rem; -} - -.navbar-title { - opacity: 0; - pointer-events: none; -} - -.content { - width: 100%; -} - -h1, h2, h3, h4, h5, h6 { - color: rgb(17, 24,39); - margin-top: 3rem; -} - -h1.title { - font-weight: 800; - font-size: 1.875rem; - line-height: 2.25rem; -} - -div.description { - font-style: normal; - font-size: .875rem; - line-height: 1.25rem; -} - -p { - margin-bottom: 1.25rem; -} - -/* menu */ -.sidebar-menu-container > ul > li:first-child > .sidebar-item-container > a > span { - font-weight: 600 !important; - font-size: 0.875rem; - color: var(--secondary); -} - -div.sidebar-item-container { - color: #323232; -} - -.sidebar-divider.hi { - color: rgb(0,0,0, 0.2); - margin-top: 0.5rem; - margin-bottom: 1rem; -} - -#quarto-margin-sidebar { - top: 63px !important; -} - -.menu-text { - font-weight: 400; -} - - -ul.sidebar-section { - padding-left: 0; -} - -.sidebar-link { - line-height: 2.125rem; - padding: 0 0.5rem; -} - -.sidebar-menu-container { - padding-right: 0 !important; -} - -ul.sidebar-section .sidebar-link { - padding-left: 1rem; - width: 100%; -} - -.sidebar-link.active { - background: rgba(255, 112, 0, 0.1); - border-radius: 0.25rem; -} - -.sidebar-link.active span { - font-weight: 600 !important; - color: var(--secondary); -} - -.callout { - border-left: auto !important; - border-radius: 1rem; - padding: 0.75rem; -} - -.callout-tip { - background: rgba(63,182,24, 0.05); - border: 1px solid rgba(63,182,24, 0.25) !important; -} - -.callout-note { - background: rgba(59 , 130, 246, 0.05); - border: 1px solid rgba(59, 130, 246, 0.25) !important; -} - -.callout-style-default > .callout-header { - background: none !important; -} - -code:not(.sourceCode) { - background-color: rgb(249, 250, 251, 0.7) !important; - border: 1px solid rgba(12, 18, 26, 0.1) !important; - border-radius: 0.375rem; - color: rgba(12, 18, 26, 0.8) !important; - font-size: 0.875rem !important; - font-weight: 600 !important; - padding: 0.25rem 0.5rem !important; -} - -div.sourceCode { - background: none; - border: 0; - overflow-x: hidden; -} - -.cell-output { - margin-top: 1rem; -} - -.cell-output pre { - border-radius: 0.375rem; -} - -.cell-output > div { - overflow-x: scroll; -} - -.code-copy-button { - margin: 0.5rem; -} - -pre.sourceCode { - padding: 0; -} - -code { - background-color: rgb(249, 250, 251, 0.7) !important; - border: 1px solid rgba(12, 18, 26, 0.1) !important; - border-radius: 0.75rem; - color: rgba(12, 18, 26, 0.8) !important; - font-size: 0.875rem !important; - font-weight: 600 !important; - padding: 1rem !important; - overflow-x: scroll !important; -} - - - -.cell-output > div { - border: 1px solid rgba(100, 116, 139, 0.2) !important; - border-radius: 1rem; - margin-bottom: 3rem; - margin-top: 3rem; -} - -table, .table { - border-radius: 1rem; - font-size: 0.875rem; - margin-bottom: 0; - max-width: 100%; - overflow-x: scroll; - display: block; -} - -thead { - background: rgba(12, 18, 26, 0.02); - border-bottom-color: rgba(100, 116, 139, 0.2) !important; -} - -thead tr:first-child { - background-color: rgb(249, 250, 251, 0.7) !important; -} - -thead tr:first-child th:first-child { - border-radius: 1rem 0 0 0; -} - -thead tr:first-child th:last-child { - border-radius: 0 1rem 0 0; -} - -th, td { - padding: 0.5rem 1rem !important; - white-space: nowrap !important; -} - -td a, td a code { - white-space: nowrap !important; -} - -tbody { - border-color: transparent !important; - border-top: none !important; -} - -tbody tr:last-child td:first-child { - border-radius: 0 0 0 1rem; -} - -tr.even, tr.odd { - line-height: 2rem; -} - -tr:hover { - background-color: rgba(17, 24, 39, 0.05); -} - -td:first-child, td:last-child { - padding: 0.25rem 1rem !important; -} - -.dropdown-menu.show { - background: white; - border: none; - border-radius: 0.5rem; - box-shadow: 0 2px 4px rgba(0,0,0,0.1); - padding-top: 0.5rem !important; - padding-bottom: 0.25rem !important; -} - -.dropdown-menu li { - padding: 0.25rem 1rem !important; -} - -.dropdown-menu li:hover { - background-color: #e9ecef; -} - -.js-plotly-plot .plotly { - border: none !important; -} - -.svg-container { - border: none !important; -} - -.svg-container > svg { - border-radius: 2rem; -} - -.plotly-graph-div { - border-radius: 5rem; -} - -@media (max-width: 991.98px) { - #quarto-sidebar-glass.show { - z-index: 10001; - } - - #quarto-sidebar { - top: 0 !important; - z-index: 10002 !important; - } - - #quarto-sidebar .sidebar-menu-container { - min-width: unset; - width: calc(100% - 32px); - } - - #quarto-sidebar.show { - max-width: calc(100vw - 32px); - width: 320px !important; - } -} From a18d40b9cdecaf3d5cc26308a6f5ee8bbdc32ef3 Mon Sep 17 00:00:00 2001 From: Hahnbee Lee <55263191+hahnbeelee@users.noreply.github.com> Date: Thu, 3 Aug 2023 13:55:31 -0700 Subject: [PATCH 09/61] decrease header size --- nbs/_extensions/mintlify/mintlify_writer.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nbs/_extensions/mintlify/mintlify_writer.lua b/nbs/_extensions/mintlify/mintlify_writer.lua index 289e71746..87dba356c 100644 --- a/nbs/_extensions/mintlify/mintlify_writer.lua +++ b/nbs/_extensions/mintlify/mintlify_writer.lua @@ -81,7 +81,7 @@ function Writer(doc, opts) local mintlifyCallout = castToMintlifyCallout(node.type) admonition.content:insert(jsx("<" .. mintlifyCallout .. ">")) if node.title then - admonition.content:insert(pandoc.Header(2, node.title)) + admonition.content:insert(pandoc.Header(3, node.title)) end local content = node.content if type(content) == "table" then From 6dd34d21e4cbd59c16a2bcdc63211caa9da5c44c Mon Sep 17 00:00:00 2001 From: Hahnbee Lee <55263191+hahnbeelee@users.noreply.github.com> Date: Fri, 4 Aug 2023 00:45:28 -0700 Subject: [PATCH 10/61] re-add nbdev to metadata-files --- nbs/_quarto.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nbs/_quarto.yml b/nbs/_quarto.yml index 179051882..1ed9d7912 100644 --- a/nbs/_quarto.yml +++ b/nbs/_quarto.yml @@ -9,4 +9,4 @@ default: body-footer: | Give us a ⭐ on [Github](https://github.com/nixtla/statsforecast) -metadata-files: [mint.json] +metadata-files: [nbdev.yml, sidebar.yml, mint.json] From 88238f06ba74d984fc454d8d31186474969fb53c Mon Sep 17 00:00:00 2001 From: Hahnbee Lee <55263191+hahnbeelee@users.noreply.github.com> Date: Wed, 6 Sep 2023 11:44:12 -0700 Subject: [PATCH 11/61] add .luarc.json to gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index adba6ab4f..1a945f599 100644 --- a/.gitignore +++ b/.gitignore @@ -22,3 +22,4 @@ sidebar.yml nbs/.last_checked .venv .idea +.luarc.json From 973c51f2d49901493a606b484d9664957e5e0ed9 Mon Sep 17 00:00:00 2001 From: Hahnbee Lee <55263191+hahnbeelee@users.noreply.github.com> Date: Wed, 6 Sep 2023 11:44:24 -0700 Subject: [PATCH 12/61] add nbdev-plotly to settings.ini --- settings.ini | 1 + 1 file changed, 1 insertion(+) diff --git a/settings.ini b/settings.ini index f6925d856..7ca880425 100644 --- a/settings.ini +++ b/settings.ini @@ -33,3 +33,4 @@ black_formatting = True jupyter_hooks = True clean_ids = True readme_nb = index.ipynb +procs = nbdev_plotly.plotly:PlotlyProc From 6826d2be34e3f1a22d25b80871fd78bf7b4f82ce Mon Sep 17 00:00:00 2001 From: Hahnbee Lee <55263191+hahnbeelee@users.noreply.github.com> Date: Wed, 6 Sep 2023 11:44:47 -0700 Subject: [PATCH 13/61] add mintlify extension --- nbs/_extensions/mintlify/_extension.yml | 33 ++++ nbs/_extensions/mintlify/mintlify.lua | 91 ++++++++++ nbs/_extensions/mintlify/mintlify_reader.lua | 8 + .../mintlify/mintlify_renderers.lua | 3 + nbs/_extensions/mintlify/mintlify_utils.lua | 47 +++++ nbs/_extensions/mintlify/mintlify_writer.lua | 161 ++++++++++++++++++ nbs/_extensions/mintlify/plotly.lua | 17 ++ 7 files changed, 360 insertions(+) create mode 100644 nbs/_extensions/mintlify/_extension.yml create mode 100644 nbs/_extensions/mintlify/mintlify.lua create mode 100644 nbs/_extensions/mintlify/mintlify_reader.lua create mode 100644 nbs/_extensions/mintlify/mintlify_renderers.lua create mode 100644 nbs/_extensions/mintlify/mintlify_utils.lua create mode 100644 nbs/_extensions/mintlify/mintlify_writer.lua create mode 100644 nbs/_extensions/mintlify/plotly.lua diff --git a/nbs/_extensions/mintlify/_extension.yml b/nbs/_extensions/mintlify/_extension.yml new file mode 100644 index 000000000..aeee19cbe --- /dev/null +++ b/nbs/_extensions/mintlify/_extension.yml @@ -0,0 +1,33 @@ +title: Mintlify +author: Mintlify, Inc +organization: Mintlify +contributes: + project: + project: + type: default + detect: + - ["mint.json"] + render: + - "**/*.qmd" + - "**/*.ipynb" + format: mintlify-md + formats: + md: + # Although we use a custom writer, we still need the variants here the lua filters to render correctly. + # Ideally, we would forward the variants to the custom writer. + variant: gfm+pipe_tables+tex_math_dollars+raw_html+all_symbols_escapable+backtick_code_blocks+space_in_atx_header+intraword_underscores+lists_without_preceding_blankline+shortcut_reference_links + writer: mintlify_writer.lua + # reader: mintlify_reader.lua + output-ext: mdx + inline-includes: true + preserve-yaml: true + wrap: none + fig-format: retina + fig-width: 8 + fig-height: 5 + html-math-method: webtex + # shortcodes: + # - plotly.lua + filters: + - mintlify.lua + # - plotly.lua diff --git a/nbs/_extensions/mintlify/mintlify.lua b/nbs/_extensions/mintlify/mintlify.lua new file mode 100644 index 000000000..798a2c2a9 --- /dev/null +++ b/nbs/_extensions/mintlify/mintlify.lua @@ -0,0 +1,91 @@ +-- mintlify.lua + +local kQuartoRawHtml = "quartoRawHtml" +local rawHtmlVars = pandoc.List() +function Pandoc(doc) + -- quarto.utils.dump(doc) + -- quarto.log.output('---E---') + -- insert exports at the top if we have them + if #rawHtmlVars > 0 then + local exports = ("export const %s =\n[%s];"):format(kQuartoRawHtml, + table.concat( + rawHtmlVars:map(function(var) return '`'.. var .. '`' end), + "," + ) + ) + doc.blocks:insert(1, pandoc.RawBlock("markdown", exports .. "\n")) + end + + return doc +end + + +-- strip image attributes (which may result from +-- fig-format: retina) as they will result in an +-- img tag which won't hit the asset pipeline +function Image(el) + -- quarto.log.output('---D---') + el.attr = pandoc.Attr() + return el +end + +-- header attributes only support id +function Header(el) + -- quarto.log.output('---C---') + el.attr = pandoc.Attr(el.identifier) + return el +end + +Block = function(node) + if node.text ~= nil and string.find(node.text, "") + :format(kQuartoRawHtml, #rawHtmlVars-1) .. "\n" + return pandoc.RawBlock("html", html) + end +end + +-- -- local i = 0 +-- function CodeBlock(doc) +-- -- i = i + 1 +-- -- if i == 5 then +-- -- -- quarto.utils.dump(doc.text) +-- -- end +-- end + +-- function DefinitionList(doc) +-- -- quarto.log.output('DefinitionList') +-- end + +-- function Methods(doc) +-- -- quarto.log.output('OrderedList') +-- -- quarto.utils.dump(doc) +-- end \ No newline at end of file diff --git a/nbs/_extensions/mintlify/mintlify_reader.lua b/nbs/_extensions/mintlify/mintlify_reader.lua new file mode 100644 index 000000000..60d496cfe --- /dev/null +++ b/nbs/_extensions/mintlify/mintlify_reader.lua @@ -0,0 +1,8 @@ +-- function Reader(input) +-- return pandoc.Pandoc(input:map( +-- function (s) +-- -- print(s) +-- return pandoc.CodeBlock(s.text) +-- end +-- )) +-- end \ No newline at end of file diff --git a/nbs/_extensions/mintlify/mintlify_renderers.lua b/nbs/_extensions/mintlify/mintlify_renderers.lua new file mode 100644 index 000000000..2597fbbf1 --- /dev/null +++ b/nbs/_extensions/mintlify/mintlify_renderers.lua @@ -0,0 +1,3 @@ +local codeBlock = require('mintlify_utils').codeBlock + +return {} -- return an empty table as a hack to pretend we're a shortcode handler for now diff --git a/nbs/_extensions/mintlify/mintlify_utils.lua b/nbs/_extensions/mintlify/mintlify_utils.lua new file mode 100644 index 000000000..42e8776c7 --- /dev/null +++ b/nbs/_extensions/mintlify/mintlify_utils.lua @@ -0,0 +1,47 @@ +-- local scriptCount = 0 +-- local printItem = 5 + +function codeBlock(el, filename) + local lang = el.attr.classes[1] + -- scriptCount = scriptCount + 1 + -- if printItem == scriptCount then + -- quarto.utils.dump(el) + -- end + -- quarto.log.output('---Code block---') + -- quarto.utils.dump(el.output) + -- quarto.utils.dump({}) + -- quarto.log.output('------') + local title = filename or el.attr.attributes["filename"] or el.attr.attributes["title"] + local showLineNumbers = el.attr.classes:includes('number-lines') + if lang or title or showLineNumbers then + if not lang then + lang = 'text' + end + local code = "\n```" .. lang + if showLineNumbers then + code = code .. " showLineNumbers" + end + if title then + code = code .. " title=\"" .. title .. "\"" + end + code = code .. "\n" .. el.text .. "\n```\n" + + -- quarto.log.output('------') + -- quarto.log.output(code) + -- quarto.log.output('------') + -- docusaures code block attributes don't conform to any syntax + -- that pandoc natively understands, so return the CodeBlock as + -- "raw" markdown (so it bypasses pandoc processing entirely) + return pandoc.RawBlock("markdown", code) + + elseif #el.attr.classes == 0 then + el.attr.classes:insert('text') + return el + end + + return nil +end + +return { + codeBlock = codeBlock +} \ No newline at end of file diff --git a/nbs/_extensions/mintlify/mintlify_writer.lua b/nbs/_extensions/mintlify/mintlify_writer.lua new file mode 100644 index 000000000..18c86762e --- /dev/null +++ b/nbs/_extensions/mintlify/mintlify_writer.lua @@ -0,0 +1,161 @@ +local codeBlock = require('mintlify_utils').codeBlock + +-- quarto.log.output('---X---') +local reactPreamble = pandoc.List() + +function capitalizeFirstLetter(str) + return (str:gsub("^%l", string.upper)) +end + +function castToMintlifyCallout(str) + if str == "caution" or str == "danger" then + return "Warning" + else + return capitalizeFirstLetter(str) + end +end + +local function addPreamble(preamble) + if not reactPreamble:includes(preamble) then + reactPreamble:insert(preamble) + end +end + +local function jsx(content) + -- quarto.log.output('------') + -- quarto.log.output(content) + -- quarto.log.output('------') + return pandoc.RawBlock("markdown", content) +end + +local function tabset(node, filter) + -- note groupId + local groupId = "" + local group = node.attr.attributes["group"] + if group then + groupId = ([[ groupId="%s"]]):format(group) + end + + -- quarto.log.output('------') + -- quarto.log.output(node.title) + -- quarto.log.output('------') + + -- create tabs + local tabs = pandoc.Div({}) + tabs.content:insert(jsx("")) + + -- iterate through content + for i = 1, #node.tabs do + local content = node.tabs[i].content + local title = node.tabs[i].title + + tabs.content:insert(jsx(([[]]):format(pandoc.utils.stringify(title)))) + local result = quarto._quarto.ast.walk(content, filter) + if type(result) == "table" then + tabs.content:extend(result) + else + tabs.content:insert(result) + end + tabs.content:insert(jsx("")) + end + + -- end tab and tabset + tabs.content:insert(jsx("")) + + -- ensure we have required deps + addPreamble("import Tabs from '@theme/Tabs';") + addPreamble("import TabItem from '@theme/TabItem';") + + return tabs +end + +function Writer(doc, opts) + -- quarto.log.output('---Z---') + -- quarto.log.output(doc) - will get stuck + -- quarto.utils.dump(doc) -- this works + -- quarto.utils.dump(opts) + local filter + filter = { + CodeBlock = codeBlock, + + DecoratedCodeBlock = function(node) + -- quarto.log.output(node) + local el = node.code_block + return codeBlock(el, node.filename) + end, + + Tabset = function(node) + return tabset(node, filter) + end, + + RawBlock = function (rawBlock) + -- quarto.utils.dump(rawBlock.text) + -- We just "pass-through" raw blocks of type "confluence" + if(rawBlock.format == 'plotly') then + quarto.utils.dump("Plotly in filter") + return pandoc.RawBlock('html', rawBlock.text) + end + + -- Raw blocks inclding arbirtary HTML like JavaScript are not supported in CSF + return "" + end, + + -- Plain = function(node) + -- quarto.log.output('------') + -- quarto.utils.dump(node.text) + -- end, + + Callout = function(node) + -- quarto.log.output('------') + -- quarto.log.output(node.t) + -- quarto.log.output(node.title) + -- quarto.log.output(type(node.content)) + -- quarto.log.output('------') + local admonition = pandoc.Div({}) + local mintlifyCallout = castToMintlifyCallout(node.type) + admonition.content:insert(jsx("<" .. mintlifyCallout .. ">")) + if node.title then + admonition.content:insert(pandoc.Header(3, node.title)) + end + local content = node.content + -- quarto.log.output(type(content)) + if type(content) == "table" then + admonition.content:extend(content) + -- quarto.log.output("-----Table content-----") + -- quarto.log.output(content) + else + admonition.content:insert(content) + end + -- quarto.log.output(content) + admonition.content:insert(jsx("")) + return admonition + end + } + + doc = quarto._quarto.ast.walk(doc, filter) + + -- insert react preamble if we have it + if #reactPreamble > 0 then + local preamble = table.concat(reactPreamble, "\n") + doc.blocks:insert(1, pandoc.RawBlock("markdown", preamble .. "\n")) + end + + local extensions = { + yaml_metadata_block = true, + pipe_tables = true, + footnotes = true, + tex_math_dollars = true, + raw_html = true, + all_symbols_escapable = true, + backtick_code_blocks = true, + space_in_atx_header = true, + intraword_underscores = true, + lists_without_preceding_blankline = true, + shortcut_reference_links = true, + } + + return pandoc.write(doc, { + format = 'markdown_strict', + extensions = extensions + }, opts) +end diff --git a/nbs/_extensions/mintlify/plotly.lua b/nbs/_extensions/mintlify/plotly.lua new file mode 100644 index 000000000..ec2f828dc --- /dev/null +++ b/nbs/_extensions/mintlify/plotly.lua @@ -0,0 +1,17 @@ +-- local scriptCount = 0 +-- local printItem = 4 +function script(scriptEl) + -- scriptCount = scriptCount + 1 + -- quarto.log.output('---Script El---') + -- quarto.log.output(scriptCount) + -- if printItem == scriptCount then + -- quarto.utils.dump(scriptEl) + -- end + quarto.log.output('---Script El---') +end + +return { + { + ['application/vnd.plotly.v1+json'] = script + } +} \ No newline at end of file From 583af5b90837fd707a7c9867b6029c7442389cf8 Mon Sep 17 00:00:00 2001 From: Hahnbee Lee <55263191+hahnbeelee@users.noreply.github.com> Date: Wed, 6 Sep 2023 11:45:24 -0700 Subject: [PATCH 14/61] use mintlify extension in _quarto --- nbs/_quarto.yml | 55 ++----------------------------------------------- 1 file changed, 2 insertions(+), 53 deletions(-) diff --git a/nbs/_quarto.yml b/nbs/_quarto.yml index f708a5614..507d451fb 100644 --- a/nbs/_quarto.yml +++ b/nbs/_quarto.yml @@ -2,58 +2,7 @@ project: type: website format: - html: - theme: cosmo - fontsize: 1em - linestretch: 1.7 - css: styles.css - toc: true - -website: - twitter-card: - image: "https://farm6.staticflickr.com/5510/14338202952_93595258ff_z.jpg" - site: "@Nixtlainc" - open-graph: - image: "https://github.com/Nixtla/styles/blob/2abf51612584169874c90cd7c4d347e3917eaf73/images/Banner%20Github.png" - google-analytics: "G-NXJNCVR18L" - repo-actions: [issue] - favicon: favicon_png.png - navbar: - background: primary - search: true - collapse-below: lg - left: - - text: "Get Started" - href: docs/getting-started/getting_started_short.html - - text: "NixtlaVerse" - menu: - - text: "StatsForecast ⚑️" - href: https://github.com/nixtla/statsforecast - - text: "MLForecast πŸ€–" - href: https://github.com/nixtla/mlforecast - - text: "NeuralForecast 🧠" - href: https://github.com/nixtla/neuralforecast - - text: "HierarchicalForecast πŸ‘‘" - href: https://github.com/nixtla/hierarchicalforecast - - - text: "Help" - menu: - - text: "Report an Issue" - icon: bug - href: https://github.com/nixtla/statsforecast/issues/new/choose - - text: "Join our Slack" - icon: chat-right-text - href: https://join.slack.com/t/nixtlaworkspace/shared_invite/zt-135dssye9-fWTzMpv2WBthq8NK0Yvu6A - right: - - icon: github - href: "https://github.com/nixtla/statsforecast" - - icon: twitter - href: https://twitter.com/nixtlainc - aria-label: Nixtla Twitter - - sidebar: - style: floating - body-footer: | - Give us a ⭐ on [Github](https://github.com/nixtla/statsforecast) + mintlify-md: + code-fold: true metadata-files: [nbdev.yml, sidebar.yml] From ac976c6a639045dbd0b7e732aded7fcdf76769ba Mon Sep 17 00:00:00 2001 From: Hahnbee Lee <55263191+hahnbeelee@users.noreply.github.com> Date: Wed, 6 Sep 2023 14:09:20 -0700 Subject: [PATCH 15/61] add navigation.json --- nbs/navigation.json | 65 +++++++++++++++++++++++++++++++++++++++++++++ nbs/nbdev.yml | 7 ----- nbs/sidebar.yml | 17 ------------ 3 files changed, 65 insertions(+), 24 deletions(-) create mode 100644 nbs/navigation.json delete mode 100644 nbs/sidebar.yml diff --git a/nbs/navigation.json b/nbs/navigation.json new file mode 100644 index 000000000..6a99d3b3e --- /dev/null +++ b/nbs/navigation.json @@ -0,0 +1,65 @@ +[ + { + "group": "", + "pages": ["introduction"] + }, + { + "group": "Getting Started", + "pages": [ + "getting-started/installation.html", + "getting-started/getting_started_short.html", + "getting-started/getting_started_complete.html" + ] + }, + { + "group": "Tutorials", + "pages": [ + "tutorials/anomalydetection.html", + "tutorials/conformalprediction.html", + "tutorials/crossvalidation.html", + "tutorials/electricityloadforecasting.html", + "tutorials/electricitypeakforecasting.html", + "tutorials/garch_tutorial.html", + "tutorials/intermittentdata.html", + "tutorials/multipleseasonalities.html", + "tutorials/statisticalneuralmethods.html", + "tutorials/uncertaintyintervals.html" + ] + }, + { + "group": "How to Guides", + "pages": [ + "how-to-guides/automatic_forecasting.html", + "how-to-guides/amazonstatsforecast.html", + "how-to-guides/autoarima_vs_prophet.html", + "how-to-guides/dask.html", + "how-to-guides/ets_ray_m5.html", + "how-to-guides/exogenous.html", + "how-to-guides/getting_started_complete_polars.html", + "how-to-guides/migrating_r", + "how-to-guides/prophet_spark_m5.html", + "how-to-guides/ray.html", + "how-to-guides/spark.html" + ] + }, + { + "group": "API Reference", + "pages": [ + "src/core/core.html", + "src/core/distributed.fugue.html", + "src/core/models_intro", + "src/core/models.html" + ] + }, + { + "group": "Contributing", + "pages": [ + "statsforecast/contribute/contribute", + "statsforecast/contribute/docs", + "statsforecast/contribute/issue-labels", + "statsforecast/contribute/issues", + "statsforecast/contribute/step-by-step", + "statsforecast/contribute/techstack" + ] + } +] diff --git a/nbs/nbdev.yml b/nbs/nbdev.yml index 6091878ce..f0fbacaf5 100644 --- a/nbs/nbdev.yml +++ b/nbs/nbdev.yml @@ -1,9 +1,2 @@ project: output-dir: _docs - -website: - title: "statsforecast" - site-url: "https://Nixtla.github.io/statsforecast/" - description: "Time series forecasting suite using statistical models" - repo-branch: main - repo-url: "https://github.com/Nixtla/statsforecast/" diff --git a/nbs/sidebar.yml b/nbs/sidebar.yml deleted file mode 100644 index e9f29d299..000000000 --- a/nbs/sidebar.yml +++ /dev/null @@ -1,17 +0,0 @@ -website: - reader-mode: false - sidebar: - collapse-level: 1 - contents: - - index.ipynb - - text: "--" - - section: "Getting Started" - contents: docs/getting-started/* - - section: "Tutorials" - contents: docs/tutorials/* - - section: "How-To Guides" - contents: docs/how-to-guides/* - - section: "API Reference" - contents: src/core/* - - section: "Contributing" - contents: docs/contribute/* From 105abc7bc8ca7497fb507164d284d1c6f7bea46b Mon Sep 17 00:00:00 2001 From: Hahnbee Lee <55263191+hahnbeelee@users.noreply.github.com> Date: Wed, 6 Sep 2023 14:16:09 -0700 Subject: [PATCH 16/61] Update navigation.json --- nbs/navigation.json | 14 +++++++------- nbs/nbdev.yml | 7 +++++++ 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/nbs/navigation.json b/nbs/navigation.json index 6a99d3b3e..c6bc41aff 100644 --- a/nbs/navigation.json +++ b/nbs/navigation.json @@ -1,7 +1,7 @@ [ { "group": "", - "pages": ["introduction"] + "pages": ["index.html"] }, { "group": "Getting Started", @@ -54,12 +54,12 @@ { "group": "Contributing", "pages": [ - "statsforecast/contribute/contribute", - "statsforecast/contribute/docs", - "statsforecast/contribute/issue-labels", - "statsforecast/contribute/issues", - "statsforecast/contribute/step-by-step", - "statsforecast/contribute/techstack" + "contribute/contribute", + "contribute/docs", + "contribute/issue-labels", + "contribute/issues", + "contribute/step-by-step", + "contribute/techstack" ] } ] diff --git a/nbs/nbdev.yml b/nbs/nbdev.yml index f0fbacaf5..6091878ce 100644 --- a/nbs/nbdev.yml +++ b/nbs/nbdev.yml @@ -1,2 +1,9 @@ project: output-dir: _docs + +website: + title: "statsforecast" + site-url: "https://Nixtla.github.io/statsforecast/" + description: "Time series forecasting suite using statistical models" + repo-branch: main + repo-url: "https://github.com/Nixtla/statsforecast/" From a97a2bc02d735561c8071365706d79a8460c1d8d Mon Sep 17 00:00:00 2001 From: Hahnbee Lee <55263191+hahnbeelee@users.noreply.github.com> Date: Wed, 6 Sep 2023 16:36:05 -0700 Subject: [PATCH 17/61] delete sidebar.yml metadata --- nbs/_quarto.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nbs/_quarto.yml b/nbs/_quarto.yml index 507d451fb..d4dd6dc90 100644 --- a/nbs/_quarto.yml +++ b/nbs/_quarto.yml @@ -5,4 +5,4 @@ format: mintlify-md: code-fold: true -metadata-files: [nbdev.yml, sidebar.yml] +metadata-files: [nbdev.yml] From e3a27001c56722e4813aedbb57cdd3579cdab9c7 Mon Sep 17 00:00:00 2001 From: Hahnbee Lee <55263191+hahnbeelee@users.noreply.github.com> Date: Wed, 6 Sep 2023 16:45:19 -0700 Subject: [PATCH 18/61] build-docs workflow --- .github/workflows/build-docs.yaml | 48 +++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 .github/workflows/build-docs.yaml diff --git a/.github/workflows/build-docs.yaml b/.github/workflows/build-docs.yaml new file mode 100644 index 000000000..3bd87ad2e --- /dev/null +++ b/.github/workflows/build-docs.yaml @@ -0,0 +1,48 @@ +name: "build-docs" +on: + push: + branches: ["main"] + workflow_dispatch: +jobs: + build-docs: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-python@v4 + with: + cache: "pip" + cache-dependency-path: settings.ini + - name: Install Dependencies + shell: bash + run: | + set -ux + python -m pip install --upgrade pip + if [ $USE_PRE ]; then + pip install -Uq git+https://github.com/fastai/ghapi.git + pip install -Uq git+https://github.com/fastai/fastcore.git + pip install -Uq git+https://github.com/fastai/execnb.git + pip install -Uq git+https://github.com/fastai/nbdev.git + wget -q $(curl https://latest.fast.ai/pre/quarto-dev/quarto-cli/linux-amd64.deb) + sudo dpkg -i quarto*.deb + else + pip install -Uq nbdev + fi + if [ $TORCH_CPU ]; then + test -f setup.py && pip install -e ".[dev]" --extra-index-url https://download.pytorch.org/whl/cpu + else + test -f setup.py && pip install -e ".[dev]" + fi + nbdev_docs + - name: Copy over navigation.json + run: | + cp nbs/navigation.json _docs/navigation.json + - name: Deploy to GitHub Pages + uses: peaceiris/actions-gh-pages@v3 + with: + github_token: ${{ secrets.STATSFORECAST_PUSH_TOKEN }} + publish_branch: docs + publish_dir: ./_docs + # The following lines assign commit authorship to the official GH-Actions bot for deploys to `docs` branch. + # You can swap them out with your own user credentials. + user_name: github-actions[bot] + user_email: 41898282+github-actions[bot]@users.noreply.github.com From 1f8dd6469bc3b6bf77445823ff6ad3c00925b150 Mon Sep 17 00:00:00 2001 From: Hahnbee Lee <55263191+hahnbeelee@users.noreply.github.com> Date: Wed, 6 Sep 2023 16:45:48 -0700 Subject: [PATCH 19/61] change to mintlify branch --- .github/workflows/build-docs.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-docs.yaml b/.github/workflows/build-docs.yaml index 3bd87ad2e..fb782bed4 100644 --- a/.github/workflows/build-docs.yaml +++ b/.github/workflows/build-docs.yaml @@ -1,7 +1,7 @@ name: "build-docs" on: push: - branches: ["main"] + branches: ["mintlify"] workflow_dispatch: jobs: build-docs: From bb3162b78a6fac1139f55a1f4651a146f9a3c4a5 Mon Sep 17 00:00:00 2001 From: Hahnbee Lee <55263191+hahnbeelee@users.noreply.github.com> Date: Wed, 6 Sep 2023 16:47:38 -0700 Subject: [PATCH 20/61] delete variables --- .github/workflows/build-docs.yaml | 17 ++--------------- 1 file changed, 2 insertions(+), 15 deletions(-) diff --git a/.github/workflows/build-docs.yaml b/.github/workflows/build-docs.yaml index fb782bed4..ce7065a8f 100644 --- a/.github/workflows/build-docs.yaml +++ b/.github/workflows/build-docs.yaml @@ -17,21 +17,8 @@ jobs: run: | set -ux python -m pip install --upgrade pip - if [ $USE_PRE ]; then - pip install -Uq git+https://github.com/fastai/ghapi.git - pip install -Uq git+https://github.com/fastai/fastcore.git - pip install -Uq git+https://github.com/fastai/execnb.git - pip install -Uq git+https://github.com/fastai/nbdev.git - wget -q $(curl https://latest.fast.ai/pre/quarto-dev/quarto-cli/linux-amd64.deb) - sudo dpkg -i quarto*.deb - else - pip install -Uq nbdev - fi - if [ $TORCH_CPU ]; then - test -f setup.py && pip install -e ".[dev]" --extra-index-url https://download.pytorch.org/whl/cpu - else - test -f setup.py && pip install -e ".[dev]" - fi + pip install -Uq nbdev + test -f setup.py && pip install -e ".[dev]" nbdev_docs - name: Copy over navigation.json run: | From 2e8d2b3fcba3755b21432401fbce83212a7c70ab Mon Sep 17 00:00:00 2001 From: Hahnbee Lee <55263191+hahnbeelee@users.noreply.github.com> Date: Wed, 6 Sep 2023 16:51:42 -0700 Subject: [PATCH 21/61] add nbdev_plotly --- settings.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/settings.ini b/settings.ini index 7ca880425..99fb804be 100644 --- a/settings.ini +++ b/settings.ini @@ -15,7 +15,7 @@ language = English custom_sidebar = True license = apache2 status = 2 -requirements = matplotlib numba>=0.55.0 numpy>=1.21.6 pandas>=1.3.5 polars scipy>=1.7.3 statsmodels>=0.13.2 tqdm fugue>=0.8.1 +requirements = matplotlib numba>=0.55.0 numpy>=1.21.6 pandas>=1.3.5 polars scipy>=1.7.3 statsmodels>=0.13.2 tqdm fugue>=0.8.1 nbdev_plotly ray_requirements = fugue[ray]>=0.8.1 protobuf>=3.15.3,<4.0.0 dask_requirements = fugue[dask]>=0.8.1 spark_requirements = fugue[spark]>=0.8.1 From de602fc67570cbedd14925876cf750d9a04e1d98 Mon Sep 17 00:00:00 2001 From: Hahnbee Lee <55263191+hahnbeelee@users.noreply.github.com> Date: Wed, 6 Sep 2023 17:19:44 -0700 Subject: [PATCH 22/61] remove token --- .github/workflows/build-docs.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/build-docs.yaml b/.github/workflows/build-docs.yaml index ce7065a8f..7fdb96071 100644 --- a/.github/workflows/build-docs.yaml +++ b/.github/workflows/build-docs.yaml @@ -26,7 +26,6 @@ jobs: - name: Deploy to GitHub Pages uses: peaceiris/actions-gh-pages@v3 with: - github_token: ${{ secrets.STATSFORECAST_PUSH_TOKEN }} publish_branch: docs publish_dir: ./_docs # The following lines assign commit authorship to the official GH-Actions bot for deploys to `docs` branch. From f18bc775a78368c1494f9c4a0d6a36ea936cf442 Mon Sep 17 00:00:00 2001 From: Hahnbee Lee <55263191+hahnbeelee@users.noreply.github.com> Date: Wed, 6 Sep 2023 17:20:07 -0700 Subject: [PATCH 23/61] mintlify branch -> main --- .github/workflows/build-docs.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-docs.yaml b/.github/workflows/build-docs.yaml index 7fdb96071..0e7fa6a43 100644 --- a/.github/workflows/build-docs.yaml +++ b/.github/workflows/build-docs.yaml @@ -1,7 +1,7 @@ name: "build-docs" on: push: - branches: ["mintlify"] + branches: ["main"] workflow_dispatch: jobs: build-docs: From e1ad4c74d44e59a3d32e6c03fec1988c2d9a1a17 Mon Sep 17 00:00:00 2001 From: Hahnbee Lee <55263191+hahnbeelee@users.noreply.github.com> Date: Wed, 6 Sep 2023 17:46:09 -0700 Subject: [PATCH 24/61] change deploy branch name --- .github/workflows/build-docs.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-docs.yaml b/.github/workflows/build-docs.yaml index 0e7fa6a43..c7c730c96 100644 --- a/.github/workflows/build-docs.yaml +++ b/.github/workflows/build-docs.yaml @@ -23,7 +23,7 @@ jobs: - name: Copy over navigation.json run: | cp nbs/navigation.json _docs/navigation.json - - name: Deploy to GitHub Pages + - name: Deploy to Mintlify Docs uses: peaceiris/actions-gh-pages@v3 with: publish_branch: docs From 734071b52da5592465dccd0b3b562b99c272e6d9 Mon Sep 17 00:00:00 2001 From: Hahnbee Lee <55263191+hahnbeelee@users.noreply.github.com> Date: Sun, 17 Sep 2023 13:00:47 -0700 Subject: [PATCH 25/61] rename navigation.json to mint.json --- .github/workflows/build-docs.yaml | 4 +- nbs/mint.json | 67 +++++++++++++++++++++++++++++++ nbs/navigation.json | 65 ------------------------------ 3 files changed, 69 insertions(+), 67 deletions(-) create mode 100644 nbs/mint.json delete mode 100644 nbs/navigation.json diff --git a/.github/workflows/build-docs.yaml b/.github/workflows/build-docs.yaml index c7c730c96..459afb3a8 100644 --- a/.github/workflows/build-docs.yaml +++ b/.github/workflows/build-docs.yaml @@ -20,9 +20,9 @@ jobs: pip install -Uq nbdev test -f setup.py && pip install -e ".[dev]" nbdev_docs - - name: Copy over navigation.json + - name: Copy over mint.json run: | - cp nbs/navigation.json _docs/navigation.json + cp nbs/mint.json _docs/mint.json - name: Deploy to Mintlify Docs uses: peaceiris/actions-gh-pages@v3 with: diff --git a/nbs/mint.json b/nbs/mint.json new file mode 100644 index 000000000..f795aef18 --- /dev/null +++ b/nbs/mint.json @@ -0,0 +1,67 @@ +{ + "navigation": [ + { + "group": "", + "pages": ["index.html"] + }, + { + "group": "Getting Started", + "pages": [ + "getting-started/installation.html", + "getting-started/getting_started_short.html", + "getting-started/getting_started_complete.html" + ] + }, + { + "group": "Tutorials", + "pages": [ + "tutorials/anomalydetection.html", + "tutorials/conformalprediction.html", + "tutorials/crossvalidation.html", + "tutorials/electricityloadforecasting.html", + "tutorials/electricitypeakforecasting.html", + "tutorials/garch_tutorial.html", + "tutorials/intermittentdata.html", + "tutorials/multipleseasonalities.html", + "tutorials/statisticalneuralmethods.html", + "tutorials/uncertaintyintervals.html" + ] + }, + { + "group": "How to Guides", + "pages": [ + "how-to-guides/automatic_forecasting.html", + "how-to-guides/amazonstatsforecast.html", + "how-to-guides/autoarima_vs_prophet.html", + "how-to-guides/dask.html", + "how-to-guides/ets_ray_m5.html", + "how-to-guides/exogenous.html", + "how-to-guides/getting_started_complete_polars.html", + "how-to-guides/migrating_r", + "how-to-guides/prophet_spark_m5.html", + "how-to-guides/ray.html", + "how-to-guides/spark.html" + ] + }, + { + "group": "API Reference", + "pages": [ + "src/core/core.html", + "src/core/distributed.fugue.html", + "src/core/models_intro", + "src/core/models.html" + ] + }, + { + "group": "Contributing", + "pages": [ + "contribute/contribute", + "contribute/docs", + "contribute/issue-labels", + "contribute/issues", + "contribute/step-by-step", + "contribute/techstack" + ] + } + ] +} diff --git a/nbs/navigation.json b/nbs/navigation.json deleted file mode 100644 index c6bc41aff..000000000 --- a/nbs/navigation.json +++ /dev/null @@ -1,65 +0,0 @@ -[ - { - "group": "", - "pages": ["index.html"] - }, - { - "group": "Getting Started", - "pages": [ - "getting-started/installation.html", - "getting-started/getting_started_short.html", - "getting-started/getting_started_complete.html" - ] - }, - { - "group": "Tutorials", - "pages": [ - "tutorials/anomalydetection.html", - "tutorials/conformalprediction.html", - "tutorials/crossvalidation.html", - "tutorials/electricityloadforecasting.html", - "tutorials/electricitypeakforecasting.html", - "tutorials/garch_tutorial.html", - "tutorials/intermittentdata.html", - "tutorials/multipleseasonalities.html", - "tutorials/statisticalneuralmethods.html", - "tutorials/uncertaintyintervals.html" - ] - }, - { - "group": "How to Guides", - "pages": [ - "how-to-guides/automatic_forecasting.html", - "how-to-guides/amazonstatsforecast.html", - "how-to-guides/autoarima_vs_prophet.html", - "how-to-guides/dask.html", - "how-to-guides/ets_ray_m5.html", - "how-to-guides/exogenous.html", - "how-to-guides/getting_started_complete_polars.html", - "how-to-guides/migrating_r", - "how-to-guides/prophet_spark_m5.html", - "how-to-guides/ray.html", - "how-to-guides/spark.html" - ] - }, - { - "group": "API Reference", - "pages": [ - "src/core/core.html", - "src/core/distributed.fugue.html", - "src/core/models_intro", - "src/core/models.html" - ] - }, - { - "group": "Contributing", - "pages": [ - "contribute/contribute", - "contribute/docs", - "contribute/issue-labels", - "contribute/issues", - "contribute/step-by-step", - "contribute/techstack" - ] - } -] From 1414dc0a925fb3c0b2431c7dfdd6b287abe3e61b Mon Sep 17 00:00:00 2001 From: Hahnbee Lee <55263191+hahnbeelee@users.noreply.github.com> Date: Sun, 17 Sep 2023 13:17:12 -0700 Subject: [PATCH 26/61] prepend every appropriate page with docs/ --- nbs/mint.json | 60 +++++++++++++++++++++++++-------------------------- 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/nbs/mint.json b/nbs/mint.json index f795aef18..9553d74ed 100644 --- a/nbs/mint.json +++ b/nbs/mint.json @@ -7,40 +7,40 @@ { "group": "Getting Started", "pages": [ - "getting-started/installation.html", - "getting-started/getting_started_short.html", - "getting-started/getting_started_complete.html" + "docs/getting-started/installation.html", + "docs/getting-started/getting_started_short.html", + "docs/getting-started/getting_started_complete.html" ] }, { "group": "Tutorials", "pages": [ - "tutorials/anomalydetection.html", - "tutorials/conformalprediction.html", - "tutorials/crossvalidation.html", - "tutorials/electricityloadforecasting.html", - "tutorials/electricitypeakforecasting.html", - "tutorials/garch_tutorial.html", - "tutorials/intermittentdata.html", - "tutorials/multipleseasonalities.html", - "tutorials/statisticalneuralmethods.html", - "tutorials/uncertaintyintervals.html" + "docs/tutorials/anomalydetection.html", + "docs/tutorials/conformalprediction.html", + "docs/tutorials/crossvalidation.html", + "docs/tutorials/electricityloadforecasting.html", + "docs/tutorials/electricitypeakforecasting.html", + "docs/tutorials/garch_tutorial.html", + "docs/tutorials/intermittentdata.html", + "docs/tutorials/multipleseasonalities.html", + "docs/tutorials/statisticalneuralmethods.html", + "docs/tutorials/uncertaintyintervals.html" ] }, { "group": "How to Guides", "pages": [ - "how-to-guides/automatic_forecasting.html", - "how-to-guides/amazonstatsforecast.html", - "how-to-guides/autoarima_vs_prophet.html", - "how-to-guides/dask.html", - "how-to-guides/ets_ray_m5.html", - "how-to-guides/exogenous.html", - "how-to-guides/getting_started_complete_polars.html", - "how-to-guides/migrating_r", - "how-to-guides/prophet_spark_m5.html", - "how-to-guides/ray.html", - "how-to-guides/spark.html" + "docs/how-to-guides/automatic_forecasting.html", + "docs/how-to-guides/amazonstatsforecast.html", + "docs/how-to-guides/autoarima_vs_prophet.html", + "docs/how-to-guides/dask.html", + "docs/how-to-guides/ets_ray_m5.html", + "docs/how-to-guides/exogenous.html", + "docs/how-to-guides/getting_started_complete_polars.html", + "docs/how-to-guides/migrating_R", + "docs/how-to-guides/prophet_spark_m5.html", + "docs/how-to-guides/ray.html", + "docs/how-to-guides/spark.html" ] }, { @@ -55,12 +55,12 @@ { "group": "Contributing", "pages": [ - "contribute/contribute", - "contribute/docs", - "contribute/issue-labels", - "contribute/issues", - "contribute/step-by-step", - "contribute/techstack" + "docs/contribute/contribute", + "docs/contribute/docs", + "docs/contribute/issue-labels", + "docs/contribute/issues", + "docs/contribute/step-by-step", + "docs/contribute/techstack" ] } ] From 72ddff762146ff65fab13ae1b9317bbfda40db09 Mon Sep 17 00:00:00 2001 From: Hahnbee Lee <55263191+hahnbeelee@users.noreply.github.com> Date: Sun, 17 Sep 2023 13:31:10 -0700 Subject: [PATCH 27/61] add closing slash to img --- nbs/docs/how-to-guides/AmazonStatsForecast.ipynb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nbs/docs/how-to-guides/AmazonStatsForecast.ipynb b/nbs/docs/how-to-guides/AmazonStatsForecast.ipynb index 6a2a6e536..b06d24aa5 100644 --- a/nbs/docs/how-to-guides/AmazonStatsForecast.ipynb +++ b/nbs/docs/how-to-guides/AmazonStatsForecast.ipynb @@ -611,7 +611,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "\"image\"" + "\"image\"" ] } ], From c28f563d6fd7e59660a0c9ec6ec21845881a20c8 Mon Sep 17 00:00:00 2001 From: Hahnbee Lee <55263191+hahnbeelee@users.noreply.github.com> Date: Sun, 17 Sep 2023 13:32:26 -0700 Subject: [PATCH 28/61] format reference --- nbs/docs/tutorials/IntermittentData.ipynb | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/nbs/docs/tutorials/IntermittentData.ipynb b/nbs/docs/tutorials/IntermittentData.ipynb index 624f095f8..3cf05d5f3 100644 --- a/nbs/docs/tutorials/IntermittentData.ipynb +++ b/nbs/docs/tutorials/IntermittentData.ipynb @@ -9606,7 +9606,11 @@ "cell_type": "markdown", "metadata": {}, "source": [ - " [Croston, J. D. (1972). Forecasting and stock control for intermittent demands. Journal of the Operational Research Society, 23(3), 289-303.](https://link.springer.com/article/10.1057/jors.1972.50) " + "\n", + " [Croston, J. D. (1972). Forecasting and stock control for intermittent\n", + " demands. Journal of the Operational Research Society, 23(3),\n", + " 289-303.](https://link.springer.com/article/10.1057/jors.1972.50)\n", + "" ] } ], From 8dc5e65d626ff2b0fb0f2bbb72ed2a46b7c127b3 Mon Sep 17 00:00:00 2001 From: Hahnbee Lee <55263191+hahnbeelee@users.noreply.github.com> Date: Thu, 21 Sep 2023 11:47:47 -0700 Subject: [PATCH 29/61] update mint.json --- nbs/mint.json | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/nbs/mint.json b/nbs/mint.json index 9553d74ed..341f7b473 100644 --- a/nbs/mint.json +++ b/nbs/mint.json @@ -1,4 +1,28 @@ { + "$schema": "https://mintlify.com/schema.json", + "name": "Nixtla", + "logo": { + "light": "/logo/light.png", + "dark": "/logo/dark.png" + }, + "favicon": "/favicon.svg", + "colors": { + "primary": "#0E0E0E", + "light": "#FAFAFA", + "dark": "#0E0E0E", + "anchors": { + "from": "#2AD0CA", + "to": "#0E00F8" + } + }, + "topbarCtaButton": { + "type": "github", + "url": "https://github.com/Nixtla/nixtla" + }, + "topAnchor": { + "name": "StatsForecast", + "icon": "bolt" + }, "navigation": [ { "group": "", From fd3b104758be63125922af48205e9f2de52ce2d6 Mon Sep 17 00:00:00 2001 From: Hahnbee Lee <55263191+hahnbeelee@users.noreply.github.com> Date: Mon, 9 Oct 2023 15:44:08 -0700 Subject: [PATCH 30/61] add newlines in issues.md --- nbs/docs/contribute/issues.md | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/nbs/docs/contribute/issues.md b/nbs/docs/contribute/issues.md index 65b79b608..d0f78b248 100644 --- a/nbs/docs/contribute/issues.md +++ b/nbs/docs/contribute/issues.md @@ -26,7 +26,9 @@ The form to report the bug will appear. 5. You can also add links, references, logs, screenshots, and so on. - Please ensure that your contributions abide by the [contributing guidelines](https://github.com/nixtla/nixtla/blob/staging/CONTRIBUTING.md) and [code of conduct](https://github.com/nixtla/nixtla/blob/staging/CODE_OF_CONDUCT.md). + +Please ensure that your contributions abide by the [contributing guidelines](https://github.com/nixtla/nixtla/blob/staging/CONTRIBUTING.md) and [code of conduct](https://github.com/nixtla/nixtla/blob/staging/CODE_OF_CONDUCT.md). + Thank you for your contribution! Your report aids in refining Nixtla for current and future users. @@ -43,7 +45,9 @@ The feature request form will appear. 4. Additional references, links, logs, and screenshots are welcome! - Please ensure that your contributions abide by the [contributing guidelines](https://github.com/nixtla/nixtla/blob/staging/CONTRIBUTING.md) and [code of conduct](https://github.com/nixtla/nixtla/blob/staging/CODE_OF_CONDUCT.md). + +Please ensure that your contributions abide by the [contributing guidelines](https://github.com/nixtla/nixtla/blob/staging/CONTRIBUTING.md) and [code of conduct](https://github.com/nixtla/nixtla/blob/staging/CODE_OF_CONDUCT.md). + Thank you for your feature request! It will help us enhance Nixtla for all users. @@ -59,7 +63,9 @@ A form for suggesting improvements will appear. 3. Any additional references, links, logs, screenshots are appreciated! - Please ensure that your contributions abide by the [contributing guidelines](https://github.com/nixtla/nixtla/blob/staging/CONTRIBUTING.md) and [code of conduct](https://github.com/nixtla/nixtla/blob/staging/CODE_OF_CONDUCT.md). + +Please ensure that your contributions abide by the [contributing guidelines](https://github.com/nixtla/nixtla/blob/staging/CONTRIBUTING.md) and [code of conduct](https://github.com/nixtla/nixtla/blob/staging/CODE_OF_CONDUCT.md). + Thank you for your valuable suggestions! Your input helps us refine Nixtla's documentation. @@ -80,7 +86,9 @@ A form for your proposal will appear. 4. Any additional references, links, logs, screenshots, and so on, are welcome! - Please ensure that your contributions abide by the [contributing guidelines](https://github.com/nixtla/nixtla/blob/staging/CONTRIBUTING.md) and [code of conduct](https://github.com/nixtla/nixtla/blob/staging/CODE_OF_CONDUCT.md). + +Please ensure that your contributions abide by the [contributing guidelines](https://github.com/nixtla/nixtla/blob/staging/CONTRIBUTING.md) and [code of conduct](https://github.com/nixtla/nixtla/blob/staging/CODE_OF_CONDUCT.md). + Thank you for your proposal! Your suggestion helps us extend the capabilities of Nixtla. @@ -92,6 +100,7 @@ Thank you for your proposal! Your suggestion helps us extend the capabilities of - Please be ready to respond to our feedback or questions regarding your issue. - This document is based on the documentation from [MindsDB](https://github.com/mindsdb/mindsdb) - +This document is based on the documentation from [MindsDB](https://github.com/mindsdb/mindsdb) + + From cc801d3e034a95d7e8d3190d499476ee077ddd2e Mon Sep 17 00:00:00 2001 From: Hahnbee Lee <55263191+hahnbeelee@users.noreply.github.com> Date: Mon, 9 Oct 2023 15:46:05 -0700 Subject: [PATCH 31/61] add favicon --- nbs/favicon.svg | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 nbs/favicon.svg diff --git a/nbs/favicon.svg b/nbs/favicon.svg new file mode 100644 index 000000000..e5f333428 --- /dev/null +++ b/nbs/favicon.svg @@ -0,0 +1,5 @@ + + + + + From 4cc9f5aaefc7f82e690146e07790908a21663f64 Mon Sep 17 00:00:00 2001 From: Hahnbee Lee <55263191+hahnbeelee@users.noreply.github.com> Date: Mon, 9 Oct 2023 15:48:33 -0700 Subject: [PATCH 32/61] fix image formatting --- nbs/docs/contribute/step-by-step.md | 87 +++++++++++++++-------------- 1 file changed, 44 insertions(+), 43 deletions(-) diff --git a/nbs/docs/contribute/step-by-step.md b/nbs/docs/contribute/step-by-step.md index 18dc705a2..b8215b875 100644 --- a/nbs/docs/contribute/step-by-step.md +++ b/nbs/docs/contribute/step-by-step.md @@ -15,35 +15,35 @@ Sometimes, diving into a new technology can be challenging and overwhelming. We' 7. [Start Coding](#start-coding) 8. [Example with Screen-shots](#example-with-screen-shots) -## Prerequisites +## Prerequisites -- *GitHub*: You should already have a GitHub account and a basic understanding of its functionalities. Alternatively check [this guide](https://docs.github.com/en/get-started). -- *Python*: Python should be installed on your system. Alternatively check [this guide](https://www.python.org/downloads/). -- *conda*: You need to have conda installed, along with a good grasp of fundamental operations such as creating environments, and activating and deactivating them. Alternatively check [this guide](https://conda.io/projects/conda/en/latest/user-guide/install/index.html). +- _GitHub_: You should already have a GitHub account and a basic understanding of its functionalities. Alternatively check [this guide](https://docs.github.com/en/get-started). +- _Python_: Python should be installed on your system. Alternatively check [this guide](https://www.python.org/downloads/). +- _conda_: You need to have conda installed, along with a good grasp of fundamental operations such as creating environments, and activating and deactivating them. Alternatively check [this guide](https://conda.io/projects/conda/en/latest/user-guide/install/index.html). ## Git `fork-and-pull` worklow -**1. Fork the Project:** +**1. Fork the Project:** Start by forking the Nixtla repository to your own GitHub account. This creates a personal copy of the project where you can make changes without affecting the main repository. **2. Clone the Forked Repository** -Clone the forked repository to your local machine using `git clone https://github.com//nixtla.git`. This allows you to work with the code directly on your system. +Clone the forked repository to your local machine using `git clone https://github.com//nixtla.git`. This allows you to work with the code directly on your system. -**3. Create a Branch:** +**3. Create a Branch:** Branching in GitHub is a key strategy for effectively managing and isolating changes to your project. It allows you to segregate work on different features, fixes, and issues without interfering with the main, production-ready codebase. -1. *Main Branch*: The default branch with production-ready code. +1. _Main Branch_: The default branch with production-ready code. -2. *Feature Branches*: For new features, create branches prefixed with 'feature/', like `git checkout -b feature/new-model`. +2. _Feature Branches_: For new features, create branches prefixed with 'feature/', like `git checkout -b feature/new-model`. -3. *Fix Branches*: For bug fixes, use 'fix/' prefix, like `git checkout -b fix/forecasting-bug`. +3. _Fix Branches_: For bug fixes, use 'fix/' prefix, like `git checkout -b fix/forecasting-bug`. -4. *Issue Branches*: For specific issues, use `git checkout -b issue/issue-number` or `git checkout -b issue/issue-description`. +4. _Issue Branches_: For specific issues, use `git checkout -b issue/issue-number` or `git checkout -b issue/issue-description`. After testing, branches are merged back into the main branch via a pull request, and then typically deleted to maintain a clean repository. You can read more about github and branching [here](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-and-deleting-branches-within-your-repository). -## Set Up a Conda Environment +## Set Up a Conda Environment > If you want to use Docker or Codespaces, let us know opening an issue and we will set you up. @@ -51,13 +51,13 @@ Next, you'll need to set up a [Conda](https://docs.conda.io/en/latest/) environm First, ensure you have Anaconda or Miniconda installed on your system. Alternatively checkout these guides: [Anaconda](https://www.anaconda.com/), [Miniconda](https://docs.conda.io/en/latest/miniconda.html), and [Mamba](https://mamba.readthedocs.io/en/latest/). -Then, you can create a new environment using `conda create -n nixtla-env python=3.10`. +Then, you can create a new environment using `conda create -n nixtla-env python=3.10`. -You can also use mamba for creating the environment (mamba is faster than Conda) using `mamba create -n nixtla-env python=3.10`. +You can also use mamba for creating the environment (mamba is faster than Conda) using `mamba create -n nixtla-env python=3.10`. You can replace `nixtla-env` for something more meaningful to you. Eg. `statsforecast-env` or `mlforecast-env`. You can always check the list of environments in your system using `conda env list`. -Activate your new environment with `conda activate nixtla-env`. +Activate your new environment with `conda activate nixtla-env`. ## Install required libraries for development @@ -71,7 +71,7 @@ Sometimes (e.g. StatsForecast) the `enviorment.yml` is sometimes inside a folder ## Start editable mode -Install the library in editable mode using `pip install -e ".[dev]"`. +Install the library in editable mode using `pip install -e ".[dev]"`. This means the package is linked directly to the source code, allowing any changes made to the source code to be immediately reflected in your Python environment without the need to reinstall the package. This is useful for testing changes during package development. @@ -101,9 +101,8 @@ Open a jupyter notebook using `jupyter lab` (or VS Code). 2. **Commit Your Changes:** Add the changed files using `git add [your_modified_file_0.ipynb] [your_modified_file_1.ipynb]`, then commit these changes using `git commit -m ": "`. Please use [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) - -3. **Push Your Changes:** -Push your changes to the remote repository on GitHub with `git push origin feature/your-feature-name`. +3. **Push Your Changes:** + Push your changes to the remote repository on GitHub with `git push origin feature/your-feature-name`. 4. **Open a Pull Request:** Open a pull request from your new branch on the Nixtla repository on GitHub. Provide a thorough description of your changes when creating the pull request. @@ -118,13 +117,14 @@ You can find a detailed step by step buide with screen-shots below. ## Example with Screen-shots ### 1. Create a fork of the mlforecast repo + The first thing you need to do is create a fork of the GitHub repository to your own account: -image +image Your fork on your account will look like this: -image +image In that repository, you can make your changes and then request to have them added to the main repo. @@ -134,99 +134,100 @@ In this tutorial, we are using Mac (also compatible with other Linux distributio Once the repository is created, you need to clone it to your own computer. Simply copy the repository URL from GitHub as shown below: -image +image Then open Visual Studio Code, click on "Clone Git Repository," and paste the line you just copied into the top part of the window, as shown below: -image +image Select the folder where you want to copy the repository: -image +image And choose to open the cloned repository: -image +image You will end up with something like this: -image +image ### 3. Create the Conda environment Open a terminal within Visual Studio Code, as shown in the image: -image +image You can use conda but we highly recommend using Mamba to speed up the creation of the Conda environment. To install it, simply use `conda install mamba -c conda-forge` in the terminal you just opened: -image +image Create an empty environment named `mlforecast` with the following command: `mamba create -n mlforecast python=3.10`: -image +image Activate the newly created environment using `conda activate mlforecast`: -image +image Install the libraries within the environment file `environment.yml` using `mamba env update -f environment.yml`: -image +image Now install the library to make interactive changes and other additional dependencies using `pip install -e ".[dev]"`: -image +image ### 4. Make the changes you want. In this section, we assume that we want to increase the default number of windows used to create prediction intervals from 2 to 3. The first thing we need to do is create a specific branch for that change using `git checkout -b [new_branch]` like this: -image +image Once created, open the notebook you want to modify. In this case, it's `nbs/utils.ipynb`, which contains the metadata for the prediction intervals. After opening it, click on the environment you want to use (top right) and select the `mlforecast` environment: -image +image Next, execute the notebook and make the necessary changes. In this case, we want to modify the `PredictionIntervals` class: -image +image We will change the default value of `n_window` from 2 to 3: -image +image Once you have made the change and performed any necessary validations, it's time to convert the notebook to Python modules. To do this, simply use `nbdev_export` in the terminal. You will see that the `mlforecast/utils.py` file has been modified (the changes from `nbs/utils.ipynb` are reflected in that module). Before committing the changes, we need to clean the notebooks using the command `./action_files/clean_nbs` and verify that the linters pass using `./action_files/lint`: -image +image Once you have done the above, simply add the changes using `git add nbs/utils.ipynb mlforecast/utils.py`: -image +image Create a descriptive commit message for the changes using `git commit -m "[description of changes]"`: -image +image Finally, push your changes using `git push`: -image +image ### 5. Create a pull request. In GitHub, open your repository that contains your fork of the original repo. Once inside, you will see the changes you just pushed. Click on "Compare and pull request": -image +image Include an appropriate title for your pull request and fill in the necessary information. Once you're done, click on "Create pull request". -image +image Finally, you will see something like this: -image +image ## Notes + - This file was generated using [this file](https://github.com/Nixtla/nixtla-commons/blob/main/docs/contribute/step-by-step.md). Please change that file if you want to enhance the document. From 5af1288b9b0e5fa17b87de4207c59e4806536238 Mon Sep 17 00:00:00 2001 From: Hahnbee Lee <55263191+hahnbeelee@users.noreply.github.com> Date: Mon, 9 Oct 2023 15:57:00 -0700 Subject: [PATCH 33/61] remove header in migrating_R --- nbs/docs/how-to-guides/migrating_R.qmd | 2 -- 1 file changed, 2 deletions(-) diff --git a/nbs/docs/how-to-guides/migrating_R.qmd b/nbs/docs/how-to-guides/migrating_R.qmd index 9a0c50bfb..e973d9d90 100644 --- a/nbs/docs/how-to-guides/migrating_R.qmd +++ b/nbs/docs/how-to-guides/migrating_R.qmd @@ -1,4 +1,2 @@ -# Migrating from R - ## 🚧 We are working on this site. This site is currently in development. If you are particularly interested in this section, please open a GitHub Issue, and we will prioritize it. \ No newline at end of file From 0b8b321d5f98de1d96fb7ae9aabb1f3637096885 Mon Sep 17 00:00:00 2001 From: Hahnbee Lee <55263191+hahnbeelee@users.noreply.github.com> Date: Mon, 9 Oct 2023 15:57:12 -0700 Subject: [PATCH 34/61] fix reference --- nbs/docs/tutorials/IntermittentData.ipynb | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/nbs/docs/tutorials/IntermittentData.ipynb b/nbs/docs/tutorials/IntermittentData.ipynb index 3cf05d5f3..5fab2c5eb 100644 --- a/nbs/docs/tutorials/IntermittentData.ipynb +++ b/nbs/docs/tutorials/IntermittentData.ipynb @@ -9606,11 +9606,9 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "\n", - " [Croston, J. D. (1972). Forecasting and stock control for intermittent\n", + "[Croston, J. D. (1972). Forecasting and stock control for intermittent\n", " demands. Journal of the Operational Research Society, 23(3),\n", - " 289-303.](https://link.springer.com/article/10.1057/jors.1972.50)\n", - "" + " 289-303.](https://link.springer.com/article/10.1057/jors.1972.50)" ] } ], From ed609114621d8f83e71eae256bfa7ba9cf1ef259 Mon Sep 17 00:00:00 2001 From: Hahnbee Lee <55263191+hahnbeelee@users.noreply.github.com> Date: Mon, 9 Oct 2023 17:32:53 -0700 Subject: [PATCH 35/61] remove DarkBlue span --- nbs/src/adapters.prophet.ipynb | 6 +++--- nbs/src/core/models.ipynb | 2 +- nbs/src/utils.ipynb | 6 +++--- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/nbs/src/adapters.prophet.ipynb b/nbs/src/adapters.prophet.ipynb index 07208823b..eb37ef960 100644 --- a/nbs/src/adapters.prophet.ipynb +++ b/nbs/src/adapters.prophet.ipynb @@ -77,7 +77,7 @@ "id": "cd013cee", "metadata": {}, "source": [ - "# 1. AutoARIMA Adapter " + "# 1. AutoARIMA Adapter" ] }, { @@ -349,7 +349,7 @@ "id": "016a5fd2", "metadata": {}, "source": [ - "# 2. Prophet Substitution Example " + "# 2. Prophet Substitution Example" ] }, { @@ -454,7 +454,7 @@ "id": "6c7034db-3440-43ce-98c0-54a598da04d6", "metadata": {}, "source": [ - "## 2.2 Holiday Prophet " + "## 2.2 Holiday Prophet" ] }, { diff --git a/nbs/src/core/models.ipynb b/nbs/src/core/models.ipynb index 5f86d9215..38b599f75 100644 --- a/nbs/src/core/models.ipynb +++ b/nbs/src/core/models.ipynb @@ -356,7 +356,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Automatic Forecasting " + "# Automatic Forecasting" ] }, { diff --git a/nbs/src/utils.ipynb b/nbs/src/utils.ipynb index f2c8bcea4..c11fbcdc2 100644 --- a/nbs/src/utils.ipynb +++ b/nbs/src/utils.ipynb @@ -27,7 +27,7 @@ "source": [ "# Utils\n", "\n", - "> The `core.StatsForecast` class allows you to efficiently fit multiple `StatsForecast` models for large sets of time series. It operates with pandas DataFrame `df` that identifies individual series and datestamps with the `unique_id` and `ds` columns, and the `y` column denotes the target time series variable. To assist development, we declare useful datasets that we use throughout all `StatsForecast`'s unit tests.

" + "> The `core.StatsForecast` class allows you to efficiently fit multiple `StatsForecast` models for large sets of time series. It operates with pandas DataFrame `df` that identifies individual series and datestamps with the `unique_id` and `ds` columns, and the `y` column denotes the target time series variable. To assist development, we declare useful datasets that we use throughout all `StatsForecast`'s unit tests." ] }, { @@ -85,7 +85,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# 1. Synthetic Panel Data " + "# 1. Synthetic Panel Data" ] }, { @@ -157,7 +157,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# 2. AirPassengers Data \n", + "# 2. AirPassengers Data\n", "\n", "The classic Box & Jenkins airline data. Monthly totals of international airline passengers, 1949 to 1960.\n", "\n", From 00b5c6377742ec0f6d580bd196fda4058c67f73a Mon Sep 17 00:00:00 2001 From: Hahnbee Lee <55263191+hahnbeelee@users.noreply.github.com> Date: Mon, 9 Oct 2023 18:30:35 -0700 Subject: [PATCH 36/61] final formatting --- final-formatting.bash | 6 ++ nbs/src/adapters.prophet.ipynb | 2 +- nbs/src/core/models.ipynb | 122 +++++++++++++++++++++------------ 3 files changed, 85 insertions(+), 45 deletions(-) create mode 100644 final-formatting.bash diff --git a/final-formatting.bash b/final-formatting.bash new file mode 100644 index 000000000..81fd23bbd --- /dev/null +++ b/final-formatting.bash @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +for file in $(find mintlify -type f -name "*mdx"); do + sed -i '' -e s/'style="float:right; font-size:smaller"'/'style={{ float: "right", fontSize: "smaller" }}'/g $file + sed -i '' -e s/'
'/''/g $file +done \ No newline at end of file diff --git a/nbs/src/adapters.prophet.ipynb b/nbs/src/adapters.prophet.ipynb index eb37ef960..2cdf836f5 100644 --- a/nbs/src/adapters.prophet.ipynb +++ b/nbs/src/adapters.prophet.ipynb @@ -386,7 +386,7 @@ "id": "312bd903-a199-4412-926f-33d57a68d2b8", "metadata": {}, "source": [ - "## 2.1 Univariate Prophet \n", + "## 2.1 Univariate Prophet\n", "\n", "Here we forecast with `Prophet` without external regressors. We first instantiate a new `Prophet` object, and define its forecasting procedure into its constructor. After that a classic sklearn `fit` and `predict` is used to obtain the predictions." ] diff --git a/nbs/src/core/models.ipynb b/nbs/src/core/models.ipynb index 38b599f75..217c8e54a 100644 --- a/nbs/src/core/models.ipynb +++ b/nbs/src/core/models.ipynb @@ -379,10 +379,12 @@ " Automatically selects the best ARIMA (AutoRegressive Integrated Moving Average) \n", " model using an information criterion. Default is Akaike Information Criterion (AICc). \n", " \n", - " **Note:**
\n", + " **Note:**\n", + "\n", " This implementation is a mirror of Hyndman's [forecast::auto.arima](https://github.com/robjhyndman/forecast).\n", " \n", - " **References:**
\n", + " **References:**\n", + "\n", " [Rob J. Hyndman, Yeasmin Khandakar (2008). \"Automatic Time Series Forecasting: The forecast package for R\"](https://www.jstatsoft.org/article/view/v027i03).\n", " \n", " Parameters\n", @@ -1042,10 +1044,12 @@ " If the component is selected as 'Z', it operates as a placeholder to ask the AutoETS model\n", " to figure out the best parameter.\n", " \n", - " **Note:**
\n", + " **Note:**\n", + "\n", " This implementation is a mirror of Hyndman's [forecast::ets](https://github.com/robjhyndman/forecast).\n", " \n", - " **References:**
\n", + " **References:**\n", + "\n", " [Rob J. Hyndman, Yeasmin Khandakar (2008). \"Automatic Time Series Forecasting: The forecast package for R\"](https://www.jstatsoft.org/article/view/v027i03).\n", " \n", " [Hyndman, Rob, et al (2008). \"Forecasting with exponential smoothing: the state space approach\"](https://robjhyndman.com/expsmooth/).\n", @@ -1548,7 +1552,8 @@ " If the component is selected as 'Z', it operates as a placeholder to ask the AutoCES model\n", " to figure out the best parameter.\n", " \n", - " **References:**
\n", + " **References:**\n", + "\n", " [Svetunkov, Ivan & Kourentzes, Nikolaos. (2015). \"Complex Exponential Smoothing\". 10.13140/RG.2.1.3757.2562. ](https://onlinelibrary.wiley.com/doi/full/10.1002/nav.22074).\n", " \n", " Parameters\n", @@ -1986,7 +1991,8 @@ " Optimized Theta Model ('OTM'), Dynamic Standard Theta Model ('DSTM'),\n", " Dynamic Optimized Theta Model ('DOTM')) model using mse. \n", " \n", - " **References:**
\n", + " **References:**\n", + "\n", " [Jose A. Fiorucci, Tiago R. Pellegrini, Francisco Louzada, Fotios Petropoulos, Anne B. Koehler (2016). \"Models for optimising the theta method and their relationship to state space models\". International Journal of Forecasting](https://www.sciencedirect.com/science/article/pii/S0169207016300243)\n", " \n", " Parameters\n", @@ -2338,7 +2344,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# ARIMA family " + "# ARIMA family" ] }, { @@ -2360,7 +2366,8 @@ "\n", " AutoRegressive Integrated Moving Average model.\n", "\n", - " **References:**
\n", + " **References:**\n", + "\n", " [Rob J. Hyndman, Yeasmin Khandakar (2008). \"Automatic Time Series Forecasting: The forecast package for R\"](https://www.jstatsoft.org/article/view/v027i03).\n", " \n", " Parameters\n", @@ -3030,7 +3037,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# ExponentialSmoothing " + "# ExponentialSmoothing" ] }, { @@ -3176,7 +3183,8 @@ "\n", " The rate $0 \\leq \\\\alpha \\leq 1$ at which the weights decrease is called the smoothing parameter. When $\\\\alpha = 1$, SES is equal to the naive method.\n", "\n", - " **References:**
\n", + " **References:**\n", + "\n", " [Charles C Holt (1957). β€œForecasting seasonals and trends by exponentially weighted moving averages”](https://doi.org/10.1016/j.ijforecast).\n", "\n", " Parameters\n", @@ -3492,7 +3500,8 @@ "\n", " The smoothing parameter $\\\\alpha^*$ is optimized by square error minimization.\n", "\n", - " **References:**
\n", + " **References:**\n", + "\n", " [Charles C Holt (1957). β€œForecasting seasonals and trends by exponentially weighted moving averages”](https://doi.org/10.1016/j.ijforecast).\n", "\n", " Parameters\n", @@ -3804,11 +3813,13 @@ " Assuming there are $t$ observations and season $s$, the one-step forecast is given by: \n", " $\\hat{y}_{t+1,s} = \\\\alpha y_t + (1-\\\\alpha) \\hat{y}_{t-1,s}$\n", "\n", - " **Note:**
\n", + " **Note:**\n", + "\n", " This method is an extremely simplified of Holt-Winter's method where the trend and level are set to zero.\n", " And a single seasonal smoothing parameter $\\\\alpha$ is shared across seasons.\n", "\n", - " **References:**
\n", + " **References:**\n", + "\n", " [Charles. C. Holt (1957). \"Forecasting seasonals and trends by exponentially weighted moving averages\", ONR Research Memorandum, Carnegie Institute of Technology 52.](https://www.sciencedirect.com/science/article/abs/pii/S0169207003001134).\n", " [Peter R. Winters (1960). \"Forecasting sales by exponentially weighted moving averages\". Management Science](https://pubsonline.informs.org/doi/abs/10.1287/mnsc.6.3.324).\n", "\n", @@ -4182,11 +4193,13 @@ " \n", " The smoothing parameter $\\\\alpha^*$ is optimized by square error minimization. \n", "\n", - " **Note:**
\n", + " **Note:**\n", + "\n", " This method is an extremely simplified of Holt-Winter's method where the trend and level are set to zero.\n", " And a single seasonal smoothing parameter $\\\\alpha$ is shared across seasons.\n", "\n", - " **References:**
\n", + " **References:**\n", + "\n", " [Charles. C. Holt (1957). \"Forecasting seasonals and trends by exponentially weighted moving averages\", ONR Research Memorandum, Carnegie Institute of Technology 52.](https://www.sciencedirect.com/science/article/abs/pii/S0169207003001134).\n", " [Peter R. Winters (1960). \"Forecasting sales by exponentially weighted moving averages\". Management Science](https://pubsonline.informs.org/doi/abs/10.1287/mnsc.6.3.324).\n", " \n", @@ -4486,7 +4499,8 @@ " Also known as double exponential smoothing, Holt's method is an extension of exponential smoothing for series with a trend.\n", " This implementation returns the corresponding `ETS` model with additive (A) or multiplicative (M) errors (so either 'AAN' or 'MAN'). \n", "\n", - " **References:**
\n", + " **References:**\n", + "\n", " [Rob J. Hyndman and George Athanasopoulos (2018). \"Forecasting principles and practice, Methods with trend\"](https://otexts.com/fpp3/holt.html).\n", "\n", " Parameters\n", @@ -4692,7 +4706,8 @@ " Also known as triple exponential smoothing, Holt-Winters' method is an extension of exponential smoothing for series that contain both trend and seasonality.\n", " This implementation returns the corresponding `ETS` model with additive (A) or multiplicative (M) errors (so either 'AAA' or 'MAM'). \n", " \n", - " **References:**
\n", + " **References:**\n", + "\n", " [Rob J. Hyndman and George Athanasopoulos (2018). \"Forecasting principles and practice, Methods with seasonality\"](https://otexts.com/fpp3/holt-winters.html).\n", " \n", " Parameters\n", @@ -4880,7 +4895,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Baseline Models " + "# Baseline Models" ] }, { @@ -4929,7 +4944,8 @@ " Assuming there are $t$ observations, the one-step forecast is given by: \n", " $$ \\hat{y}_{t+1} = \\\\frac{1}{t} \\sum_{j=1}^t y_j $$\n", "\n", - " **References:**
\n", + " **References:**\n", + "\n", " [Rob J. Hyndman and George Athanasopoulos (2018). \"Forecasting principles and practice, Simple Methods\"](https://otexts.com/fpp3/simple-methods.html).\n", "\n", " Parameters \n", @@ -5254,7 +5270,8 @@ " All forecasts have the value of the last observation: \n", " $\\hat{y}_{t+1} = y_t$ for all $t$\n", " \n", - " **References:**
\n", + " **References:**\n", + "\n", " [Rob J. Hyndman and George Athanasopoulos (2018). \"forecasting principles and practice, Simple Methods\"](https://otexts.com/fpp3/simple-methods.html). \n", " \n", " Parameters \n", @@ -5623,7 +5640,8 @@ " From the previous equation, we can see that this is equivalent to extrapolating a line between \n", " the first and the last observation. \n", "\n", - " **References:**
\n", + " **References:**\n", + "\n", " [Rob J. Hyndman and George Athanasopoulos (2018). \"forecasting principles and practice, Simple Methods\"](https://otexts.com/fpp3/simple-methods.html).\n", "\n", " Parameters\n", @@ -5971,7 +5989,8 @@ "\n", " A method similar to the naive, but uses the last known observation of the same period (e.g. the same month of the previous year) in order to capture seasonal variations.\n", "\n", - " **References:**
\n", + " **References:**\n", + "\n", " [Rob J. Hyndman and George Athanasopoulos (2018). \"forecasting principles and practice, Simple Methods\"](https://otexts.com/fpp3/simple-methods.html#seasonal-na%C3%AFve-method).\n", "\n", " Parameters\n", @@ -6359,7 +6378,8 @@ " The length of the window selected should take into account the importance of past\n", " observations and how fast the series changes.\n", "\n", - " **References:**
\n", + " **References:**\n", + "\n", " [Rob J. Hyndman and George Athanasopoulos (2018). \"forecasting principles and practice, Simple Methods\"](https://otexts.com/fpp3/simple-methods.html).\n", "\n", " Parameters\n", @@ -6671,7 +6691,8 @@ "\n", " An average of the last $k$ observations of the same period, with $k$ the length of the window.\n", "\n", - " **References:**
\n", + " **References:**\n", + "\n", " [Rob J. Hyndman and George Athanasopoulos (2018). \"forecasting principles and practice, Simple Methods\"](https://otexts.com/fpp3/simple-methods.html).\n", "\n", " Parameters\n", @@ -6947,7 +6968,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Sparse or Intermittent " + "# Sparse or Intermittent" ] }, { @@ -7006,7 +7027,8 @@ " They are notoriously hard to forecast, and so, different methods have been developed \n", " especifically for them.\n", " \n", - " **References:**
\n", + " **References:**\n", + "\n", " [Nikolopoulos, K., Syntetos, A. A., Boylan, J. E., Petropoulos, F., & Assimakopoulos, V. (2011). An aggregate–disaggregate intermittent demand approach (ADIDA) to forecasting: an empirical proposition and analysis. Journal of the Operational Research Society, 62(3), 544-554.](https://researchportal.bath.ac.uk/en/publications/an-aggregate-disaggregate-intermittent-demand-approach-adida-to-f).\n", " \n", " Parameters\n", @@ -7327,7 +7349,8 @@ " where $\\hat{z}_t$ and $\\hat{p}_t$ are forecasted using SES. The smoothing parameter \n", " of both components is set equal to 0.1\n", "\n", - " **References:**
\n", + " **References:**\n", + "\n", " [Croston, J. D. (1972). Forecasting and stock control for intermittent demands. Journal of the Operational Research Society, 23(3), 289-303.](https://link.springer.com/article/10.1057/jors.1972.50)\n", " \n", " Parameters\n", @@ -7636,7 +7659,8 @@ " selected from the range $[0.1,0.3]$. Both the non-zero demand $z_t$ and the inter-demand \n", " intervals $p_t$ are smoothed separately, so their smoothing parameters can be different.\n", "\n", - " **References:**
\n", + " **References:**\n", + "\n", " [Croston, J. D. (1972). Forecasting and stock control for intermittent demands. Journal of the Operational Research Society, 23(3), 289-303.](https://link.springer.com/article/10.1057/jors.1972.50).\n", "\n", " Parameters\n", @@ -7933,7 +7957,8 @@ " forecast is given by:\n", " $$ \\hat{y}_t = 0.95 \\\\frac{\\hat{z}_t}{\\hat{p}_t} $$\n", "\n", - " **References:**
\n", + " **References:**\n", + "\n", " [Croston, J. D. (1972). Forecasting and stock control for intermittent demands. Journal of the Operational Research Society, 23(3), 289-303.](https://link.springer.com/article/10.1057/jors.1972.50).\n", "\n", " Parameters\n", @@ -8243,7 +8268,8 @@ " dynamics of the data. Uses the optimized SES to generate the forecasts at the new levels\n", " and then combines them using a simple average.\n", " \n", - " **References:**
\n", + " **References:**\n", + "\n", " [Syntetos, A. A., & Boylan, J. E. (2021). Intermittent demand forecasting: Context, methods and applications. John Wiley & Sons.](https://www.ifors.org/intermittent-demand-forecasting-context-methods-and-applications/).\n", "\n", " Parameters\n", @@ -8568,7 +8594,8 @@ " Both $d_t$ and $z_t$ are forecasted using SES. The smooting paramaters of each may differ, \n", " like in the optimized Croston's method.\n", "\n", - " **References:**
\n", + " **References:**\n", + "\n", " [Teunter, R. H., Syntetos, A. A., & Babai, M. Z. (2011). Intermittent demand: Linking forecasting to inventory obsolescence. European Journal of Operational Research, 214(3), 606-615.](https://www.sciencedirect.com/science/article/abs/pii/S0377221711004437)\n", "\n", " Parameters\n", @@ -8834,7 +8861,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Multiple Seasonalities " + "# Multiple Seasonalities" ] }, { @@ -8878,7 +8905,8 @@ " in multiple seasonalities using LOESS. Then forecasts the trend using \n", " a custom non-seaonal model and each seasonality using a SeasonalNaive model.\n", " \n", - " **References:**
\n", + " **References:**\n", + "\n", " [Bandara, Kasun & Hyndman, Rob & Bergmeir, Christoph. (2021). \"MSTL: A Seasonal-Trend Decomposition Algorithm for Time Series with Multiple Seasonal Patterns\".](https://arxiv.org/abs/2107.13462).\n", " \n", " Parameters\n", @@ -9384,7 +9412,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Theta Family " + "# Theta Family" ] }, { @@ -9404,7 +9432,8 @@ "class Theta(AutoTheta): \n", " \"\"\" Standard Theta Method. \n", "\n", - " **References:**
\n", + " **References:**\n", + "\n", " [Jose A. Fiorucci, Tiago R. Pellegrini, Francisco Louzada, Fotios Petropoulos, Anne B. Koehler (2016). \"Models for optimising the theta method and their relationship to state space models\". International Journal of Forecasting](https://www.sciencedirect.com/science/article/pii/S0169207016300243)\n", "\n", " Parameters\n", @@ -9606,7 +9635,8 @@ "class OptimizedTheta(AutoTheta): \n", " \"\"\" Optimized Theta Method. \n", "\n", - " **References:**
\n", + " **References:**\n", + "\n", " [Jose A. Fiorucci, Tiago R. Pellegrini, Francisco Louzada, Fotios Petropoulos, Anne B. Koehler (2016). \"Models for optimising the theta method and their relationship to state space models\". International Journal of Forecasting](https://www.sciencedirect.com/science/article/pii/S0169207016300243)\n", "\n", " Parameters\n", @@ -9810,7 +9840,8 @@ "class DynamicTheta(AutoTheta): \n", " \"\"\" Dynamic Standard Theta Method. \n", "\n", - " **References:**
\n", + " **References:**\n", + "\n", " [Jose A. Fiorucci, Tiago R. Pellegrini, Francisco Louzada, Fotios Petropoulos, Anne B. Koehler (2016). \"Models for optimising the theta method and their relationship to state space models\". International Journal of Forecasting](https://www.sciencedirect.com/science/article/pii/S0169207016300243)\n", "\n", " Parameters\n", @@ -10014,7 +10045,8 @@ "class DynamicOptimizedTheta(AutoTheta): \n", " \"\"\" Dynamic Optimized Theta Method. \n", " \n", - " **References:**
\n", + " **References:**\n", + "\n", " [Jose A. Fiorucci, Tiago R. Pellegrini, Francisco Louzada, Fotios Petropoulos, Anne B. Koehler (2016). \"Models for optimising the theta method and their relationship to state space models\". International Journal of Forecasting](https://www.sciencedirect.com/science/article/pii/S0169207016300243)\n", "\n", " Parameters\n", @@ -10204,7 +10236,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# ARCH Family" + "# ARCH Family" ] }, { @@ -10241,7 +10273,8 @@ " \n", " The ARCH model is a particular case of the GARCH model when $q=0$. \n", " \n", - " **References:**
\n", + " **References:**\n", + "\n", " [Engle, R. F. (1982). Autoregressive conditional heteroscedasticity with estimates of the variance of United Kingdom inflation. Econometrica: Journal of the econometric society, 987-1007.](http://www.econ.uiuc.edu/~econ508/Papers/engle82.pdf) \n", " \n", " [Bollerslev, T. (1986). Generalized autoregressive conditional heteroskedasticity. Journal of econometrics, 31(3), 307-327.](https://citeseerx.ist.psu.edu/document?repid=rep1&type=pdf&doi=7da8bfa5295375c1141d797e80065a599153c19d)\n", @@ -10584,10 +10617,11 @@ " \n", " $$ \\sigma_t^2 = w0 + \\sum_{i=1}^p a_i y_{t-i}^2$$. \n", " \n", - " Here {$\\epsilon_t$} is a sequence of iid random variables with zero mean and unit variance. \n", + " Here $\\epsilon_t$ is a sequence of iid random variables with zero mean and unit variance. \n", " The coefficients $w$ and $a_i$, $i=1,...,p$ must be nonnegative and $\\sum_{k=1}^p a_k < 1$. \n", " \n", - " **References:**
\n", + " **References:**\n", + "\n", " [Engle, R. F. (1982). Autoregressive conditional heteroscedasticity with estimates of the variance of United Kingdom inflation. Econometrica: Journal of the econometric society, 987-1007.](http://www.econ.uiuc.edu/~econ508/Papers/engle82.pdf) \n", "\n", " [James D. Hamilton. Time Series Analysis Princeton University Press, Princeton, New Jersey, 1st Edition, 1994.](https://press.princeton.edu/books/hardcover/9780691042893/time-series-analysis)\n", @@ -10716,7 +10750,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Fallback Models " + "# Fallback Models" ] }, { @@ -11241,7 +11275,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# References " + "# References" ] }, { From d4712a815aaa20bcc5a3b218e238d8fca889ff60 Mon Sep 17 00:00:00 2001 From: Hahnbee Lee <55263191+hahnbeelee@users.noreply.github.com> Date: Tue, 10 Oct 2023 10:20:21 -0700 Subject: [PATCH 37/61] add logo images --- nbs/imgs/logo/dark.png | Bin 0 -> 2883 bytes nbs/imgs/logo/light.png | Bin 0 -> 2851 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 nbs/imgs/logo/dark.png create mode 100644 nbs/imgs/logo/light.png diff --git a/nbs/imgs/logo/dark.png b/nbs/imgs/logo/dark.png new file mode 100644 index 0000000000000000000000000000000000000000..4142a0bbde38d8801c80e73a8fa18df0baffb465 GIT binary patch literal 2883 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 literal 0 HcmV?d00001 diff --git a/nbs/imgs/logo/light.png b/nbs/imgs/logo/light.png new file mode 100644 index 0000000000000000000000000000000000000000..bbb99b5497a62503432e3c770f9fd6290b304ed6 GIT binary patch literal 2851 zcmXYzdpwivAIFhuIb|_hD9Q6Qa+skICdZL89TaV?{X#`#L~JC7oaITXpD}aj@Df=q z)59hkmP0wD=9!QrGiQcj_-#GEKknhRdZsulUy}w*vu#klW6x9QQf}LCob0sAch?T&B|VwEgKDBWqZx(jn42EtI4#6nTwQ9ZPkOU+>0W4ufXG6h}g|HuAa4%lxYQxj4O-+eY|JW&R>C#Bl&2JK!hM94v0E z-HSV%_5==?$+}b!E)h_&=c@ehkBiprZJXo3470R#;^{;^xyhx2@fjqCxu2<&uKn;X z0rF6MDQD4&(B`OWtIp^}n8b0Q6ZRRR+$$y?1zRP0^=nsf z`cmpIt6oD3N5X%tGN<;7qc2?p0J`46}3wSsadH;&m84$6e3_c7AKsZDK1!#0Z| z)ha#6wuK3nu9#TS0rZ`pN}R^R{ulS3RyC9mcD@G*HU3O6-B`ITPd41EvYg&mCs8_E zan2n*?R>QpzRRtNSYe!91dcyc!5KV;@G`W8 zcQBu^?6@EyXbw|w+`(Bxo}E+mTOJ!Ys?vc|4JlGNAGQWeszI`A`nBoN3t2>5&6 z>7{SCZ>~2&`qe_tN`OH>jQ?co_R(gOBTyQIkBc%(o2lOpz^J&P3tX!zy z4|DStV|8sWq4PJMex?Mcrq&9o#_?%c0*$lOx_h-YyS?2ojSXU0Bm~?nQY@NtU8Qx7 z&SpOIFb*syw5U>VdWn81!LuDds4&vc@Go>ISK5eIAszN+)D~aHLh`Nzde*=TCMFaB zYfGDj{X{@in;%rOrf>Ej_Y1>tp~$MuSdJWe*dXKY%DmSZKLS|h+-Hvq>R28GJFO9$ z+U(BuV`*$vgu~Y3;j+n-t3!>?+)pAvUms;dLhXu3yIYNA$nHYK(d7f1`0GOF_?%K| zB4N2(FIsWq(*B|cAQn~*ea$`Ra>JA)Y4=!XK(39Q0v*_q0^7$kopid26dPW5=V2#$ zoWe1-23Xwd%RJNFD~`IPDOySj;gWL6*iLrIp|ldf_yde@s0=}3v!N+7GuAjU*l0M0 z+XuHUncvTyn4Z1Yp#T416kwbQ-b3}m`*3^27+AVfb8wf?29jWE-u7?{Wgydh)%c9d zYWxRrS`)F&6lgkmw|()v2Nf3kujZXBpM7Bf+}SWcjZZ zrL2cDh37lVL(7B`ro|R9_(B4uaZWg!ug)Urj_sIa?6vt8O+-da@45Wk={cB@UYRhO zb-7ARBhI)#3uQn@eI{jH!FwJ~V*?T7#FuVm^!JA}CxCQN{9VX3Wp2u=ai8Np|L&0* zHwC7~PVjG=_~UY{=BQ}}CrGg{YTG<7icy|xk>MUR6g*4vD$=#BX*x1oGC!C@Cu~|h z0JGw05!BFGB^l zE#U_{>xqF_3&tx;2v_!Hr5SoCdgmv#MMtlykwHWx#%flceMkUgxOj8dy?GL(!?pYA zCx-QpCoTB5{rsuM!UE7;YZJ+*K7YA*?t2K?U0~LLTFIA>6Mko^ZHymzAA#b6T`xz}OKLMv4}aVY0#xKhkpsJZ6Mxo{o(gA`Q# z3)=^Yt$X^EVb0;qY3T?RcJlgAWhXe2;Ms3MI{!SzSQyawai4-lo|1U{L<$Z z$%pYZO#QHgF2NB0nJSr3<7BXo-@oktpfcRE&X^d_hE|Nd z!DmpAu0w3~4=p}MzLvtfx7<$U@~R&*>tNYP9t?kXOE(}_a#o3MC(#C$KSdVrt|$~T zEdOCf+z>M~HnrBeS8(1^wQLq5 z#(8?(U^DVBiC8|At;XwgJOOU6YRILO(SFE_1i$4|Op6pa^U<5B-b~3SBFKkpQgE}s zrn?UY)l--NA;@$7zr3UCrv{LMv-qT@;WFA~IRXljZ0syNTv%rX?^m$&ym*$d% Date: Tue, 10 Oct 2023 10:57:56 -0700 Subject: [PATCH 38/61] add final formatting script --- .github/workflows/build-docs.yaml | 8 +++++++- final-formatting.bash | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-docs.yaml b/.github/workflows/build-docs.yaml index 459afb3a8..1eefc3ad3 100644 --- a/.github/workflows/build-docs.yaml +++ b/.github/workflows/build-docs.yaml @@ -20,9 +20,15 @@ jobs: pip install -Uq nbdev test -f setup.py && pip install -e ".[dev]" nbdev_docs - - name: Copy over mint.json + - name: Apply final formats + shell: bash + run: bash final-formatting.bash + - name: Copy over necessary assets run: | cp nbs/mint.json _docs/mint.json + cp nbs/imgs/logo/dark.png _docs/imgs/logo/dark.png + cp nbs/imgs/logo/light.png _docs/imgs/logo/light.png + cp nbs/favicon.svg _docs/favicon.svg - name: Deploy to Mintlify Docs uses: peaceiris/actions-gh-pages@v3 with: diff --git a/final-formatting.bash b/final-formatting.bash index 81fd23bbd..6af1bc1cc 100644 --- a/final-formatting.bash +++ b/final-formatting.bash @@ -1,6 +1,6 @@ #!/usr/bin/env bash -for file in $(find mintlify -type f -name "*mdx"); do +for file in $(find _docs -type f -name "*mdx"); do sed -i '' -e s/'style="float:right; font-size:smaller"'/'style={{ float: "right", fontSize: "smaller" }}'/g $file sed -i '' -e s/'
'/''/g $file done \ No newline at end of file From b58e816806aae9251046cba864b0f891990918f7 Mon Sep 17 00:00:00 2001 From: Hahnbee Lee <55263191+hahnbeelee@users.noreply.github.com> Date: Tue, 10 Oct 2023 12:20:04 -0700 Subject: [PATCH 39/61] echo file --- final-formatting.bash | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/final-formatting.bash b/final-formatting.bash index 6af1bc1cc..ec642bfa5 100644 --- a/final-formatting.bash +++ b/final-formatting.bash @@ -1,6 +1,7 @@ #!/usr/bin/env bash for file in $(find _docs -type f -name "*mdx"); do - sed -i '' -e s/'style="float:right; font-size:smaller"'/'style={{ float: "right", fontSize: "smaller" }}'/g $file - sed -i '' -e s/'
'/''/g $file + echo ${file} + sed -i '' -e 's/style="float:right; font-size:smaller"/style={{ float: "right", fontSize: "smaller" }}/g' $file + sed -i '' -e 's/
//g' $file done \ No newline at end of file From 20b961bd183cf2d0572dc27c9bcf32985d8f3a83 Mon Sep 17 00:00:00 2001 From: Hahnbee Lee <55263191+hahnbeelee@users.noreply.github.com> Date: Tue, 10 Oct 2023 12:41:28 -0700 Subject: [PATCH 40/61] add ostype if else --- final-formatting.bash | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/final-formatting.bash b/final-formatting.bash index ec642bfa5..451850326 100644 --- a/final-formatting.bash +++ b/final-formatting.bash @@ -1,7 +1,11 @@ #!/usr/bin/env bash for file in $(find _docs -type f -name "*mdx"); do - echo ${file} - sed -i '' -e 's/style="float:right; font-size:smaller"/style={{ float: "right", fontSize: "smaller" }}/g' $file - sed -i '' -e 's/
//g' $file + if [[ "$OSTYPE" == "darwin"* ]]; then + sed -i '' -e 's/style="float:right; font-size:smaller"/style={{ float: "right", fontSize: "smaller" }}/g' $file + sed -i '' -e 's/
//g' $file + else + sed -i -e 's/style="float:right; font-size:smaller"/style={{ float: "right", fontSize: "smaller" }}/g' $file + sed -i -e 's/
//g' $file + fi done \ No newline at end of file From ec0fbe96e76bfe03943fe513a296175b7a49d654 Mon Sep 17 00:00:00 2001 From: Hahnbee Lee <55263191+hahnbeelee@users.noreply.github.com> Date: Tue, 10 Oct 2023 13:04:13 -0700 Subject: [PATCH 41/61] dont put logos in folder --- .github/workflows/build-docs.yaml | 4 ++-- nbs/mint.json | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build-docs.yaml b/.github/workflows/build-docs.yaml index 1eefc3ad3..fe5a241b2 100644 --- a/.github/workflows/build-docs.yaml +++ b/.github/workflows/build-docs.yaml @@ -26,8 +26,8 @@ jobs: - name: Copy over necessary assets run: | cp nbs/mint.json _docs/mint.json - cp nbs/imgs/logo/dark.png _docs/imgs/logo/dark.png - cp nbs/imgs/logo/light.png _docs/imgs/logo/light.png + cp nbs/imgs/logo/dark.png _docs/dark.png + cp nbs/imgs/logo/light.png _docs/light.png cp nbs/favicon.svg _docs/favicon.svg - name: Deploy to Mintlify Docs uses: peaceiris/actions-gh-pages@v3 diff --git a/nbs/mint.json b/nbs/mint.json index 341f7b473..9094e67a8 100644 --- a/nbs/mint.json +++ b/nbs/mint.json @@ -2,8 +2,8 @@ "$schema": "https://mintlify.com/schema.json", "name": "Nixtla", "logo": { - "light": "/logo/light.png", - "dark": "/logo/dark.png" + "light": "/light.png", + "dark": "/dark.png" }, "favicon": "/favicon.svg", "colors": { From 3069bedef3c8ee8db7a8f5a7083d389fe2d96b5e Mon Sep 17 00:00:00 2001 From: Hahnbee Lee <55263191+hahnbeelee@users.noreply.github.com> Date: Tue, 10 Oct 2023 13:13:24 -0700 Subject: [PATCH 42/61] remove index.html --- .github/workflows/build-docs.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build-docs.yaml b/.github/workflows/build-docs.yaml index fe5a241b2..9a608fc0a 100644 --- a/.github/workflows/build-docs.yaml +++ b/.github/workflows/build-docs.yaml @@ -29,6 +29,7 @@ jobs: cp nbs/imgs/logo/dark.png _docs/dark.png cp nbs/imgs/logo/light.png _docs/light.png cp nbs/favicon.svg _docs/favicon.svg + rm _docs/index.html - name: Deploy to Mintlify Docs uses: peaceiris/actions-gh-pages@v3 with: From 3ae38c2cc1cb6e811790e247603b519ca8ddb7ad Mon Sep 17 00:00:00 2001 From: Hahnbee Lee <55263191+hahnbeelee@users.noreply.github.com> Date: Tue, 10 Oct 2023 13:26:46 -0700 Subject: [PATCH 43/61] uses: actions/checkout@v3 --- .github/workflows/build-docs.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build-docs.yaml b/.github/workflows/build-docs.yaml index 9a608fc0a..72637f7a9 100644 --- a/.github/workflows/build-docs.yaml +++ b/.github/workflows/build-docs.yaml @@ -24,6 +24,7 @@ jobs: shell: bash run: bash final-formatting.bash - name: Copy over necessary assets + uses: actions/checkout@v3 run: | cp nbs/mint.json _docs/mint.json cp nbs/imgs/logo/dark.png _docs/dark.png From 03daa70e90b00cad2237b0a7b09e9ef2de618b28 Mon Sep 17 00:00:00 2001 From: Hahnbee Lee <55263191+hahnbeelee@users.noreply.github.com> Date: Tue, 10 Oct 2023 13:49:17 -0700 Subject: [PATCH 44/61] delete with bash --- .github/workflows/build-docs.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-docs.yaml b/.github/workflows/build-docs.yaml index 72637f7a9..e0e920f16 100644 --- a/.github/workflows/build-docs.yaml +++ b/.github/workflows/build-docs.yaml @@ -24,13 +24,14 @@ jobs: shell: bash run: bash final-formatting.bash - name: Copy over necessary assets - uses: actions/checkout@v3 run: | cp nbs/mint.json _docs/mint.json cp nbs/imgs/logo/dark.png _docs/dark.png cp nbs/imgs/logo/light.png _docs/light.png cp nbs/favicon.svg _docs/favicon.svg - rm _docs/index.html + - name: Delete index.html + shell: bash + run: rm _docs/index.html - name: Deploy to Mintlify Docs uses: peaceiris/actions-gh-pages@v3 with: From 0075a2786423970b570fa4293af9595b62b55b5e Mon Sep 17 00:00:00 2001 From: Hahnbee Lee <55263191+hahnbeelee@users.noreply.github.com> Date: Tue, 10 Oct 2023 14:01:14 -0700 Subject: [PATCH 45/61] rm -f --- .github/workflows/build-docs.yaml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/build-docs.yaml b/.github/workflows/build-docs.yaml index e0e920f16..94e8d2a57 100644 --- a/.github/workflows/build-docs.yaml +++ b/.github/workflows/build-docs.yaml @@ -29,9 +29,7 @@ jobs: cp nbs/imgs/logo/dark.png _docs/dark.png cp nbs/imgs/logo/light.png _docs/light.png cp nbs/favicon.svg _docs/favicon.svg - - name: Delete index.html - shell: bash - run: rm _docs/index.html + rm -f _docs/index.html - name: Deploy to Mintlify Docs uses: peaceiris/actions-gh-pages@v3 with: From 9b0cc99cf886036af637dec3f4e9de0faaa4fe1a Mon Sep 17 00:00:00 2001 From: Hahnbee Lee <55263191+hahnbeelee@users.noreply.github.com> Date: Tue, 10 Oct 2023 15:42:44 -0700 Subject: [PATCH 46/61] fix formatting errors in models pages --- nbs/docs/models/ARCH.ipynb | 52 ++++++++++--------- nbs/docs/models/ARIMA.ipynb | 4 +- nbs/docs/models/AutoCES.ipynb | 4 +- nbs/docs/models/AutoETS.ipynb | 2 +- nbs/docs/models/AutoTheta.ipynb | 6 +-- nbs/docs/models/Holt.ipynb | 2 +- nbs/docs/models/OptimizedTheta.ipynb | 6 +-- .../models/SeasonalExponentialSmoothing.ipynb | 4 +- nbs/mint.json | 31 +++++++++++ nbs/src/core/distributed.fugue.ipynb | 6 ++- 10 files changed, 80 insertions(+), 37 deletions(-) diff --git a/nbs/docs/models/ARCH.ipynb b/nbs/docs/models/ARCH.ipynb index 090c71f23..ea36d32bb 100644 --- a/nbs/docs/models/ARCH.ipynb +++ b/nbs/docs/models/ARCH.ipynb @@ -213,7 +213,9 @@ "source": [ "## Loading libraries and data \n", "\n", - ":::{.callout-tip} Statsforecast will be needed. To install, see [instructions](../getting-started/0_Installation.ipynb). :::\n", + ":::{.callout-tip}\n", + "Statsforecast will be needed. To install, see [instructions](../getting-started/0_Installation.ipynb).\n", + ":::\n", "\n", "Next, we import plotting libraries and configure the plotting style." ] @@ -12889,7 +12891,7 @@ 0.11683902533544767, 0.18038662130227442, 1.1396760668737118, - 8.429606751246858e-06, + 0.000008429606751246858, 0.9301650273653356, 0.16603494698002158, 0.02552244687162859, @@ -13006,7 +13008,7 @@ 0.333507961464413, 1.5341682132027463, 0.535647628131223, - 8.047187854454163e-06, + 0.000008047187854454163, 0.05159803214177818, 0.07600424912094962, 0.05061172231156831, @@ -13146,7 +13148,7 @@ 2.7279986776819762, 2.7160487251081724, 0.21768883267417796, - 6.77720693099992e-06, + 0.00000677720693099992, 2.0892382083596366, 1.5511137261921708, 0.19711705562956672, @@ -13190,7 +13192,7 @@ 0.09514048933694128, 0.005799502263676435, 0.26977917189300543, - 2.2905689893454364e-05, + 0.000022905689893454364, 0.032835101620127545, 0.035071983113154785, 0.02720364389284937, @@ -13282,7 +13284,7 @@ 0.2733247895916533, 0.03816868105362628, 0.05644730956949203, - 1.7126891073291785e-05, + 0.000017126891073291785, 0.17648748135786346, 0.08890408218010715, 0.00021428585381320998, @@ -13293,7 +13295,7 @@ 0.0034536384504556326, 1.0219740565421616, 0.14230208866334162, - 3.4607522944888557e-06, + 0.0000034607522944888557, 0.0008948379096681811, 1.1918442949862227, 0.4224720090152985, @@ -13317,7 +13319,7 @@ 0.379505710351215, 0.04804736114077823, 0.018926161782214495, - 7.079826049627675e-05, + 0.00007079826049627675, 0.2256097560481151, 0.14422736286851592, 0.03029031934041486, @@ -13452,7 +13454,7 @@ 0.016163575341260606, 0.0033884362508481143, 0.16717428315038643, - 1.4022086968800128e-05, + 0.000014022086968800128, 0.010511348063911363, 0.012782595072851783, 0.04677744379099467, @@ -13500,7 +13502,7 @@ 0.5337190473107196, 0.03514066158205324, 0.21841633296069093, - 2.799770311426146e-05, + 0.00002799770311426146, 0.0035743299293066215, 0.2886525495692123, 0.0002361118071194596, @@ -13550,7 +13552,7 @@ 0.09277613223137564, 0.004196366830944074, 0.04937508180038409, - 5.208049534825782e-05, + 0.00005208049534825782, 0.16688400504491227, 0.014510991850446027, 0.13727838266375458, @@ -13693,7 +13695,7 @@ 0.006911690943276298, 0.3278850494791402, 0.7287238222344438, - 3.161982797127493e-05, + 0.00003161982797127493, 1.7903942515655977, 0.033747867911173186, 1.0887262880763404, @@ -13804,7 +13806,7 @@ 0.017032753347700658, 0.10819350754652532, 0.07635754962107597, - 4.720076651680163e-07, + 4.720076651680163e-7, 0.13257647932461017, 0.0015736305321550584, 0.005062602892380193, @@ -13859,7 +13861,7 @@ 0.0003997208956144086, 3.6430248324576744, 4.315374983468133, - 7.465081431494341e-05, + 0.00007465081431494341, 2.3702802404040986, 2.4875933720473613, 4.238751501049985, @@ -13930,14 +13932,14 @@ 0.12884377091778848, 0.45350527664342116, 1.3383250835766, - 3.047038069794671e-06, + 0.000003047038069794671, 0.046155230627765706, 0.04345704527385812, 0.21496506713259997, 0.010971728644473754, 0.3681449089203887, 0.12095591183388035, - 1.4533571009694057e-05, + 0.000014533571009694057, 0.43683167649436533, 0.003961054815055465, 0.002594457624136788, @@ -14040,7 +14042,7 @@ 1.1755067590686328, 1.692552536701068, 0.008292017842472079, - 8.837910181512196e-05, + 0.00008837910181512196, 0.0010388011063882155, 0.52268289783404, 0.08289521198197039, @@ -14048,9 +14050,9 @@ 0.09831904474102832, 0.06665444896152177, 0.0011743773216012492, - 3.989948937286202e-06, + 0.000003989948937286202, 0.23966670389611294, - 9.396568391014351e-05, + 0.00009396568391014351, 0.7083530264126577, 0.379280036868932, 0.05899634912283012, @@ -14108,7 +14110,7 @@ 0.012032641276976222, 0.08457382662710584, 0.73534494099483, - 5.26813972937628e-05, + 0.0000526813972937628, 0.5109083285028833, 0.0011242101166246262, 0.0018688345123409381, @@ -14117,7 +14119,7 @@ 0.0075020470243941095, 0.00038200004553110315, 0.26298092501994424, - 1.1549731265675906e-05, + 0.000011549731265675906, 0.33417910089435754, 0.0867904320408933, 0.7020433764156192, @@ -14592,7 +14594,7 @@ 0.6766417031004891, 0.0030353502921928455, 0.52166759677021, - 1.1534388436087901e-06, + 0.0000011534388436087901, 0.1494000082288102, 0.06768454071199759, 0.11456736834367175, @@ -14943,13 +14945,13 @@ 0.06211911053832683, 0.12810408947533514, 0.009926192984207037, - 1.7100299484364275e-05, + 0.000017100299484364275, 0.17097265655211852, 1.7589894800913939, 0.042823064448460374, 0.10930672666497082, 0.007314017675982816, - 7.100057638853501e-05, + 0.00007100057638853501, 0.3543283102780241, 0.00815750397918031, 0.00725186857060821, @@ -14977,7 +14979,7 @@ 0.5356191175456438, 0.7669523057389738, 1.7027866477021951, - 2.756746937148935e-06, + 0.000002756746937148935, 0.3731529145352457, 0.9711025783145061, 2.1124949696707556, diff --git a/nbs/docs/models/ARIMA.ipynb b/nbs/docs/models/ARIMA.ipynb index f4854579e..91066e627 100644 --- a/nbs/docs/models/ARIMA.ipynb +++ b/nbs/docs/models/ARIMA.ipynb @@ -296,7 +296,9 @@ "source": [ "## Loading libraries and data \n", "\n", - ":::{.callout-tip} Statsforecast will be needed. To install, see [instructions](../getting-started/0_Installation.ipynb). :::\n", + ":::{.callout-tip}\n", + "Statsforecast will be needed. To install, see [instructions](../getting-started/0_Installation.ipynb). \n", + ":::\n", "\n", "Next, we import plotting libraries and configure the plotting style." ] diff --git a/nbs/docs/models/AutoCES.ipynb b/nbs/docs/models/AutoCES.ipynb index 4c36482af..3d1b8e5e3 100644 --- a/nbs/docs/models/AutoCES.ipynb +++ b/nbs/docs/models/AutoCES.ipynb @@ -197,7 +197,9 @@ "source": [ "## Loading libraries and data \n", "\n", - ":::{.callout-tip} Statsforecast will be needed. To install, see [instructions](../getting-started/0_Installation.ipynb). :::\n", + ":::{.callout-tip}\n", + "Statsforecast will be needed. To install, see [instructions](../getting-started/0_Installation.ipynb).\n", + ":::\n", "\n", "Next, we import plotting libraries and configure the plotting style." ] diff --git a/nbs/docs/models/AutoETS.ipynb b/nbs/docs/models/AutoETS.ipynb index 60b76ec3a..c42e4dd95 100644 --- a/nbs/docs/models/AutoETS.ipynb +++ b/nbs/docs/models/AutoETS.ipynb @@ -111,7 +111,7 @@ "\n", "$$s_{t} = \\gamma^*(1-\\alpha) (y_{t}-\\ell_{t-1}-b_{t-1})+ [1-\\gamma^*(1-\\alpha)]s_{t-m},$$\n", "\n", - "Thus, we obtain identical forecasts using this approach by replacing $\\gamma$ in (1c) with $\\gamma^{*} (1-\\alpha) $. The modification given in (1c) was proposed by Ord et al. (1997) to make the state space formulation simpler. It is equivalent to Archibald’s (1990) variation of the Holt-Winters’ method." + "Thus, we obtain identical forecasts using this approach by replacing $\\gamma$ in (1c) with $\\gamma^{*} (1-\\alpha)$. The modification given in (1c) was proposed by Ord et al. (1997) to make the state space formulation simpler. It is equivalent to Archibald’s (1990) variation of the Holt-Winters’ method." ] }, { diff --git a/nbs/docs/models/AutoTheta.ipynb b/nbs/docs/models/AutoTheta.ipynb index b7a66624d..e372091c3 100644 --- a/nbs/docs/models/AutoTheta.ipynb +++ b/nbs/docs/models/AutoTheta.ipynb @@ -148,13 +148,13 @@ "\n", "$$\\hat Y_{n+h|n} = (1-\\frac{1}{\\theta}) [\\text{A}_n+\\text{B}_n (n+h)]+ \\frac{1}{\\theta} \\tilde {\\text{Z}}_{n+h|n} (\\theta) \\tag 6$$\n", "\n", - "where $\\tilde {\\text{Z}}_{n+h|n} (\\theta)=\\tilde {\\text{Z}}_{n+1|n} (\\theta)=\\alpha \\sum_{i=0}^{n-1}(1-\\alpha)^i \\text{Z}_{n-i}(\\theta)+(1-\\alpha)^n \\ell_{0}^{*} $ is the extrapolation of $\\text{Z}_t(\\theta)$ by an SES model with $\\ell_{0}^{*} \\in \\mathbb{R}$ as the initial level parameter and $\\alpha \\in (0,1)$ as the smoothing parameter. Note that for $\\theta=2$ Eq. (6) corresponds to Step 4 of the STheta algorithm. After some algebra, we can write\n", + "where $\\tilde {\\text{Z}}_{n+h|n} (\\theta)=\\tilde {\\text{Z}}_{n+1|n} (\\theta)=\\alpha \\sum_{i=0}^{n-1}(1-\\alpha)^i \\text{Z}_{n-i}(\\theta)+(1-\\alpha)^n \\ell_{0}^{*}$ is the extrapolation of $\\text{Z}_t(\\theta)$ by an SES model with $\\ell_{0}^{*} \\in \\mathbb{R}$ as the initial level parameter and $\\alpha \\in (0,1)$ as the smoothing parameter. Note that for $\\theta=2$ Eq. (6) corresponds to Step 4 of the STheta algorithm. After some algebra, we can write\n", "\n", "$$\\tilde {\\text{Z}}_{n+1|n} (\\theta)=\\theta \\ell{n}+(1-\\theta) \\{ \\text{A}_n [1-(1-\\alpha)^n] + \\text{B}_n [n+(1-\\frac{1}{\\alpha}) [1-(1-\\alpha)^n] ] \\} \\tag 7$$\n", "\n", - "where $\\ell_{t}=\\alpha Y_t +(1-\\alpha) \\ell_{t-1} $ for $t=1, \\cdots, n$ and $\\ell_{0}=\\ell_{0}^{*}/\\theta$.\n", + "where $\\ell_{t}=\\alpha Y_t +(1-\\alpha) \\ell_{t-1}$ for $t=1, \\cdots, n$ and $\\ell_{0}=\\ell_{0}^{*}/\\theta$.\n", "\n", - "In the light of Eqs. (6), (7), we suggest four stochastic approaches. These approaches differ due to the parameter $\\theta$ which may be either fixed at two or optimised, and the coefficients $\\text{A}_n$ and $\\text{B}_n$, which can be either fixed or dynamic functions. To formulate the state space models, it is helpful to adopt $\\mu_{t}$ as the one-step-ahead forecast at origin $t-1$ and $\\varepsilon_{t} $ as the respective additive error, i.e., $\\varepsilon_{t}=Y_t - \\mu_{t} $ if $\\mu_{t}= \\hat Y_{t|t-1} $. We assume $\\{ \\varepsilon_{t} \\} $ to be a Gaussian white noise process with mean zero and variance $\\sigma^2$. " + "In the light of Eqs. (6), (7), we suggest four stochastic approaches. These approaches differ due to the parameter $\\theta$ which may be either fixed at two or optimised, and the coefficients $\\text{A}_n$ and $\\text{B}_n$, which can be either fixed or dynamic functions. To formulate the state space models, it is helpful to adopt $\\mu_{t}$ as the one-step-ahead forecast at origin $t-1$ and $\\varepsilon_{t}$ as the respective additive error, i.e., $\\varepsilon_{t}=Y_t - \\mu_{t}$ if $\\mu_{t}= \\hat Y_{t|t-1}$. We assume $\\{ \\varepsilon_{t} \\}$ to be a Gaussian white noise process with mean zero and variance $\\sigma^2$. " ] }, { diff --git a/nbs/docs/models/Holt.ipynb b/nbs/docs/models/Holt.ipynb index 065900df9..1d961204c 100644 --- a/nbs/docs/models/Holt.ipynb +++ b/nbs/docs/models/Holt.ipynb @@ -112,7 +112,7 @@ "\n", "For each method there exist two models: one with additive errors and one with multiplicative errors. The point forecasts produced by the models are identical if they use the same smoothing parameter values. They will, however, generate different prediction intervals.\n", "\n", - "To distinguish between a model with additive errors and one with multiplicative errors. We label each state space model as ETS( .,.,.) for (Error, Trend, Seasonal). This label can also be thought of as ExponenTial Smoothing. Using the same notation as in Table 7.5, the possibilities for each component are: Error ={A,M } , Trend ={ N,A,A d} and Seasonal ={ N,A,M }\n", + "To distinguish between a model with additive errors and one with multiplicative errors. We label each state space model as ETS( .,.,.) for (Error, Trend, Seasonal). This label can also be thought of as ExponenTial Smoothing. Using the same notation as in Table 7.5, the possibilities for each component are: Error =\\\\{A,M } , Trend =\\\\{ N,A,A d} and Seasonal =\\\\{ N,A,M }\n", "\n", "For our case, the linear Holt model with a trend, we are going to see two cases, both for the additive and the multiplicative\n", "\n", diff --git a/nbs/docs/models/OptimizedTheta.ipynb b/nbs/docs/models/OptimizedTheta.ipynb index dc4dd7c6c..34e0434d6 100644 --- a/nbs/docs/models/OptimizedTheta.ipynb +++ b/nbs/docs/models/OptimizedTheta.ipynb @@ -127,13 +127,13 @@ "\n", "$$\\hat Y_{n+h|n} = (1-\\frac{1}{\\theta}) [\\text{A}_n+\\text{B}_n (n+h)]+ \\frac{1}{\\theta} \\tilde {\\text{Z}}_{n+h|n} (\\theta) \\tag 3$$\n", "\n", - "where $\\tilde {\\text{Z}}_{n+h|n} (\\theta)=\\tilde {\\text{Z}}_{n+1|n} (\\theta)=\\alpha \\sum_{i=0}^{n-1}(1-\\alpha)^i \\text{Z}_{n-i}(\\theta)+(1-\\alpha)^n \\ell_{0}^{*} $ is the extrapolation of $\\text{Z}_t(\\theta)$ by an SES model with $\\ell_{0}^{*} \\in \\mathbb{R}$ as the initial level parameter and $\\alpha \\in (0,1)$ as the smoothing parameter. Note that for $\\theta=2$ Eq. (3) corresponds to Step 4 of the STheta algorithm. After some algebra, we can write\n", + "where $\\tilde {\\text{Z}}_{n+h|n} (\\theta)=\\tilde {\\text{Z}}_{n+1|n} (\\theta)=\\alpha \\sum_{i=0}^{n-1}(1-\\alpha)^i \\text{Z}_{n-i}(\\theta)+(1-\\alpha)^n \\ell_{0}^{*}$ is the extrapolation of $\\text{Z}_t(\\theta)$ by an SES model with $\\ell_{0}^{*} \\in \\mathbb{R}$ as the initial level parameter and $\\alpha \\in (0,1)$ as the smoothing parameter. Note that for $\\theta=2$ Eq. (3) corresponds to Step 4 of the STheta algorithm. After some algebra, we can write\n", "\n", "$$\\tilde {\\text{Z}}_{n+1|n} (\\theta)=\\theta \\ell{n}+(1-\\theta) \\{ \\text{A}_n [1-(1-\\alpha)^n] + \\text{B}_n [n+(1-\\frac{1}{\\alpha}) [1-(1-\\alpha)^n] ] \\} \\tag 4$$\n", "\n", "where $\\ell_{t}=\\alpha Y_t +(1-\\alpha) \\ell_{t-1} $ for $t=1, \\cdots, n$ and $\\ell_{0}=\\ell_{0}^{*}/\\theta$.\n", "\n", - "In the light of Eqs. (3), (4), we suggest four stochastic approaches. These approaches differ due to the parameter $\\theta$ which may be either fixed at two or optimised, and the coefficients $\\text{A}_n$ and $\\text{B}_n$, which can be either fixed or dynamic functions. To formulate the state space models, it is helpful to adopt $\\mu_{t}$ as the one-step-ahead forecast at origin $t-1$ and $\\varepsilon_{t} $ as the respective additive error, i.e., $\\varepsilon_{t}=Y_t - \\mu_{t} $ if $\\mu_{t}= \\hat Y_{t|t-1} $. We assume $\\{ \\varepsilon_{t} \\} $ to be a Gaussian white noise process with mean zero and variance $\\sigma^2$. " + "In the light of Eqs. (3), (4), we suggest four stochastic approaches. These approaches differ due to the parameter $\\theta$ which may be either fixed at two or optimised, and the coefficients $\\text{A}_n$ and $\\text{B}_n$, which can be either fixed or dynamic functions. To formulate the state space models, it is helpful to adopt $\\mu_{t}$ as the one-step-ahead forecast at origin $t-1$ and $\\varepsilon_{t}$ as the respective additive error, i.e., $\\varepsilon_{t}=Y_t - \\mu_{t}$ if $\\mu_{t}= \\hat Y_{t|t-1}$. We assume $\\{ \\varepsilon_{t} \\}$ to be a Gaussian white noise process with mean zero and variance $\\sigma^2$. " ] }, { @@ -161,7 +161,7 @@ "\n", "For $\\theta=2$ OTM reproduces the forecasts of the STheta method; hereafter, we will refer to this particular case as the standard Theta model (STM). \n", "\n", - "**Theorem 2:** The SES-d $(\\ell_{0}^{**}, \\alpha, b)$ model, where $\\ell_{0}^{**} \\in \\mathbb{R}, \\alpha \\in (0,1) $ and $b \\in \\mathbb{R} $ is equivalent to $\\text{OTM} (\\ell_{0}, \\alpha, \\theta )$ where $\\ell_{0} \\in \\mathbb{R}$ and $\\theta \\geq 1$, if \n", + "**Theorem 2:** The SES-d $(\\ell_{0}^{**}, \\alpha, b)$ model, where $\\ell_{0}^{**} \\in \\mathbb{R}, \\alpha \\in (0,1)$ and $b \\in \\mathbb{R}$ is equivalent to $\\text{OTM} (\\ell_{0}, \\alpha, \\theta )$ where $\\ell_{0} \\in \\mathbb{R}$ and $\\theta \\geq 1$, if \n", "\n", "$$\\ell_{0}^{**} = \\ell_{0} + (1- \\frac{1}{\\theta} )A_n \\ \\ and \\ \\ b=(1-\\frac{1}{\\theta} )B_n $$ \n", "\n", diff --git a/nbs/docs/models/SeasonalExponentialSmoothing.ipynb b/nbs/docs/models/SeasonalExponentialSmoothing.ipynb index dcea25030..2dd9bae47 100644 --- a/nbs/docs/models/SeasonalExponentialSmoothing.ipynb +++ b/nbs/docs/models/SeasonalExponentialSmoothing.ipynb @@ -146,7 +146,9 @@ "source": [ "## Loading libraries and data \n", "\n", - ":::{.callout-tip} Statsforecast will be needed. To install, see [instructions](../getting-started/0_Installation.ipynb). :::\n", + ":::{.callout-tip}\n", + "Statsforecast will be needed. To install, see [instructions](../getting-started/0_Installation.ipynb).\n", + ":::\n", "\n", "Next, we import plotting libraries and configure the plotting style." ] diff --git a/nbs/mint.json b/nbs/mint.json index 9094e67a8..1698063c4 100644 --- a/nbs/mint.json +++ b/nbs/mint.json @@ -62,11 +62,42 @@ "docs/how-to-guides/exogenous.html", "docs/how-to-guides/getting_started_complete_polars.html", "docs/how-to-guides/migrating_R", + "docs/how-to-guides/numba_cache.html", "docs/how-to-guides/prophet_spark_m5.html", "docs/how-to-guides/ray.html", "docs/how-to-guides/spark.html" ] }, + { + "group": "Model References", + "pages": [ + "docs/models/adida.html", + "docs/models/arch.html", + "docs/models/arima.html", + "docs/models/autoarima.html", + "docs/models/autoces.html", + "docs/models/autoets.html", + "docs/models/autoregressive.html", + "docs/models/autotheta.html", + "docs/models/crostonclassic.html", + "docs/models/crostonoptimized.html", + "docs/models/crostonsba.html", + "docs/models/dynamicoptimizedtheta.html", + "docs/models/dynamicstandardtheta.html", + "docs/models/garch.html", + "docs/models/holt.html", + "docs/models/holtwinters.html", + "docs/models/imapa.html", + "docs/models/multipleseasonaltrend.html", + "docs/models/optimizedtheta.html", + "docs/models/seasonalexponentialsmoothing.html", + "docs/models/seasonalexponentialsmoothingoptimized.html", + "docs/models/simpleexponentialoptimized.html", + "docs/models/simpleexponentialsmoothing.html", + "docs/models/standardtheta.html", + "docs/models/tsb.html" + ] + }, { "group": "API Reference", "pages": [ diff --git a/nbs/src/core/distributed.fugue.ipynb b/nbs/src/core/distributed.fugue.ipynb index 0f1a6f892..bc7ea0a38 100644 --- a/nbs/src/core/distributed.fugue.ipynb +++ b/nbs/src/core/distributed.fugue.ipynb @@ -29,7 +29,11 @@ "source": [ "# FugueBackend\n", "\n", - "> The computational efficiency of `StatsForecast` can be tracked to its two core components:
1. Its `models` written in NumBa that optimizes Python code to reach C speeds.
2. Its `core.StatsForecast` class that enables distributed computing.

Here we use [Fugue](https://github.com/fugue-project/fugue) which is a unified interface for `Dask` and `Spark`.

" + "The computational efficiency of `StatsForecast` can be tracked to its two core components:\n", + "1. Its `models` written in NumBa that optimizes Python code to reach C speeds.\n", + "2. Its `core.StatsForecast` class that enables distributed computing.\n", + "\n", + "Here we use [Fugue](https://github.com/fugue-project/fugue) which is a unified interface for `Dask` and `Spark`." ] }, { From 19e974e26bfc79fe1780a9ceba748750af050735 Mon Sep 17 00:00:00 2001 From: Hahnbee Lee <55263191+hahnbeelee@users.noreply.github.com> Date: Tue, 10 Oct 2023 15:43:03 -0700 Subject: [PATCH 47/61] add script for previewing mintlify docs locally --- final-formatting.bash | 0 preview-mintlify-docs.bash | 20 ++++++++++++++++++++ 2 files changed, 20 insertions(+) mode change 100644 => 100755 final-formatting.bash create mode 100644 preview-mintlify-docs.bash diff --git a/final-formatting.bash b/final-formatting.bash old mode 100644 new mode 100755 diff --git a/preview-mintlify-docs.bash b/preview-mintlify-docs.bash new file mode 100644 index 000000000..27aa8468d --- /dev/null +++ b/preview-mintlify-docs.bash @@ -0,0 +1,20 @@ +#!/usr/bin/env bash + +echo "Running nbdev_docs..." +nbdev_docs +echo "nbdev_docs is done" + +echo "Running final-formatting.bash..." +chmod +x final-formatting.bash +./final-formatting.bash +echo "final-formatting.bash is done" + +echo "Moving necessary assets..." +cp nbs/mint.json _docs/mint.json +cp nbs/imgs/logo/dark.png _docs/dark.png +cp nbs/imgs/logo/light.png _docs/light.png +cp nbs/favicon.svg _docs/favicon.svg +echo "Done moving necessary assets" + +cd ./_docs +mintlify dev \ No newline at end of file From 06bd6cdcd3e83aaafc261a9919ecef9305a6d3da Mon Sep 17 00:00:00 2001 From: Hahnbee Lee <55263191+hahnbeelee@users.noreply.github.com> Date: Tue, 10 Oct 2023 15:56:15 -0700 Subject: [PATCH 48/61] copy over contribute folder --- .github/workflows/build-docs.yaml | 7 +++++++ nbs/mint.json | 4 ++-- preview-mintlify-docs.bash | 7 +++++++ 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-docs.yaml b/.github/workflows/build-docs.yaml index 94e8d2a57..dafff2c65 100644 --- a/.github/workflows/build-docs.yaml +++ b/.github/workflows/build-docs.yaml @@ -29,6 +29,13 @@ jobs: cp nbs/imgs/logo/dark.png _docs/dark.png cp nbs/imgs/logo/light.png _docs/light.png cp nbs/favicon.svg _docs/favicon.svg + mkdir _docs/docs/contribute + cp _proc/docs/contribute/contribute.md _docs/docs/contribute/contribute.mdx + cp _proc/docs/contribute/docs.md _docs/docs/contribute/docs.mdx + cp _proc/docs/contribute/issue-labels.md _docs/docs/contribute/issue-labels.mdx + cp _proc/docs/contribute/issues.md _docs/docs/contribute/issues.mdx + cp _proc/docs/contribute/step-by-step.md _docs/docs/contribute/step-by-step.mdx + cp _proc/docs/contribute/techstack.md _docs/docs/contribute/techstack.mdx rm -f _docs/index.html - name: Deploy to Mintlify Docs uses: peaceiris/actions-gh-pages@v3 diff --git a/nbs/mint.json b/nbs/mint.json index 1698063c4..86817bc40 100644 --- a/nbs/mint.json +++ b/nbs/mint.json @@ -103,8 +103,8 @@ "pages": [ "src/core/core.html", "src/core/distributed.fugue.html", - "src/core/models_intro", - "src/core/models.html" + "src/core/models.html", + "src/core/models_intro" ] }, { diff --git a/preview-mintlify-docs.bash b/preview-mintlify-docs.bash index 27aa8468d..fdde934c2 100644 --- a/preview-mintlify-docs.bash +++ b/preview-mintlify-docs.bash @@ -14,6 +14,13 @@ cp nbs/mint.json _docs/mint.json cp nbs/imgs/logo/dark.png _docs/dark.png cp nbs/imgs/logo/light.png _docs/light.png cp nbs/favicon.svg _docs/favicon.svg +mkdir _docs/docs/contribute +cp _proc/docs/contribute/contribute.md _docs/docs/contribute/contribute.mdx +cp _proc/docs/contribute/docs.md _docs/docs/contribute/docs.mdx +cp _proc/docs/contribute/issue-labels.md _docs/docs/contribute/issue-labels.mdx +cp _proc/docs/contribute/issues.md _docs/docs/contribute/issues.mdx +cp _proc/docs/contribute/step-by-step.md _docs/docs/contribute/step-by-step.mdx +cp _proc/docs/contribute/techstack.md _docs/docs/contribute/techstack.mdx echo "Done moving necessary assets" cd ./_docs From c39518df89de5aab8f79a56ef7b50917c5572c61 Mon Sep 17 00:00:00 2001 From: Hahnbee Lee <55263191+hahnbeelee@users.noreply.github.com> Date: Tue, 10 Oct 2023 16:02:50 -0700 Subject: [PATCH 49/61] nbdev_clean --- nbs/docs/models/ARCH.ipynb | 48 +++++++++++++++++++------------------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/nbs/docs/models/ARCH.ipynb b/nbs/docs/models/ARCH.ipynb index ea36d32bb..0cd6018f8 100644 --- a/nbs/docs/models/ARCH.ipynb +++ b/nbs/docs/models/ARCH.ipynb @@ -12891,7 +12891,7 @@ 0.11683902533544767, 0.18038662130227442, 1.1396760668737118, - 0.000008429606751246858, + 8.429606751246858e-06, 0.9301650273653356, 0.16603494698002158, 0.02552244687162859, @@ -13008,7 +13008,7 @@ 0.333507961464413, 1.5341682132027463, 0.535647628131223, - 0.000008047187854454163, + 8.047187854454163e-06, 0.05159803214177818, 0.07600424912094962, 0.05061172231156831, @@ -13148,7 +13148,7 @@ 2.7279986776819762, 2.7160487251081724, 0.21768883267417796, - 0.00000677720693099992, + 6.77720693099992e-06, 2.0892382083596366, 1.5511137261921708, 0.19711705562956672, @@ -13192,7 +13192,7 @@ 0.09514048933694128, 0.005799502263676435, 0.26977917189300543, - 0.000022905689893454364, + 2.2905689893454364e-05, 0.032835101620127545, 0.035071983113154785, 0.02720364389284937, @@ -13284,7 +13284,7 @@ 0.2733247895916533, 0.03816868105362628, 0.05644730956949203, - 0.000017126891073291785, + 1.7126891073291785e-05, 0.17648748135786346, 0.08890408218010715, 0.00021428585381320998, @@ -13295,7 +13295,7 @@ 0.0034536384504556326, 1.0219740565421616, 0.14230208866334162, - 0.0000034607522944888557, + 3.4607522944888557e-06, 0.0008948379096681811, 1.1918442949862227, 0.4224720090152985, @@ -13319,7 +13319,7 @@ 0.379505710351215, 0.04804736114077823, 0.018926161782214495, - 0.00007079826049627675, + 7.079826049627675e-05, 0.2256097560481151, 0.14422736286851592, 0.03029031934041486, @@ -13454,7 +13454,7 @@ 0.016163575341260606, 0.0033884362508481143, 0.16717428315038643, - 0.000014022086968800128, + 1.4022086968800128e-05, 0.010511348063911363, 0.012782595072851783, 0.04677744379099467, @@ -13502,7 +13502,7 @@ 0.5337190473107196, 0.03514066158205324, 0.21841633296069093, - 0.00002799770311426146, + 2.799770311426146e-05, 0.0035743299293066215, 0.2886525495692123, 0.0002361118071194596, @@ -13552,7 +13552,7 @@ 0.09277613223137564, 0.004196366830944074, 0.04937508180038409, - 0.00005208049534825782, + 5.208049534825782e-05, 0.16688400504491227, 0.014510991850446027, 0.13727838266375458, @@ -13695,7 +13695,7 @@ 0.006911690943276298, 0.3278850494791402, 0.7287238222344438, - 0.00003161982797127493, + 3.161982797127493e-05, 1.7903942515655977, 0.033747867911173186, 1.0887262880763404, @@ -13806,7 +13806,7 @@ 0.017032753347700658, 0.10819350754652532, 0.07635754962107597, - 4.720076651680163e-7, + 4.720076651680163e-07, 0.13257647932461017, 0.0015736305321550584, 0.005062602892380193, @@ -13861,7 +13861,7 @@ 0.0003997208956144086, 3.6430248324576744, 4.315374983468133, - 0.00007465081431494341, + 7.465081431494341e-05, 2.3702802404040986, 2.4875933720473613, 4.238751501049985, @@ -13932,14 +13932,14 @@ 0.12884377091778848, 0.45350527664342116, 1.3383250835766, - 0.000003047038069794671, + 3.047038069794671e-06, 0.046155230627765706, 0.04345704527385812, 0.21496506713259997, 0.010971728644473754, 0.3681449089203887, 0.12095591183388035, - 0.000014533571009694057, + 1.4533571009694057e-05, 0.43683167649436533, 0.003961054815055465, 0.002594457624136788, @@ -14042,7 +14042,7 @@ 1.1755067590686328, 1.692552536701068, 0.008292017842472079, - 0.00008837910181512196, + 8.837910181512196e-05, 0.0010388011063882155, 0.52268289783404, 0.08289521198197039, @@ -14050,9 +14050,9 @@ 0.09831904474102832, 0.06665444896152177, 0.0011743773216012492, - 0.000003989948937286202, + 3.989948937286202e-06, 0.23966670389611294, - 0.00009396568391014351, + 9.396568391014351e-05, 0.7083530264126577, 0.379280036868932, 0.05899634912283012, @@ -14110,7 +14110,7 @@ 0.012032641276976222, 0.08457382662710584, 0.73534494099483, - 0.0000526813972937628, + 5.26813972937628e-05, 0.5109083285028833, 0.0011242101166246262, 0.0018688345123409381, @@ -14119,7 +14119,7 @@ 0.0075020470243941095, 0.00038200004553110315, 0.26298092501994424, - 0.000011549731265675906, + 1.1549731265675906e-05, 0.33417910089435754, 0.0867904320408933, 0.7020433764156192, @@ -14594,7 +14594,7 @@ 0.6766417031004891, 0.0030353502921928455, 0.52166759677021, - 0.0000011534388436087901, + 1.1534388436087901e-06, 0.1494000082288102, 0.06768454071199759, 0.11456736834367175, @@ -14945,13 +14945,13 @@ 0.06211911053832683, 0.12810408947533514, 0.009926192984207037, - 0.000017100299484364275, + 1.7100299484364275e-05, 0.17097265655211852, 1.7589894800913939, 0.042823064448460374, 0.10930672666497082, 0.007314017675982816, - 0.00007100057638853501, + 7.100057638853501e-05, 0.3543283102780241, 0.00815750397918031, 0.00725186857060821, @@ -14979,7 +14979,7 @@ 0.5356191175456438, 0.7669523057389738, 1.7027866477021951, - 0.000002756746937148935, + 2.756746937148935e-06, 0.3731529145352457, 0.9711025783145061, 2.1124949696707556, From f9073c1aab3e9f4fc833d1d886dec721d2e1637c Mon Sep 17 00:00:00 2001 From: Hahnbee Lee <55263191+hahnbeelee@users.noreply.github.com> Date: Tue, 10 Oct 2023 16:05:35 -0700 Subject: [PATCH 50/61] move final-formatting to action files --- .github/workflows/build-docs.yaml | 2 +- final-formatting.bash => action_files/final-formatting.bash | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename final-formatting.bash => action_files/final-formatting.bash (100%) diff --git a/.github/workflows/build-docs.yaml b/.github/workflows/build-docs.yaml index dafff2c65..cea36fb8c 100644 --- a/.github/workflows/build-docs.yaml +++ b/.github/workflows/build-docs.yaml @@ -22,7 +22,7 @@ jobs: nbdev_docs - name: Apply final formats shell: bash - run: bash final-formatting.bash + run: bash ./action_files/final-formatting.bash - name: Copy over necessary assets run: | cp nbs/mint.json _docs/mint.json diff --git a/final-formatting.bash b/action_files/final-formatting.bash similarity index 100% rename from final-formatting.bash rename to action_files/final-formatting.bash From 38a21b2f3acf5eb3bbf6427e2e3b82cb00401770 Mon Sep 17 00:00:00 2001 From: Hahnbee Lee <55263191+hahnbeelee@users.noreply.github.com> Date: Tue, 10 Oct 2023 17:19:45 -0700 Subject: [PATCH 51/61] move everything to mintlify folder --- .github/workflows/build-docs.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build-docs.yaml b/.github/workflows/build-docs.yaml index cea36fb8c..8ff0084a6 100644 --- a/.github/workflows/build-docs.yaml +++ b/.github/workflows/build-docs.yaml @@ -37,11 +37,13 @@ jobs: cp _proc/docs/contribute/step-by-step.md _docs/docs/contribute/step-by-step.mdx cp _proc/docs/contribute/techstack.md _docs/docs/contribute/techstack.mdx rm -f _docs/index.html + mkdir mintlify + cp -r ./_docs ./mintlify - name: Deploy to Mintlify Docs uses: peaceiris/actions-gh-pages@v3 with: publish_branch: docs - publish_dir: ./_docs + publish_dir: ./mintlify # The following lines assign commit authorship to the official GH-Actions bot for deploys to `docs` branch. # You can swap them out with your own user credentials. user_name: github-actions[bot] From 82cb7f89bcff297ebcf22097e32fed1979a8e0f3 Mon Sep 17 00:00:00 2001 From: Hahnbee Lee <55263191+hahnbeelee@users.noreply.github.com> Date: Tue, 10 Oct 2023 18:47:50 -0700 Subject: [PATCH 52/61] Update build script --- .github/workflows/build-docs.yaml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build-docs.yaml b/.github/workflows/build-docs.yaml index 8ff0084a6..78b2519ff 100644 --- a/.github/workflows/build-docs.yaml +++ b/.github/workflows/build-docs.yaml @@ -37,13 +37,12 @@ jobs: cp _proc/docs/contribute/step-by-step.md _docs/docs/contribute/step-by-step.mdx cp _proc/docs/contribute/techstack.md _docs/docs/contribute/techstack.mdx rm -f _docs/index.html - mkdir mintlify - cp -r ./_docs ./mintlify - name: Deploy to Mintlify Docs uses: peaceiris/actions-gh-pages@v3 with: + github_token: ${{ secrets.GITHUB_TOKEN }} publish_branch: docs - publish_dir: ./mintlify + publish_dir: ./_docs # The following lines assign commit authorship to the official GH-Actions bot for deploys to `docs` branch. # You can swap them out with your own user credentials. user_name: github-actions[bot] From 6079a19df8f028c6ebfe3765465cd7f949d0d1b3 Mon Sep 17 00:00:00 2001 From: Hahnbee Lee <55263191+hahnbeelee@users.noreply.github.com> Date: Tue, 10 Oct 2023 18:49:34 -0700 Subject: [PATCH 53/61] remove rm -r index.html --- .github/workflows/build-docs.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/build-docs.yaml b/.github/workflows/build-docs.yaml index 78b2519ff..5c1e4eddf 100644 --- a/.github/workflows/build-docs.yaml +++ b/.github/workflows/build-docs.yaml @@ -36,7 +36,6 @@ jobs: cp _proc/docs/contribute/issues.md _docs/docs/contribute/issues.mdx cp _proc/docs/contribute/step-by-step.md _docs/docs/contribute/step-by-step.mdx cp _proc/docs/contribute/techstack.md _docs/docs/contribute/techstack.mdx - rm -f _docs/index.html - name: Deploy to Mintlify Docs uses: peaceiris/actions-gh-pages@v3 with: From 973515268f595487998c0c81f2b5cfb509e702e4 Mon Sep 17 00:00:00 2001 From: Hahnbee Lee <55263191+hahnbeelee@users.noreply.github.com> Date: Tue, 10 Oct 2023 19:54:25 -0700 Subject: [PATCH 54/61] Add md to extension --- .github/workflows/build-docs.yaml | 7 ------- nbs/_extensions/mintlify/_extension.yml | 4 +--- nbs/_extensions/mintlify/plotly.lua | 17 ----------------- 3 files changed, 1 insertion(+), 27 deletions(-) delete mode 100644 nbs/_extensions/mintlify/plotly.lua diff --git a/.github/workflows/build-docs.yaml b/.github/workflows/build-docs.yaml index 5c1e4eddf..d50ea4104 100644 --- a/.github/workflows/build-docs.yaml +++ b/.github/workflows/build-docs.yaml @@ -29,13 +29,6 @@ jobs: cp nbs/imgs/logo/dark.png _docs/dark.png cp nbs/imgs/logo/light.png _docs/light.png cp nbs/favicon.svg _docs/favicon.svg - mkdir _docs/docs/contribute - cp _proc/docs/contribute/contribute.md _docs/docs/contribute/contribute.mdx - cp _proc/docs/contribute/docs.md _docs/docs/contribute/docs.mdx - cp _proc/docs/contribute/issue-labels.md _docs/docs/contribute/issue-labels.mdx - cp _proc/docs/contribute/issues.md _docs/docs/contribute/issues.mdx - cp _proc/docs/contribute/step-by-step.md _docs/docs/contribute/step-by-step.mdx - cp _proc/docs/contribute/techstack.md _docs/docs/contribute/techstack.mdx - name: Deploy to Mintlify Docs uses: peaceiris/actions-gh-pages@v3 with: diff --git a/nbs/_extensions/mintlify/_extension.yml b/nbs/_extensions/mintlify/_extension.yml index b70e3282e..8d00f060f 100644 --- a/nbs/_extensions/mintlify/_extension.yml +++ b/nbs/_extensions/mintlify/_extension.yml @@ -8,6 +8,7 @@ contributes: detect: - ["mint.json"] render: + - "**/*.md" - "**/*.qmd" - "**/*.ipynb" format: mintlify-md @@ -26,8 +27,5 @@ contributes: fig-width: 8 fig-height: 5 html-math-method: webtex - # shortcodes: - # - plotly.lua filters: - mintlify.lua - # - plotly.lua diff --git a/nbs/_extensions/mintlify/plotly.lua b/nbs/_extensions/mintlify/plotly.lua deleted file mode 100644 index ec2f828dc..000000000 --- a/nbs/_extensions/mintlify/plotly.lua +++ /dev/null @@ -1,17 +0,0 @@ --- local scriptCount = 0 --- local printItem = 4 -function script(scriptEl) - -- scriptCount = scriptCount + 1 - -- quarto.log.output('---Script El---') - -- quarto.log.output(scriptCount) - -- if printItem == scriptCount then - -- quarto.utils.dump(scriptEl) - -- end - quarto.log.output('---Script El---') -end - -return { - { - ['application/vnd.plotly.v1+json'] = script - } -} \ No newline at end of file From 4b68115da44a0be03fb9d9e5fa8d67c64cc8dd68 Mon Sep 17 00:00:00 2001 From: Hahnbee Lee <55263191+hahnbeelee@users.noreply.github.com> Date: Tue, 10 Oct 2023 20:00:38 -0700 Subject: [PATCH 55/61] delete reader --- nbs/_extensions/mintlify/_extension.yml | 1 - nbs/_extensions/mintlify/mintlify_reader.lua | 8 -------- 2 files changed, 9 deletions(-) delete mode 100644 nbs/_extensions/mintlify/mintlify_reader.lua diff --git a/nbs/_extensions/mintlify/_extension.yml b/nbs/_extensions/mintlify/_extension.yml index 8d00f060f..663084de9 100644 --- a/nbs/_extensions/mintlify/_extension.yml +++ b/nbs/_extensions/mintlify/_extension.yml @@ -18,7 +18,6 @@ contributes: # Ideally, we would forward the variants to the custom writer. variant: gfm+pipe_tables+tex_math_dollars+raw_html+all_symbols_escapable+backtick_code_blocks+space_in_atx_header+intraword_underscores+lists_without_preceding_blankline+shortcut_reference_links writer: mintlify_writer.lua - # reader: mintlify_reader.lua output-ext: mdx inline-includes: true preserve-yaml: true diff --git a/nbs/_extensions/mintlify/mintlify_reader.lua b/nbs/_extensions/mintlify/mintlify_reader.lua deleted file mode 100644 index 60d496cfe..000000000 --- a/nbs/_extensions/mintlify/mintlify_reader.lua +++ /dev/null @@ -1,8 +0,0 @@ --- function Reader(input) --- return pandoc.Pandoc(input:map( --- function (s) --- -- print(s) --- return pandoc.CodeBlock(s.text) --- end --- )) --- end \ No newline at end of file From e272e576e8bcd2fa2c66476fd9324f18ffcc9a24 Mon Sep 17 00:00:00 2001 From: Hahnbee Lee <55263191+hahnbeelee@users.noreply.github.com> Date: Tue, 10 Oct 2023 21:17:45 -0700 Subject: [PATCH 56/61] undo all mintlify assets --- .github/workflows/build-docs.yaml | 41 -- README.md | 334 +++++++------- action_files/final-formatting.bash | 11 - nbs/_extensions/mintlify/_extension.yml | 30 -- nbs/_extensions/mintlify/mintlify.lua | 71 --- .../mintlify/mintlify_renderers.lua | 3 - nbs/_extensions/mintlify/mintlify_utils.lua | 47 -- nbs/_extensions/mintlify/mintlify_writer.lua | 133 ------ nbs/_quarto.yml | 59 ++- nbs/custom.yml | 22 + nbs/favicon.png | Bin 208747 -> 0 bytes nbs/favicon.svg | 5 - nbs/favicon_png.png | Bin 177981 -> 0 bytes nbs/mint.json | 122 ----- nbs/styles.css | 431 ++++++++++++++++++ preview-mintlify-docs.bash | 27 -- settings.ini | 5 +- 17 files changed, 668 insertions(+), 673 deletions(-) delete mode 100644 .github/workflows/build-docs.yaml delete mode 100755 action_files/final-formatting.bash delete mode 100644 nbs/_extensions/mintlify/_extension.yml delete mode 100644 nbs/_extensions/mintlify/mintlify.lua delete mode 100644 nbs/_extensions/mintlify/mintlify_renderers.lua delete mode 100644 nbs/_extensions/mintlify/mintlify_utils.lua delete mode 100644 nbs/_extensions/mintlify/mintlify_writer.lua create mode 100644 nbs/custom.yml delete mode 100644 nbs/favicon.png delete mode 100644 nbs/favicon.svg delete mode 100644 nbs/favicon_png.png delete mode 100644 nbs/mint.json create mode 100644 nbs/styles.css delete mode 100644 preview-mintlify-docs.bash diff --git a/.github/workflows/build-docs.yaml b/.github/workflows/build-docs.yaml deleted file mode 100644 index d50ea4104..000000000 --- a/.github/workflows/build-docs.yaml +++ /dev/null @@ -1,41 +0,0 @@ -name: "build-docs" -on: - push: - branches: ["main"] - workflow_dispatch: -jobs: - build-docs: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - uses: actions/setup-python@v4 - with: - cache: "pip" - cache-dependency-path: settings.ini - - name: Install Dependencies - shell: bash - run: | - set -ux - python -m pip install --upgrade pip - pip install -Uq nbdev - test -f setup.py && pip install -e ".[dev]" - nbdev_docs - - name: Apply final formats - shell: bash - run: bash ./action_files/final-formatting.bash - - name: Copy over necessary assets - run: | - cp nbs/mint.json _docs/mint.json - cp nbs/imgs/logo/dark.png _docs/dark.png - cp nbs/imgs/logo/light.png _docs/light.png - cp nbs/favicon.svg _docs/favicon.svg - - name: Deploy to Mintlify Docs - uses: peaceiris/actions-gh-pages@v3 - with: - github_token: ${{ secrets.GITHUB_TOKEN }} - publish_branch: docs - publish_dir: ./_docs - # The following lines assign commit authorship to the official GH-Actions bot for deploys to `docs` branch. - # You can swap them out with your own user credentials. - user_name: github-actions[bot] - user_email: 41898282+github-actions[bot]@users.noreply.github.com diff --git a/README.md b/README.md index 72627afbe..96a610ead 100644 --- a/README.md +++ b/README.md @@ -1,46 +1,32 @@ -# Nixtla   [![Tweet](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=Statistical%20Forecasting%20Algorithms%20by%20Nixtla%20&url=https://github.com/Nixtla/statsforecast&via=nixtlainc&hashtags=StatisticalModels,TimeSeries,Forecasting)  [![Slack](https://img.shields.io/badge/Slack-4A154B?&logo=slack&logoColor=white)](https://join.slack.com/t/nixtlacommunity/shared_invite/zt-1pmhan9j5-F54XR20edHk0UtYAPcW4KQ) - -[![All Contributors](https://img.shields.io/badge/all_contributors-32-orange.svg?style=flat-square)](#contributors-) - - -
- -

Statistical ⚑️ Forecast

-

Lightning fast forecasting with statistical and econometric models

- -[![CI](https://github.com/Nixtla/statsforecast/actions/workflows/ci.yaml/badge.svg?branch=main)](https://github.com/Nixtla/statsforecast/actions/workflows/ci.yaml) -[![Python](https://img.shields.io/pypi/pyversions/statsforecast)](https://pypi.org/project/statsforecast/) -[![PyPi](https://img.shields.io/pypi/v/statsforecast?color=blue)](https://pypi.org/project/statsforecast/) -[![conda-nixtla](https://img.shields.io/conda/vn/conda-forge/statsforecast?color=seagreen&label=conda)](https://anaconda.org/conda-forge/statsforecast) -[![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://github.com/Nixtla/statsforecast/blob/main/LICENSE) -[![docs](https://img.shields.io/website-up-down-green-red/http/nixtla.github.io/statsforecast.svg?label=docs)](https://nixtla.github.io/statsforecast/) -[![Downloads](https://pepy.tech/badge/statsforecast)](https://pepy.tech/project/statsforecast) - -**StatsForecast** offers a collection of widely used univariate time series forecasting models, including automatic `ARIMA`, `ETS`, `CES`, and `Theta` modeling optimized for high performance using `numba`. It also includes a large battery of benchmarking models. -
+# StatsForecast ⚑️ + + ## Installation -You can install `StatsForecast` with: +You can install +[`StatsForecast`](https://Nixtla.github.io/statsforecast/src/core/core.html#statsforecast) +with: -```python +``` python pip install statsforecast ``` -or +or -```python +``` python conda install -c conda-forge statsforecast -``` - +``` -Vist our [Installation Guide](https://nixtla.github.io/statsforecast/docs/getting-started/installation.html) for further instructions. +Vist our [Installation +Guide](./docs/getting-started/0_Installation.ipynb) for further +instructions. ## Quick Start **Minimal Example** -```python +``` python from statsforecast import StatsForecast from statsforecast.models import AutoARIMA @@ -53,144 +39,201 @@ sf.fit(df) sf.predict(h=12, level=[95]) ``` -**Get Started with this [quick guide](https://nixtla.github.io/statsforecast/docs/getting-started/getting_started_short.html).** +**Get Started with this [quick +guide](../nbs/docs/getting-started/1_Getting_Started_short.ipynb).** -**Follow this [end-to-end walkthrough](https://nixtla.github.io/statsforecast/docs/getting-started/getting_started_complete.html) for best practices.** +**Follow this [end-to-end +walkthrough](../nbs/docs/getting-started/2_Getting_Started_complete.ipynb) +for best practices.** -## Why? +## Why? -Current Python alternatives for statistical models are slow, inaccurate and don't scale well. So we created a library that can be used to forecast in production environments or as benchmarks. `StatsForecast` includes an extensive battery of models that can efficiently fit millions of time series. +Current Python alternatives for statistical models are slow, inaccurate +and don’t scale well. So we created a library that can be used to +forecast in production environments or as benchmarks. +[`StatsForecast`](https://Nixtla.github.io/statsforecast/src/core/core.html#statsforecast) +includes an extensive battery of models that can efficiently fit +millions of time series. ## Features -* Fastest and most accurate implementations of `AutoARIMA`, `AutoETS`, `AutoCES`, `MSTL` and `Theta` in Python. -* Out-of-the-box compatibility with Spark, Dask, and Ray. -* Probabilistic Forecasting and Confidence Intervals. -* Support for exogenous Variables and static covariates. -* Anomaly Detection. -* Familiar sklearn syntax: `.fit` and `.predict`. +- Fastest and most accurate implementations of + [`AutoARIMA`](https://Nixtla.github.io/statsforecast/src/core/models.html#autoarima), + [`AutoETS`](https://Nixtla.github.io/statsforecast/src/core/models.html#autoets), + [`AutoCES`](https://Nixtla.github.io/statsforecast/src/core/models.html#autoces), + [`MSTL`](https://Nixtla.github.io/statsforecast/src/core/models.html#mstl) + and + [`Theta`](https://Nixtla.github.io/statsforecast/src/core/models.html#theta) + in Python. +- Out-of-the-box compatibility with Spark, Dask, and Ray. +- Probabilistic Forecasting and Confidence Intervals. +- Support for exogenous Variables and static covariates. +- Anomaly Detection. +- Familiar sklearn syntax: `.fit` and `.predict`. ## Highlights -* Inclusion of `exogenous variables` and `prediction intervals` for ARIMA. -* 20x [faster](./experiments/arima/) than `pmdarima`. -* 1.5x faster than `R`. -* 500x faster than `Prophet`. -* 4x [faster](./experiments/ets/) than `statsmodels`. -* Compiled to high performance machine code through [`numba`](https://numba.pydata.org/). -* 1,000,000 series in [30 min](https://github.com/Nixtla/statsforecast/tree/main/experiments/ray) with [ray](https://github.com/ray-project/ray). -* Replace FB-Prophet in two lines of code and gain speed and accuracy. Check the experiments [here](https://github.com/Nixtla/statsforecast/tree/main/experiments/arima_prophet_adapter). -* Fit 10 benchmark models on **1,000,000** series in [under **5 min**](./experiments/benchmarks_at_scale/). - - -Missing something? Please open an issue or write us in [![Slack](https://img.shields.io/badge/Slack-4A154B?&logo=slack&logoColor=white)](https://join.slack.com/t/nixtlaworkspace/shared_invite/zt-135dssye9-fWTzMpv2WBthq8NK0Yvu6A) +- Inclusion of `exogenous variables` and `prediction intervals` for + ARIMA. +- 20x + [faster](https://github.com/Nixtla/statsforecast/tree/main/experiments/arima) + than `pmdarima`. +- 1.5x faster than `R`. +- 500x faster than `Prophet`. +- 4x + [faster](https://github.com/Nixtla/statsforecast/tree/main/experiments/ets) + than `statsmodels`. +- Compiled to high performance machine code through + [`numba`](https://numba.pydata.org/). +- 1,000,000 series in [30 + min](https://github.com/Nixtla/statsforecast/tree/main/experiments/ray) + with [ray](https://github.com/ray-project/ray). +- Replace FB-Prophet in two lines of code and gain speed and accuracy. + Check the experiments + [here](https://github.com/Nixtla/statsforecast/tree/main/experiments/arima_prophet_adapter). +- Fit 10 benchmark models on **1,000,000** series in [under **5 + min**](https://github.com/Nixtla/statsforecast/tree/main/experiments/benchmarks_at_scale). + +Missing something? Please open an issue or write us in +[![Slack](https://img.shields.io/badge/Slack-4A154B?&logo=slack&logoColor=white.png)](https://join.slack.com/t/nixtlaworkspace/shared_invite/zt-135dssye9-fWTzMpv2WBthq8NK0Yvu6A) ## Examples and Guides -πŸ“š [End to End Walkthrough](https://nixtla.github.io/statsforecast/docs/getting-started/getting_started_complete.html): Model training, evaluation and selection for multiple time series - -πŸ”Ž [Anomaly Detection](https://nixtla.github.io/statsforecast/docs/tutorials/anomalydetection.html): detect anomalies for time series using in-sample prediction intervals. +πŸ“š [End to End +Walkthrough](https://nixtla.github.io/statsforecast/docs/getting-started/getting_started_complete.html): +Model training, evaluation and selection for multiple time series -πŸ‘©β€πŸ”¬ [Cross Validation](https://nixtla.github.io/statsforecast/docs/tutorials/crossvalidation.html): robust model’s performance evaluation. +πŸ”Ž [Anomaly +Detection](https://nixtla.github.io/statsforecast/docs/tutorials/anomalydetection.html): +detect anomalies for time series using in-sample prediction intervals. -❄️ [Multiple Seasonalities](https://nixtla.github.io/statsforecast/docs/tutorials/multipleseasonalities.html): how to forecast data with multiple seasonalities using an MSTL. +πŸ‘©β€πŸ”¬ [Cross +Validation](https://nixtla.github.io/statsforecast/docs/tutorials/crossvalidation.html): +robust model’s performance evaluation. -πŸ”Œ [Predict Demand Peaks](https://nixtla.github.io/statsforecast/docs/tutorials/electricitypeakforecasting.html): electricity load forecasting for detecting daily peaks and reducing electric bills. +❄️ [Multiple +Seasonalities](https://nixtla.github.io/statsforecast/docs/tutorials/multipleseasonalities.html): +how to forecast data with multiple seasonalities using an MSTL. -πŸ“ˆ [Intermittent Demand](https://nixtla.github.io/statsforecast/docs/tutorials/intermittentdata.html): forecast series with very few non-zero observations. +πŸ”Œ [Predict Demand +Peaks](https://nixtla.github.io/statsforecast/docs/tutorials/electricitypeakforecasting.html): +electricity load forecasting for detecting daily peaks and reducing +electric bills. -🌑️ [Exogenous Regressors](https://nixtla.github.io/statsforecast/docs/how-to-guides/exogenous.html): like weather or prices +πŸ“ˆ [Intermittent +Demand](https://nixtla.github.io/statsforecast/docs/tutorials/intermittentdata.html): +forecast series with very few non-zero observations. +🌑️ [Exogenous +Regressors](https://nixtla.github.io/statsforecast/docs/how-to-guides/exogenous.html): +like weather or prices ## Models ### Automatic Forecasting -Automatic forecasting tools search for the best parameters and select the best possible model for a group of time series. These tools are useful for large collections of univariate time series. -|Model | Point Forecast | Probabilistic Forecast | Insample fitted values | Probabilistic fitted values | -|:------|:-------------:|:----------------------:|:---------------------:|:----------------------------:| -|[AutoARIMA](https://nixtla.github.io/statsforecast/src/core/models.html#autoarima)|βœ…|βœ…|βœ…|βœ…|βœ…| -|[AutoETS](https://nixtla.github.io/statsforecast/src/core/models.html#autoets)|βœ…|βœ…|βœ…|βœ…|βœ…| -|[AutoCES](https://nixtla.github.io/statsforecast/src/core/models.html#autoces)|βœ…|βœ…|βœ…|βœ…|βœ…| -|[AutoTheta](https://nixtla.github.io/statsforecast/src/core/models.html#autotheta)|βœ…|βœ…|βœ…|βœ…|βœ…| +Automatic forecasting tools search for the best parameters and select +the best possible model for a group of time series. These tools are +useful for large collections of univariate time series. + +| Model | Point Forecast | Probabilistic Forecast | Insample fitted values | Probabilistic fitted values | +|:-----------------------------------------------------------------------------------|:--------------:|:----------------------:|:----------------------:|:---------------------------:| +| [AutoARIMA](https://nixtla.github.io/statsforecast/src/core/models.html#autoarima) | βœ… | βœ… | βœ… | βœ… | +| [AutoETS](https://nixtla.github.io/statsforecast/src/core/models.html#autoets) | βœ… | βœ… | βœ… | βœ… | +| [AutoCES](https://nixtla.github.io/statsforecast/src/core/models.html#autoces) | βœ… | βœ… | βœ… | βœ… | +| [AutoTheta](https://nixtla.github.io/statsforecast/src/core/models.html#autotheta) | βœ… | βœ… | βœ… | βœ… | ## ARIMA Family + These models exploit the existing autocorrelations in the time series. -|Model | Point Forecast | Probabilistic Forecast | Insample fitted values | Probabilistic fitted values | -|:------|:-------------:|:----------------------:|:---------------------:|:----------------------------:| -|[ARIMA](https://nixtla.github.io/statsforecast/src/core/models.html#arima)|βœ…|βœ…|βœ…|βœ…|βœ…| -|[AutoRegressive](https://nixtla.github.io/statsforecast/src/core/models.html#autoregressive)|βœ…|βœ…|βœ…|βœ…|βœ…| +| Model | Point Forecast | Probabilistic Forecast | Insample fitted values | Probabilistic fitted values | +|:---------------------------------------------------------------------------------------------|:--------------:|:----------------------:|:----------------------:|:---------------------------:| +| [ARIMA](https://nixtla.github.io/statsforecast/src/core/models.html#arima) | βœ… | βœ… | βœ… | βœ… | +| [AutoRegressive](https://nixtla.github.io/statsforecast/src/core/models.html#autoregressive) | βœ… | βœ… | βœ… | βœ… | ### Theta Family -Fit two theta lines to a deseasonalized time series, using different techniques to obtain and combine the two theta lines to produce the final forecasts. -|Model | Point Forecast | Probabilistic Forecast | Insample fitted values | Probabilistic fitted values | -|:------|:-------------:|:----------------------:|:---------------------:|:----------------------------:| -|[Theta](https://nixtla.github.io/statsforecast/src/core/models.html#theta)|βœ…|βœ…|βœ…|βœ…|βœ…| -|[OptimizedTheta](https://nixtla.github.io/statsforecast/src/core/models.html#optimizedtheta)|βœ…|βœ…|βœ…|βœ…|βœ…| -|[DynamicTheta](https://nixtla.github.io/statsforecast/src/core/models.html#dynamictheta)|βœ…|βœ…|βœ…|βœ…|βœ…| -|[DynamicOptimizedTheta](https://nixtla.github.io/statsforecast/src/core/models.html#dynamicoptimizedtheta)|βœ…|βœ…|βœ…|βœ…|βœ…| +Fit two theta lines to a deseasonalized time series, using different +techniques to obtain and combine the two theta lines to produce the +final forecasts. + +| Model | Point Forecast | Probabilistic Forecast | Insample fitted values | Probabilistic fitted values | +|:-----------------------------------------------------------------------------------------------------------|:--------------:|:----------------------:|:----------------------:|:---------------------------:| +| [Theta](https://nixtla.github.io/statsforecast/src/core/models.html#theta) | βœ… | βœ… | βœ… | βœ… | +| [OptimizedTheta](https://nixtla.github.io/statsforecast/src/core/models.html#optimizedtheta) | βœ… | βœ… | βœ… | βœ… | +| [DynamicTheta](https://nixtla.github.io/statsforecast/src/core/models.html#dynamictheta) | βœ… | βœ… | βœ… | βœ… | +| [DynamicOptimizedTheta](https://nixtla.github.io/statsforecast/src/core/models.html#dynamicoptimizedtheta) | βœ… | βœ… | βœ… | βœ… | ### Multiple Seasonalities -Suited for signals with more than one clear seasonality. Useful for low-frequency data like electricity and logs. -|Model | Point Forecast | Probabilistic Forecast | Insample fitted values | Probabilistic fitted values | -|:------|:-------------:|:----------------------:|:---------------------:|:----------------------------:| -|[MSTL](https://nixtla.github.io/statsforecast/src/core/models.html#mstl)|βœ…|βœ…|βœ…|βœ…|βœ…| +Suited for signals with more than one clear seasonality. Useful for +low-frequency data like electricity and logs. -### GARCH and ARCH Models -Suited for modeling time series that exhibit non-constant volatility over time. The ARCH model is a particular case of GARCH. +| Model | Point Forecast | Probabilistic Forecast | Insample fitted values | Probabilistic fitted values | +|:-------------------------------------------------------------------------|:--------------:|:----------------------:|:----------------------:|:---------------------------:| +| [MSTL](https://nixtla.github.io/statsforecast/src/core/models.html#mstl) | βœ… | βœ… | βœ… | βœ… | -|Model | Point Forecast | Probabilistic Forecast | Insample fitted values | Probabilistic fitted values | -|:------|:-------------:|:----------------------:|:---------------------:|:----------------------------:| -|[GARCH](https://nixtla.github.io/statsforecast/src/core/models.html#garch)|βœ…|βœ…|βœ…|βœ…|βœ…| -|[ARCH](https://nixtla.github.io/statsforecast/src/core/models.html#arch)|βœ…|βœ…|βœ…|βœ…|βœ…| +### GARCH and ARCH Models +Suited for modeling time series that exhibit non-constant volatility +over time. The ARCH model is a particular case of GARCH. + +| Model | Point Forecast | Probabilistic Forecast | Insample fitted values | Probabilistic fitted values | +|:---------------------------------------------------------------------------|:--------------:|:----------------------:|:----------------------:|:---------------------------:| +| [GARCH](https://nixtla.github.io/statsforecast/src/core/models.html#garch) | βœ… | βœ… | βœ… | βœ… | +| [ARCH](https://nixtla.github.io/statsforecast/src/core/models.html#arch) | βœ… | βœ… | βœ… | βœ… | ### Baseline Models + Classical models for establishing baseline. -|Model | Point Forecast | Probabilistic Forecast | Insample fitted values | Probabilistic fitted values | -|:------|:-------------:|:----------------------:|:---------------------:|:----------------------------:| -|[HistoricAverage](https://nixtla.github.io/statsforecast/src/core/models.html#historicaverage)|βœ…|βœ…|βœ…|βœ…|βœ…| -|[Naive](https://nixtla.github.io/statsforecast/src/core/models.html#naive)|βœ…|βœ…|βœ…|βœ…|βœ…| -|[RandomWalkWithDrift](https://nixtla.github.io/statsforecast/src/core/models.html#randomwalkwithdrift)|βœ…|βœ…|βœ…|βœ…|βœ…| -|[SeasonalNaive](https://nixtla.github.io/statsforecast/src/core/models.html#seasonalnaive)|βœ…|βœ…|βœ…|βœ…|βœ…| -|[WindowAverage](https://nixtla.github.io/statsforecast/src/core/models.html#windowaverage)|βœ…||||| -|[SeasonalWindowAverage](https://nixtla.github.io/statsforecast/src/core/models.html#seasonalwindowaverage)|βœ…||||| +| Model | Point Forecast | Probabilistic Forecast | Insample fitted values | Probabilistic fitted values | +|:-----------------------------------------------------------------------------------------------------------|:--------------:|:----------------------:|:----------------------:|:---------------------------:| +| [HistoricAverage](https://nixtla.github.io/statsforecast/src/core/models.html#historicaverage) | βœ… | βœ… | βœ… | βœ… | +| [Naive](https://nixtla.github.io/statsforecast/src/core/models.html#naive) | βœ… | βœ… | βœ… | βœ… | +| [RandomWalkWithDrift](https://nixtla.github.io/statsforecast/src/core/models.html#randomwalkwithdrift) | βœ… | βœ… | βœ… | βœ… | +| [SeasonalNaive](https://nixtla.github.io/statsforecast/src/core/models.html#seasonalnaive) | βœ… | βœ… | βœ… | βœ… | +| [WindowAverage](https://nixtla.github.io/statsforecast/src/core/models.html#windowaverage) | βœ… | | | | +| [SeasonalWindowAverage](https://nixtla.github.io/statsforecast/src/core/models.html#seasonalwindowaverage) | βœ… | | | | ### Exponential Smoothing -Uses a weighted average of all past observations where the weights decrease exponentially into the past. Suitable for data with clear trend and/or seasonality. Use the `SimpleExponential` family for data with no clear trend or seasonality. -|Model | Point Forecast | Probabilistic Forecast | Insample fitted values | Probabilistic fitted values | -|:------|:-------------:|:----------------------:|:---------------------:|:----------------------------:| -|[SimpleExponentialSmoothing](https://nixtla.github.io/statsforecast/src/core/models.html#simpleexponentialsmoothing)|βœ…||||| -|[SimpleExponentialSmoothingOptimized](https://nixtla.github.io/statsforecast/src/core/models.html#simpleexponentialsmoothingoptimized)|βœ…||||| -|[SeasonalExponentialSmoothing](https://nixtla.github.io/statsforecast/src/core/models.html#seasonalexponentialsmoothing)|βœ…||||| -|[SeasonalExponentialSmoothingOptimized](https://nixtla.github.io/statsforecast/src/core/models.html#seasonalexponentialsmoothingoptimized)|βœ…||||| -|[Holt](https://nixtla.github.io/statsforecast/src/core/models.html#holt)|βœ…|βœ…|βœ…|βœ…|βœ…| -|[HoltWinters](https://nixtla.github.io/statsforecast/src/core/models.html#holtwinters)|βœ…|βœ…|βœ…|βœ…|βœ…| +Uses a weighted average of all past observations where the weights +decrease exponentially into the past. Suitable for data with clear trend +and/or seasonality. Use the `SimpleExponential` family for data with no +clear trend or seasonality. +| Model | Point Forecast | Probabilistic Forecast | Insample fitted values | Probabilistic fitted values | +|:-------------------------------------------------------------------------------------------------------------------------------------------|:--------------:|:----------------------:|:----------------------:|:---------------------------:| +| [SimpleExponentialSmoothing](https://nixtla.github.io/statsforecast/src/core/models.html#simpleexponentialsmoothing) | βœ… | | | | +| [SimpleExponentialSmoothingOptimized](https://nixtla.github.io/statsforecast/src/core/models.html#simpleexponentialsmoothingoptimized) | βœ… | | | | +| [SeasonalExponentialSmoothing](https://nixtla.github.io/statsforecast/src/core/models.html#seasonalexponentialsmoothing) | βœ… | | | | +| [SeasonalExponentialSmoothingOptimized](https://nixtla.github.io/statsforecast/src/core/models.html#seasonalexponentialsmoothingoptimized) | βœ… | | | | +| [Holt](https://nixtla.github.io/statsforecast/src/core/models.html#holt) | βœ… | βœ… | βœ… | βœ… | +| [HoltWinters](https://nixtla.github.io/statsforecast/src/core/models.html#holtwinters) | βœ… | βœ… | βœ… | βœ… | + +### Sparse or Inttermitent -### Sparse or Intermittent Suited for series with very few non-zero observations -|Model | Point Forecast | Probabilistic Forecast | Insample fitted values | Probabilistic fitted values | -|:------|:-------------:|:----------------------:|:---------------------:|:----------------------------:| -|[ADIDA](https://nixtla.github.io/statsforecast/src/core/models.html#adida)|βœ…||||| -|[CrostonClassic](https://nixtla.github.io/statsforecast/src/core/models.html#crostonclassic)|βœ…||||| -|[CrostonOptimized](https://nixtla.github.io/statsforecast/src/core/models.html#crostonoptimized)|βœ…||||| -|[CrostonSBA](https://nixtla.github.io/statsforecast/src/core/models.html#crostonsba)|βœ…||||| -|[IMAPA](https://nixtla.github.io/statsforecast/src/core/models.html#imapa)|βœ…||||| -|[TSB](https://nixtla.github.io/statsforecast/src/core/models.html#tsb)|βœ…||||| +| Model | Point Forecast | Probabilistic Forecast | Insample fitted values | Probabilistic fitted values | +|:-------------------------------------------------------------------------------------------------|:--------------:|:----------------------:|:----------------------:|:---------------------------:| +| [ADIDA](https://nixtla.github.io/statsforecast/src/core/models.html#adida) | βœ… | | | | +| [CrostonClassic](https://nixtla.github.io/statsforecast/src/core/models.html#crostonclassic) | βœ… | | | | +| [CrostonOptimized](https://nixtla.github.io/statsforecast/src/core/models.html#crostonoptimized) | βœ… | | | | +| [CrostonSBA](https://nixtla.github.io/statsforecast/src/core/models.html#crostonsba) | βœ… | | | | +| [IMAPA](https://nixtla.github.io/statsforecast/src/core/models.html#imapa) | βœ… | | | | +| [TSB](https://nixtla.github.io/statsforecast/src/core/models.html#tsb) | βœ… | | | | + +## How to contribute -## πŸ”¨ How to contribute -See [CONTRIBUTING.md](https://github.com/Nixtla/statsforecast/blob/main/CONTRIBUTING.md). +See +[CONTRIBUTING.md](https://github.com/Nixtla/statsforecast/blob/main/CONTRIBUTING.md). ## Citing -```bibtex +``` bibtex @misc{garza2022statsforecast, author={Federico Garza, Max Mergenthaler Canseco, Cristian ChallΓΊ, Kin G. Olivares}, title = {{StatsForecast}: Lightning fast forecasting with statistical and econometric models}, @@ -199,64 +242,3 @@ See [CONTRIBUTING.md](https://github.com/Nixtla/statsforecast/blob/main/CONTRIBU url={https://github.com/Nixtla/statsforecast} } ``` - -## Contributors ✨ - -Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)): - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
fede
fede

πŸ’» 🚧
JosΓ© Morales
JosΓ© Morales

πŸ’» 🚧
Sugato Ray
Sugato Ray

πŸ’»
Jeff Tackes
Jeff Tackes

πŸ›
darinkist
darinkist

πŸ€”
Alec Helyar
Alec Helyar

πŸ’¬
Dave Hirschfeld
Dave Hirschfeld

πŸ’¬
mergenthaler
mergenthaler

πŸ’»
Kin
Kin

πŸ’»
Yasslight90
Yasslight90

πŸ€”
asinig
asinig

πŸ€”
Philip Gillißen
Philip Gillißen

πŸ’»
Sebastian Hagn
Sebastian Hagn

πŸ› πŸ“–
Han Wang
Han Wang

πŸ’»
Ben Jeffrey
Ben Jeffrey

πŸ›
Beliavsky
Beliavsky

πŸ“–
Mariana Menchero GarcΓ­a
Mariana Menchero GarcΓ­a

πŸ’»
Nikhil Gupta
Nikhil Gupta

πŸ›
JD
JD

πŸ›
josh attenberg
josh attenberg

πŸ’»
JeroenPeterBos
JeroenPeterBos

πŸ’»
Jeroen Van Der Donckt
Jeroen Van Der Donckt

πŸ’»
Roymprog
Roymprog

πŸ“–
Nelson CΓ‘rdenas BolaΓ±o
Nelson CΓ‘rdenas BolaΓ±o

πŸ“–
Kyle Schmaus
Kyle Schmaus

πŸ’»
Akmal Soliev
Akmal Soliev

πŸ’»
Nick To
Nick To

πŸ’»
Kevin Kho
Kevin Kho

πŸ’»
Yiben Huang
Yiben Huang

πŸ“–
Andrew Gross
Andrew Gross

πŸ“–
taniishkaaa
taniishkaaa

πŸ“–
Manuel Calzolari
Manuel Calzolari

πŸ’»
- - - - - - -This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome! diff --git a/action_files/final-formatting.bash b/action_files/final-formatting.bash deleted file mode 100755 index 451850326..000000000 --- a/action_files/final-formatting.bash +++ /dev/null @@ -1,11 +0,0 @@ -#!/usr/bin/env bash - -for file in $(find _docs -type f -name "*mdx"); do - if [[ "$OSTYPE" == "darwin"* ]]; then - sed -i '' -e 's/style="float:right; font-size:smaller"/style={{ float: "right", fontSize: "smaller" }}/g' $file - sed -i '' -e 's/
//g' $file - else - sed -i -e 's/style="float:right; font-size:smaller"/style={{ float: "right", fontSize: "smaller" }}/g' $file - sed -i -e 's/
//g' $file - fi -done \ No newline at end of file diff --git a/nbs/_extensions/mintlify/_extension.yml b/nbs/_extensions/mintlify/_extension.yml deleted file mode 100644 index 663084de9..000000000 --- a/nbs/_extensions/mintlify/_extension.yml +++ /dev/null @@ -1,30 +0,0 @@ -title: Mintlify -author: Mintlify, Inc -organization: Mintlify -contributes: - project: - project: - type: default - detect: - - ["mint.json"] - render: - - "**/*.md" - - "**/*.qmd" - - "**/*.ipynb" - format: mintlify-md - formats: - md: - # Although we use a custom writer, we still need the variants here the lua filters to render correctly. - # Ideally, we would forward the variants to the custom writer. - variant: gfm+pipe_tables+tex_math_dollars+raw_html+all_symbols_escapable+backtick_code_blocks+space_in_atx_header+intraword_underscores+lists_without_preceding_blankline+shortcut_reference_links - writer: mintlify_writer.lua - output-ext: mdx - inline-includes: true - preserve-yaml: true - wrap: none - fig-format: retina - fig-width: 8 - fig-height: 5 - html-math-method: webtex - filters: - - mintlify.lua diff --git a/nbs/_extensions/mintlify/mintlify.lua b/nbs/_extensions/mintlify/mintlify.lua deleted file mode 100644 index a1e464013..000000000 --- a/nbs/_extensions/mintlify/mintlify.lua +++ /dev/null @@ -1,71 +0,0 @@ --- mintlify.lua - -local kQuartoRawHtml = "quartoRawHtml" -local rawHtmlVars = pandoc.List() - -function Pandoc(doc) - -- insert exports at the top if we have them - if #rawHtmlVars > 0 then - local exports = ("export const %s =\n[%s];"):format(kQuartoRawHtml, - table.concat( - rawHtmlVars:map(function(var) return '`'.. var .. '`' end), - "," - ) - ) - doc.blocks:insert(1, pandoc.RawBlock("markdown", exports .. "\n")) - end - - return doc -end - - --- strip image attributes (which may result from --- fig-format: retina) as they will result in an --- img tag which won't hit the asset pipeline -function Image(el) - el.attr = pandoc.Attr() - return el -end - --- header attributes only support id -function Header(el) - el.attr = pandoc.Attr(el.identifier) - return el -end - -Block = function(node) - if node.text ~= nil and string.find(node.text, "") - :format(kQuartoRawHtml, #rawHtmlVars-1) .. "\n" - return pandoc.RawBlock("html", html) - end -end diff --git a/nbs/_extensions/mintlify/mintlify_renderers.lua b/nbs/_extensions/mintlify/mintlify_renderers.lua deleted file mode 100644 index 2597fbbf1..000000000 --- a/nbs/_extensions/mintlify/mintlify_renderers.lua +++ /dev/null @@ -1,3 +0,0 @@ -local codeBlock = require('mintlify_utils').codeBlock - -return {} -- return an empty table as a hack to pretend we're a shortcode handler for now diff --git a/nbs/_extensions/mintlify/mintlify_utils.lua b/nbs/_extensions/mintlify/mintlify_utils.lua deleted file mode 100644 index 42e8776c7..000000000 --- a/nbs/_extensions/mintlify/mintlify_utils.lua +++ /dev/null @@ -1,47 +0,0 @@ --- local scriptCount = 0 --- local printItem = 5 - -function codeBlock(el, filename) - local lang = el.attr.classes[1] - -- scriptCount = scriptCount + 1 - -- if printItem == scriptCount then - -- quarto.utils.dump(el) - -- end - -- quarto.log.output('---Code block---') - -- quarto.utils.dump(el.output) - -- quarto.utils.dump({}) - -- quarto.log.output('------') - local title = filename or el.attr.attributes["filename"] or el.attr.attributes["title"] - local showLineNumbers = el.attr.classes:includes('number-lines') - if lang or title or showLineNumbers then - if not lang then - lang = 'text' - end - local code = "\n```" .. lang - if showLineNumbers then - code = code .. " showLineNumbers" - end - if title then - code = code .. " title=\"" .. title .. "\"" - end - code = code .. "\n" .. el.text .. "\n```\n" - - -- quarto.log.output('------') - -- quarto.log.output(code) - -- quarto.log.output('------') - -- docusaures code block attributes don't conform to any syntax - -- that pandoc natively understands, so return the CodeBlock as - -- "raw" markdown (so it bypasses pandoc processing entirely) - return pandoc.RawBlock("markdown", code) - - elseif #el.attr.classes == 0 then - el.attr.classes:insert('text') - return el - end - - return nil -end - -return { - codeBlock = codeBlock -} \ No newline at end of file diff --git a/nbs/_extensions/mintlify/mintlify_writer.lua b/nbs/_extensions/mintlify/mintlify_writer.lua deleted file mode 100644 index 9fa2d7110..000000000 --- a/nbs/_extensions/mintlify/mintlify_writer.lua +++ /dev/null @@ -1,133 +0,0 @@ -local codeBlock = require('mintlify_utils').codeBlock - -local reactPreamble = pandoc.List() - -function capitalizeFirstLetter(str) - return (str:gsub("^%l", string.upper)) -end - -function castToMintlifyCallout(str) - if str == "caution" or str == "danger" then - return "Warning" - else - return capitalizeFirstLetter(str) - end -end - -local function addPreamble(preamble) - if not reactPreamble:includes(preamble) then - reactPreamble:insert(preamble) - end -end - -local function jsx(content) - return pandoc.RawBlock("markdown", content) -end - -local function tabset(node, filter) - -- note groupId - local groupId = "" - local group = node.attr.attributes["group"] - if group then - groupId = ([[ groupId="%s"]]):format(group) - end - - -- create tabs - local tabs = pandoc.Div({}) - tabs.content:insert(jsx("")) - - -- iterate through content - for i = 1, #node.tabs do - local content = node.tabs[i].content - local title = node.tabs[i].title - - tabs.content:insert(jsx(([[]]):format(pandoc.utils.stringify(title)))) - local result = quarto._quarto.ast.walk(content, filter) - if type(result) == "table" then - tabs.content:extend(result) - else - tabs.content:insert(result) - end - tabs.content:insert(jsx("")) - end - - -- end tab and tabset - tabs.content:insert(jsx("")) - - -- ensure we have required deps - addPreamble("import Tabs from '@theme/Tabs';") - addPreamble("import TabItem from '@theme/TabItem';") - - return tabs -end - -function Writer(doc, opts) - local filter - filter = { - CodeBlock = codeBlock, - - DecoratedCodeBlock = function(node) - local el = node.code_block - return codeBlock(el, node.filename) - end, - - Tabset = function(node) - return tabset(node, filter) - end, - - RawBlock = function (rawBlock) - -- We just "pass-through" raw blocks of type "confluence" - if(rawBlock.format == 'plotly') then - quarto.utils.dump("Plotly in filter") - return pandoc.RawBlock('html', rawBlock.text) - end - - -- Raw blocks inclding arbirtary HTML like JavaScript are not supported in CSF - return "" - end, - - Callout = function(node) - local admonition = pandoc.Div({}) - local mintlifyCallout = castToMintlifyCallout(node.type) - admonition.content:insert(jsx("<" .. mintlifyCallout .. ">")) - if node.title then - admonition.content:insert(pandoc.Header(3, node.title)) - end - local content = node.content - if type(content) == "table" then - admonition.content:extend(content) - else - admonition.content:insert(content) - end - admonition.content:insert(jsx("")) - return admonition - end - } - - doc = quarto._quarto.ast.walk(doc, filter) - - -- insert react preamble if we have it - if #reactPreamble > 0 then - local preamble = table.concat(reactPreamble, "\n") - doc.blocks:insert(1, pandoc.RawBlock("markdown", preamble .. "\n")) - end - - local extensions = { - yaml_metadata_block = true, - pipe_tables = true, - footnotes = true, - tex_math_dollars = true, - raw_html = true, - all_symbols_escapable = true, - backtick_code_blocks = true, - space_in_atx_header = true, - intraword_underscores = true, - lists_without_preceding_blankline = true, - shortcut_reference_links = true, - } - - return pandoc.write(doc, { - format = 'markdown_strict', - extensions = extensions - }, opts) -end diff --git a/nbs/_quarto.yml b/nbs/_quarto.yml index 37fb3652a..60097036f 100644 --- a/nbs/_quarto.yml +++ b/nbs/_quarto.yml @@ -1,8 +1,59 @@ project: - type: mintlify + type: website format: - mintlify-md: - code-fold: true + html: + theme: cosmo + fontsize: 1em + linestretch: 1.7 + css: styles.css + toc: true -metadata-files: [nbdev.yml] +website: + twitter-card: + image: "https://farm6.staticflickr.com/5510/14338202952_93595258ff_z.jpg" + site: "@Nixtlainc" + open-graph: + image: "https://github.com/Nixtla/styles/blob/2abf51612584169874c90cd7c4d347e3917eaf73/images/Banner%20Github.png" + google-analytics: "G-NXJNCVR18L" + repo-actions: [issue] + favicon: favicon_png.png + navbar: + background: primary + search: true + collapse-below: lg + left: + - text: "Get Started" + href: docs/getting-started/getting_started_short.html + - text: "NixtlaVerse" + menu: + - text: "StatsForecast ⚑️" + href: https://github.com/nixtla/statsforecast + - text: "MLForecast πŸ€–" + href: https://github.com/nixtla/mlforecast + - text: "NeuralForecast 🧠" + href: https://github.com/nixtla/neuralforecast + - text: "HierarchicalForecast πŸ‘‘" + href: https://github.com/nixtla/hierarchicalforecast + + - text: "Help" + menu: + - text: "Report an Issue" + icon: bug + href: https://github.com/nixtla/statsforecast/issues/new/choose + - text: "Join our Slack" + icon: chat-right-text + href: https://join.slack.com/t/nixtlaworkspace/shared_invite/zt-135dssye9-fWTzMpv2WBthq8NK0Yvu6A + right: + - icon: github + href: "https://github.com/nixtla/statsforecast" + - icon: twitter + href: https://twitter.com/nixtlainc + aria-label: Nixtla Twitter + + sidebar: + style: floating + body-footer: | + Give us a ⭐ on [Github](https://github.com/nixtla/statsforecast) + +metadata-files: [nbdev.yml, sidebar.yml] diff --git a/nbs/custom.yml b/nbs/custom.yml new file mode 100644 index 000000000..1b2c854c2 --- /dev/null +++ b/nbs/custom.yml @@ -0,0 +1,22 @@ +website: + logo: https://github.com/Nixtla/styles/blob/b9ea432cfa2dae20fc84d8634cae6db902f9ca3f/images/Nixtla_Blanco.png + reader-mode: false + navbar: + collapse-below: lg + left: + - text: "Get Started" + href: examples/Getting_Started_with_Auto_Arima_and_ETS.ipynb + - text: "Experiments" + href: https://github.com/Nixtla/statsforecast/tree/main/experiments + - text: "Help" + menu: + - text: "Report an Issue" + icon: bug + href: https://github.com/nixtla/statsforecast/issues + - text: "Slack Nixtla" + icon: chat-right-text + href: https://join.slack.com/t/nixtlaworkspace/shared_invite/zt-135dssye9-fWTzMpv2WBthq8NK0Yvu6A + right: + - icon: twitter + href: https://twitter.com/nixtlainc + aria-label: Nixtla Twitter diff --git a/nbs/favicon.png b/nbs/favicon.png deleted file mode 100644 index 9fb85089d6ed81fee60833b5637849f4345291ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 208747 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

m4#s3|{9}y)d?bpJ#Cb<^`NhRd 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 diff --git a/nbs/favicon.svg b/nbs/favicon.svg deleted file mode 100644 index e5f333428..000000000 --- a/nbs/favicon.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/nbs/favicon_png.png b/nbs/favicon_png.png deleted file mode 100644 index 7c7684de22282513d154d0f8fb2a7c09e8bafa69..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 177981 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

    &ebAyq^DUK7 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
    + +

    Statistical ⚑️ Forecast

    +

    Lightning fast forecasting with statistical and econometric models

    + +[![CI](https://github.com/Nixtla/statsforecast/actions/workflows/ci.yaml/badge.svg?branch=main)](https://github.com/Nixtla/statsforecast/actions/workflows/ci.yaml) +[![Python](https://img.shields.io/pypi/pyversions/statsforecast)](https://pypi.org/project/statsforecast/) +[![PyPi](https://img.shields.io/pypi/v/statsforecast?color=blue)](https://pypi.org/project/statsforecast/) +[![conda-nixtla](https://img.shields.io/conda/vn/conda-forge/statsforecast?color=seagreen&label=conda)](https://anaconda.org/conda-forge/statsforecast) +[![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://github.com/Nixtla/statsforecast/blob/main/LICENSE) +[![docs](https://img.shields.io/website-up-down-green-red/http/nixtla.github.io/statsforecast.svg?label=docs)](https://nixtla.github.io/statsforecast/) +[![Downloads](https://pepy.tech/badge/statsforecast)](https://pepy.tech/project/statsforecast) + +**StatsForecast** offers a collection of widely used univariate time series forecasting models, including automatic `ARIMA`, `ETS`, `CES`, and `Theta` modeling optimized for high performance using `numba`. It also includes a large battery of benchmarking models. +
    ## Installation -You can install -[`StatsForecast`](https://Nixtla.github.io/statsforecast/src/core/core.html#statsforecast) -with: +You can install `StatsForecast` with: -``` python +```python pip install statsforecast ``` or -``` python +```python conda install -c conda-forge statsforecast ``` -Vist our [Installation -Guide](./docs/getting-started/0_Installation.ipynb) for further -instructions. +Vist our [Installation Guide](https://nixtla.github.io/statsforecast/docs/getting-started/installation.html) for further instructions. ## Quick Start **Minimal Example** -``` python +```python from statsforecast import StatsForecast from statsforecast.models import AutoARIMA @@ -39,32 +55,17 @@ sf.fit(df) sf.predict(h=12, level=[95]) ``` -**Get Started with this [quick -guide](../nbs/docs/getting-started/1_Getting_Started_short.ipynb).** +**Get Started with this [quick guide](https://nixtla.github.io/statsforecast/docs/getting-started/getting_started_short.html).** -**Follow this [end-to-end -walkthrough](../nbs/docs/getting-started/2_Getting_Started_complete.ipynb) -for best practices.** +**Follow this [end-to-end walkthrough](https://nixtla.github.io/statsforecast/docs/getting-started/getting_started_complete.html) for best practices.** ## Why? -Current Python alternatives for statistical models are slow, inaccurate -and don’t scale well. So we created a library that can be used to -forecast in production environments or as benchmarks. -[`StatsForecast`](https://Nixtla.github.io/statsforecast/src/core/core.html#statsforecast) -includes an extensive battery of models that can efficiently fit -millions of time series. +Current Python alternatives for statistical models are slow, inaccurate and don't scale well. So we created a library that can be used to forecast in production environments or as benchmarks. `StatsForecast` includes an extensive battery of models that can efficiently fit millions of time series. ## Features -- Fastest and most accurate implementations of - [`AutoARIMA`](https://Nixtla.github.io/statsforecast/src/core/models.html#autoarima), - [`AutoETS`](https://Nixtla.github.io/statsforecast/src/core/models.html#autoets), - [`AutoCES`](https://Nixtla.github.io/statsforecast/src/core/models.html#autoces), - [`MSTL`](https://Nixtla.github.io/statsforecast/src/core/models.html#mstl) - and - [`Theta`](https://Nixtla.github.io/statsforecast/src/core/models.html#theta) - in Python. +- Fastest and most accurate implementations of `AutoARIMA`, `AutoETS`, `AutoCES`, `MSTL` and `Theta` in Python. - Out-of-the-box compatibility with Spark, Dask, and Ray. - Probabilistic Forecasting and Confidence Intervals. - Support for exogenous Variables and static covariates. @@ -73,167 +74,130 @@ millions of time series. ## Highlights -- Inclusion of `exogenous variables` and `prediction intervals` for - ARIMA. -- 20x - [faster](https://github.com/Nixtla/statsforecast/tree/main/experiments/arima) - than `pmdarima`. +- Inclusion of `exogenous variables` and `prediction intervals` for ARIMA. +- 20x [faster](./experiments/arima/) than `pmdarima`. - 1.5x faster than `R`. - 500x faster than `Prophet`. -- 4x - [faster](https://github.com/Nixtla/statsforecast/tree/main/experiments/ets) - than `statsmodels`. -- Compiled to high performance machine code through - [`numba`](https://numba.pydata.org/). -- 1,000,000 series in [30 - min](https://github.com/Nixtla/statsforecast/tree/main/experiments/ray) - with [ray](https://github.com/ray-project/ray). -- Replace FB-Prophet in two lines of code and gain speed and accuracy. - Check the experiments - [here](https://github.com/Nixtla/statsforecast/tree/main/experiments/arima_prophet_adapter). -- Fit 10 benchmark models on **1,000,000** series in [under **5 - min**](https://github.com/Nixtla/statsforecast/tree/main/experiments/benchmarks_at_scale). - -Missing something? Please open an issue or write us in -[![Slack](https://img.shields.io/badge/Slack-4A154B?&logo=slack&logoColor=white.png)](https://join.slack.com/t/nixtlaworkspace/shared_invite/zt-135dssye9-fWTzMpv2WBthq8NK0Yvu6A) +- 4x [faster](./experiments/ets/) than `statsmodels`. +- Compiled to high performance machine code through [`numba`](https://numba.pydata.org/). +- 1,000,000 series in [30 min](https://github.com/Nixtla/statsforecast/tree/main/experiments/ray) with [ray](https://github.com/ray-project/ray). +- Replace FB-Prophet in two lines of code and gain speed and accuracy. Check the experiments [here](https://github.com/Nixtla/statsforecast/tree/main/experiments/arima_prophet_adapter). +- Fit 10 benchmark models on **1,000,000** series in [under **5 min**](./experiments/benchmarks_at_scale/). + +Missing something? Please open an issue or write us in [![Slack](https://img.shields.io/badge/Slack-4A154B?&logo=slack&logoColor=white)](https://join.slack.com/t/nixtlaworkspace/shared_invite/zt-135dssye9-fWTzMpv2WBthq8NK0Yvu6A) ## Examples and Guides -πŸ“š [End to End -Walkthrough](https://nixtla.github.io/statsforecast/docs/getting-started/getting_started_complete.html): -Model training, evaluation and selection for multiple time series +πŸ“š [End to End Walkthrough](https://nixtla.github.io/statsforecast/docs/getting-started/getting_started_complete.html): Model training, evaluation and selection for multiple time series -πŸ”Ž [Anomaly -Detection](https://nixtla.github.io/statsforecast/docs/tutorials/anomalydetection.html): -detect anomalies for time series using in-sample prediction intervals. +πŸ”Ž [Anomaly Detection](https://nixtla.github.io/statsforecast/docs/tutorials/anomalydetection.html): detect anomalies for time series using in-sample prediction intervals. -πŸ‘©β€πŸ”¬ [Cross -Validation](https://nixtla.github.io/statsforecast/docs/tutorials/crossvalidation.html): -robust model’s performance evaluation. +πŸ‘©β€πŸ”¬ [Cross Validation](https://nixtla.github.io/statsforecast/docs/tutorials/crossvalidation.html): robust model’s performance evaluation. -❄️ [Multiple -Seasonalities](https://nixtla.github.io/statsforecast/docs/tutorials/multipleseasonalities.html): -how to forecast data with multiple seasonalities using an MSTL. +❄️ [Multiple Seasonalities](https://nixtla.github.io/statsforecast/docs/tutorials/multipleseasonalities.html): how to forecast data with multiple seasonalities using an MSTL. -πŸ”Œ [Predict Demand -Peaks](https://nixtla.github.io/statsforecast/docs/tutorials/electricitypeakforecasting.html): -electricity load forecasting for detecting daily peaks and reducing -electric bills. +πŸ”Œ [Predict Demand Peaks](https://nixtla.github.io/statsforecast/docs/tutorials/electricitypeakforecasting.html): electricity load forecasting for detecting daily peaks and reducing electric bills. -πŸ“ˆ [Intermittent -Demand](https://nixtla.github.io/statsforecast/docs/tutorials/intermittentdata.html): -forecast series with very few non-zero observations. +πŸ“ˆ [Intermittent Demand](https://nixtla.github.io/statsforecast/docs/tutorials/intermittentdata.html): forecast series with very few non-zero observations. -🌑️ [Exogenous -Regressors](https://nixtla.github.io/statsforecast/docs/how-to-guides/exogenous.html): -like weather or prices +🌑️ [Exogenous Regressors](https://nixtla.github.io/statsforecast/docs/how-to-guides/exogenous.html): like weather or prices ## Models ### Automatic Forecasting -Automatic forecasting tools search for the best parameters and select -the best possible model for a group of time series. These tools are -useful for large collections of univariate time series. +Automatic forecasting tools search for the best parameters and select the best possible model for a group of time series. These tools are useful for large collections of univariate time series. | Model | Point Forecast | Probabilistic Forecast | Insample fitted values | Probabilistic fitted values | -|:-----------------------------------------------------------------------------------|:--------------:|:----------------------:|:----------------------:|:---------------------------:| -| [AutoARIMA](https://nixtla.github.io/statsforecast/src/core/models.html#autoarima) | βœ… | βœ… | βœ… | βœ… | -| [AutoETS](https://nixtla.github.io/statsforecast/src/core/models.html#autoets) | βœ… | βœ… | βœ… | βœ… | -| [AutoCES](https://nixtla.github.io/statsforecast/src/core/models.html#autoces) | βœ… | βœ… | βœ… | βœ… | -| [AutoTheta](https://nixtla.github.io/statsforecast/src/core/models.html#autotheta) | βœ… | βœ… | βœ… | βœ… | +| :--------------------------------------------------------------------------------- | :------------: | :--------------------: | :--------------------: | :-------------------------: | --- | +| [AutoARIMA](https://nixtla.github.io/statsforecast/src/core/models.html#autoarima) | βœ… | βœ… | βœ… | βœ… | βœ… | +| [AutoETS](https://nixtla.github.io/statsforecast/src/core/models.html#autoets) | βœ… | βœ… | βœ… | βœ… | βœ… | +| [AutoCES](https://nixtla.github.io/statsforecast/src/core/models.html#autoces) | βœ… | βœ… | βœ… | βœ… | βœ… | +| [AutoTheta](https://nixtla.github.io/statsforecast/src/core/models.html#autotheta) | βœ… | βœ… | βœ… | βœ… | βœ… | ## ARIMA Family These models exploit the existing autocorrelations in the time series. | Model | Point Forecast | Probabilistic Forecast | Insample fitted values | Probabilistic fitted values | -|:---------------------------------------------------------------------------------------------|:--------------:|:----------------------:|:----------------------:|:---------------------------:| -| [ARIMA](https://nixtla.github.io/statsforecast/src/core/models.html#arima) | βœ… | βœ… | βœ… | βœ… | -| [AutoRegressive](https://nixtla.github.io/statsforecast/src/core/models.html#autoregressive) | βœ… | βœ… | βœ… | βœ… | +| :------------------------------------------------------------------------------------------- | :------------: | :--------------------: | :--------------------: | :-------------------------: | --- | +| [ARIMA](https://nixtla.github.io/statsforecast/src/core/models.html#arima) | βœ… | βœ… | βœ… | βœ… | βœ… | +| [AutoRegressive](https://nixtla.github.io/statsforecast/src/core/models.html#autoregressive) | βœ… | βœ… | βœ… | βœ… | βœ… | ### Theta Family -Fit two theta lines to a deseasonalized time series, using different -techniques to obtain and combine the two theta lines to produce the -final forecasts. +Fit two theta lines to a deseasonalized time series, using different techniques to obtain and combine the two theta lines to produce the final forecasts. | Model | Point Forecast | Probabilistic Forecast | Insample fitted values | Probabilistic fitted values | -|:-----------------------------------------------------------------------------------------------------------|:--------------:|:----------------------:|:----------------------:|:---------------------------:| -| [Theta](https://nixtla.github.io/statsforecast/src/core/models.html#theta) | βœ… | βœ… | βœ… | βœ… | -| [OptimizedTheta](https://nixtla.github.io/statsforecast/src/core/models.html#optimizedtheta) | βœ… | βœ… | βœ… | βœ… | -| [DynamicTheta](https://nixtla.github.io/statsforecast/src/core/models.html#dynamictheta) | βœ… | βœ… | βœ… | βœ… | -| [DynamicOptimizedTheta](https://nixtla.github.io/statsforecast/src/core/models.html#dynamicoptimizedtheta) | βœ… | βœ… | βœ… | βœ… | +| :--------------------------------------------------------------------------------------------------------- | :------------: | :--------------------: | :--------------------: | :-------------------------: | --- | +| [Theta](https://nixtla.github.io/statsforecast/src/core/models.html#theta) | βœ… | βœ… | βœ… | βœ… | βœ… | +| [OptimizedTheta](https://nixtla.github.io/statsforecast/src/core/models.html#optimizedtheta) | βœ… | βœ… | βœ… | βœ… | βœ… | +| [DynamicTheta](https://nixtla.github.io/statsforecast/src/core/models.html#dynamictheta) | βœ… | βœ… | βœ… | βœ… | βœ… | +| [DynamicOptimizedTheta](https://nixtla.github.io/statsforecast/src/core/models.html#dynamicoptimizedtheta) | βœ… | βœ… | βœ… | βœ… | βœ… | ### Multiple Seasonalities -Suited for signals with more than one clear seasonality. Useful for -low-frequency data like electricity and logs. +Suited for signals with more than one clear seasonality. Useful for low-frequency data like electricity and logs. | Model | Point Forecast | Probabilistic Forecast | Insample fitted values | Probabilistic fitted values | -|:-------------------------------------------------------------------------|:--------------:|:----------------------:|:----------------------:|:---------------------------:| -| [MSTL](https://nixtla.github.io/statsforecast/src/core/models.html#mstl) | βœ… | βœ… | βœ… | βœ… | +| :----------------------------------------------------------------------- | :------------: | :--------------------: | :--------------------: | :-------------------------: | --- | +| [MSTL](https://nixtla.github.io/statsforecast/src/core/models.html#mstl) | βœ… | βœ… | βœ… | βœ… | βœ… | ### GARCH and ARCH Models -Suited for modeling time series that exhibit non-constant volatility -over time. The ARCH model is a particular case of GARCH. +Suited for modeling time series that exhibit non-constant volatility over time. The ARCH model is a particular case of GARCH. | Model | Point Forecast | Probabilistic Forecast | Insample fitted values | Probabilistic fitted values | -|:---------------------------------------------------------------------------|:--------------:|:----------------------:|:----------------------:|:---------------------------:| -| [GARCH](https://nixtla.github.io/statsforecast/src/core/models.html#garch) | βœ… | βœ… | βœ… | βœ… | -| [ARCH](https://nixtla.github.io/statsforecast/src/core/models.html#arch) | βœ… | βœ… | βœ… | βœ… | +| :------------------------------------------------------------------------- | :------------: | :--------------------: | :--------------------: | :-------------------------: | --- | +| [GARCH](https://nixtla.github.io/statsforecast/src/core/models.html#garch) | βœ… | βœ… | βœ… | βœ… | βœ… | +| [ARCH](https://nixtla.github.io/statsforecast/src/core/models.html#arch) | βœ… | βœ… | βœ… | βœ… | βœ… | ### Baseline Models Classical models for establishing baseline. | Model | Point Forecast | Probabilistic Forecast | Insample fitted values | Probabilistic fitted values | -|:-----------------------------------------------------------------------------------------------------------|:--------------:|:----------------------:|:----------------------:|:---------------------------:| -| [HistoricAverage](https://nixtla.github.io/statsforecast/src/core/models.html#historicaverage) | βœ… | βœ… | βœ… | βœ… | -| [Naive](https://nixtla.github.io/statsforecast/src/core/models.html#naive) | βœ… | βœ… | βœ… | βœ… | -| [RandomWalkWithDrift](https://nixtla.github.io/statsforecast/src/core/models.html#randomwalkwithdrift) | βœ… | βœ… | βœ… | βœ… | -| [SeasonalNaive](https://nixtla.github.io/statsforecast/src/core/models.html#seasonalnaive) | βœ… | βœ… | βœ… | βœ… | -| [WindowAverage](https://nixtla.github.io/statsforecast/src/core/models.html#windowaverage) | βœ… | | | | -| [SeasonalWindowAverage](https://nixtla.github.io/statsforecast/src/core/models.html#seasonalwindowaverage) | βœ… | | | | +| :--------------------------------------------------------------------------------------------------------- | :------------: | :--------------------: | :--------------------: | :-------------------------: | --- | +| [HistoricAverage](https://nixtla.github.io/statsforecast/src/core/models.html#historicaverage) | βœ… | βœ… | βœ… | βœ… | βœ… | +| [Naive](https://nixtla.github.io/statsforecast/src/core/models.html#naive) | βœ… | βœ… | βœ… | βœ… | βœ… | +| [RandomWalkWithDrift](https://nixtla.github.io/statsforecast/src/core/models.html#randomwalkwithdrift) | βœ… | βœ… | βœ… | βœ… | βœ… | +| [SeasonalNaive](https://nixtla.github.io/statsforecast/src/core/models.html#seasonalnaive) | βœ… | βœ… | βœ… | βœ… | βœ… | +| [WindowAverage](https://nixtla.github.io/statsforecast/src/core/models.html#windowaverage) | βœ… | | | | | +| [SeasonalWindowAverage](https://nixtla.github.io/statsforecast/src/core/models.html#seasonalwindowaverage) | βœ… | | | | | ### Exponential Smoothing -Uses a weighted average of all past observations where the weights -decrease exponentially into the past. Suitable for data with clear trend -and/or seasonality. Use the `SimpleExponential` family for data with no -clear trend or seasonality. +Uses a weighted average of all past observations where the weights decrease exponentially into the past. Suitable for data with clear trend and/or seasonality. Use the `SimpleExponential` family for data with no clear trend or seasonality. | Model | Point Forecast | Probabilistic Forecast | Insample fitted values | Probabilistic fitted values | -|:-------------------------------------------------------------------------------------------------------------------------------------------|:--------------:|:----------------------:|:----------------------:|:---------------------------:| -| [SimpleExponentialSmoothing](https://nixtla.github.io/statsforecast/src/core/models.html#simpleexponentialsmoothing) | βœ… | | | | -| [SimpleExponentialSmoothingOptimized](https://nixtla.github.io/statsforecast/src/core/models.html#simpleexponentialsmoothingoptimized) | βœ… | | | | -| [SeasonalExponentialSmoothing](https://nixtla.github.io/statsforecast/src/core/models.html#seasonalexponentialsmoothing) | βœ… | | | | -| [SeasonalExponentialSmoothingOptimized](https://nixtla.github.io/statsforecast/src/core/models.html#seasonalexponentialsmoothingoptimized) | βœ… | | | | -| [Holt](https://nixtla.github.io/statsforecast/src/core/models.html#holt) | βœ… | βœ… | βœ… | βœ… | -| [HoltWinters](https://nixtla.github.io/statsforecast/src/core/models.html#holtwinters) | βœ… | βœ… | βœ… | βœ… | +| :----------------------------------------------------------------------------------------------------------------------------------------- | :------------: | :--------------------: | :--------------------: | :-------------------------: | --- | +| [SimpleExponentialSmoothing](https://nixtla.github.io/statsforecast/src/core/models.html#simpleexponentialsmoothing) | βœ… | | | | | +| [SimpleExponentialSmoothingOptimized](https://nixtla.github.io/statsforecast/src/core/models.html#simpleexponentialsmoothingoptimized) | βœ… | | | | | +| [SeasonalExponentialSmoothing](https://nixtla.github.io/statsforecast/src/core/models.html#seasonalexponentialsmoothing) | βœ… | | | | | +| [SeasonalExponentialSmoothingOptimized](https://nixtla.github.io/statsforecast/src/core/models.html#seasonalexponentialsmoothingoptimized) | βœ… | | | | | +| [Holt](https://nixtla.github.io/statsforecast/src/core/models.html#holt) | βœ… | βœ… | βœ… | βœ… | βœ… | +| [HoltWinters](https://nixtla.github.io/statsforecast/src/core/models.html#holtwinters) | βœ… | βœ… | βœ… | βœ… | βœ… | -### Sparse or Inttermitent +### Sparse or Intermittent Suited for series with very few non-zero observations | Model | Point Forecast | Probabilistic Forecast | Insample fitted values | Probabilistic fitted values | -|:-------------------------------------------------------------------------------------------------|:--------------:|:----------------------:|:----------------------:|:---------------------------:| -| [ADIDA](https://nixtla.github.io/statsforecast/src/core/models.html#adida) | βœ… | | | | -| [CrostonClassic](https://nixtla.github.io/statsforecast/src/core/models.html#crostonclassic) | βœ… | | | | -| [CrostonOptimized](https://nixtla.github.io/statsforecast/src/core/models.html#crostonoptimized) | βœ… | | | | -| [CrostonSBA](https://nixtla.github.io/statsforecast/src/core/models.html#crostonsba) | βœ… | | | | -| [IMAPA](https://nixtla.github.io/statsforecast/src/core/models.html#imapa) | βœ… | | | | -| [TSB](https://nixtla.github.io/statsforecast/src/core/models.html#tsb) | βœ… | | | | +| :----------------------------------------------------------------------------------------------- | :------------: | :--------------------: | :--------------------: | :-------------------------: | --- | +| [ADIDA](https://nixtla.github.io/statsforecast/src/core/models.html#adida) | βœ… | | | | | +| [CrostonClassic](https://nixtla.github.io/statsforecast/src/core/models.html#crostonclassic) | βœ… | | | | | +| [CrostonOptimized](https://nixtla.github.io/statsforecast/src/core/models.html#crostonoptimized) | βœ… | | | | | +| [CrostonSBA](https://nixtla.github.io/statsforecast/src/core/models.html#crostonsba) | βœ… | | | | | +| [IMAPA](https://nixtla.github.io/statsforecast/src/core/models.html#imapa) | βœ… | | | | | +| [TSB](https://nixtla.github.io/statsforecast/src/core/models.html#tsb) | βœ… | | | | | -## How to contribute +## πŸ”¨ How to contribute -See -[CONTRIBUTING.md](https://github.com/Nixtla/statsforecast/blob/main/CONTRIBUTING.md). +See [CONTRIBUTING.md](https://github.com/Nixtla/statsforecast/blob/main/CONTRIBUTING.md). ## Citing -``` bibtex +```bibtex @misc{garza2022statsforecast, author={Federico Garza, Max Mergenthaler Canseco, Cristian ChallΓΊ, Kin G. Olivares}, title = {{StatsForecast}: Lightning fast forecasting with statistical and econometric models}, @@ -242,3 +206,64 @@ See url={https://github.com/Nixtla/statsforecast} } ``` + +## Contributors ✨ + +Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)): + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    fede
    fede

    πŸ’» 🚧
    JosΓ© Morales
    JosΓ© Morales

    πŸ’» 🚧
    Sugato Ray
    Sugato Ray

    πŸ’»
    Jeff Tackes
    Jeff Tackes

    πŸ›
    darinkist
    darinkist

    πŸ€”
    Alec Helyar
    Alec Helyar

    πŸ’¬
    Dave Hirschfeld
    Dave Hirschfeld

    πŸ’¬
    mergenthaler
    mergenthaler

    πŸ’»
    Kin
    Kin

    πŸ’»
    Yasslight90
    Yasslight90

    πŸ€”
    asinig
    asinig

    πŸ€”
    Philip Gillißen
    Philip Gillißen

    πŸ’»
    Sebastian Hagn
    Sebastian Hagn

    πŸ› πŸ“–
    Han Wang
    Han Wang

    πŸ’»
    Ben Jeffrey
    Ben Jeffrey

    πŸ›
    Beliavsky
    Beliavsky

    πŸ“–
    Mariana Menchero GarcΓ­a
    Mariana Menchero GarcΓ­a

    πŸ’»
    Nikhil Gupta
    Nikhil Gupta

    πŸ›
    JD
    JD

    πŸ›
    josh attenberg
    josh attenberg

    πŸ’»
    JeroenPeterBos
    JeroenPeterBos

    πŸ’»
    Jeroen Van Der Donckt
    Jeroen Van Der Donckt

    πŸ’»
    Roymprog
    Roymprog

    πŸ“–
    Nelson CΓ‘rdenas BolaΓ±o
    Nelson CΓ‘rdenas BolaΓ±o

    πŸ“–
    Kyle Schmaus
    Kyle Schmaus

    πŸ’»
    Akmal Soliev
    Akmal Soliev

    πŸ’»
    Nick To
    Nick To

    πŸ’»
    Kevin Kho
    Kevin Kho

    πŸ’»
    Yiben Huang
    Yiben Huang

    πŸ“–
    Andrew Gross
    Andrew Gross

    πŸ“–
    taniishkaaa
    taniishkaaa

    πŸ“–
    Manuel Calzolari
    Manuel Calzolari

    πŸ’»
    + + + + + + +This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome! From 260eddac44b74e0953eaab5a3efe5c255090c74b Mon Sep 17 00:00:00 2001 From: Hahnbee Lee <55263191+hahnbeelee@users.noreply.github.com> Date: Wed, 11 Oct 2023 18:35:02 -0700 Subject: [PATCH 58/61] re-add missing assets --- .gitignore | 1 - nbs/favicon.png | Bin 0 -> 208747 bytes nbs/favicon_png.png | Bin 0 -> 177981 bytes nbs/imgs/logo/dark.png | Bin 2883 -> 0 bytes nbs/imgs/logo/light.png | Bin 2851 -> 0 bytes nbs/sidebar.yml | 19 +++++++++++++++++++ 6 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 nbs/favicon.png create mode 100644 nbs/favicon_png.png delete mode 100644 nbs/imgs/logo/dark.png delete mode 100644 nbs/imgs/logo/light.png create mode 100644 nbs/sidebar.yml diff --git a/.gitignore b/.gitignore index 1a945f599..9986c10d4 100644 --- a/.gitignore +++ b/.gitignore @@ -15,7 +15,6 @@ dist tmp _docs/ _proc/ -sidebar.yml .DS_Store .gitattributes .gitconfig diff --git a/nbs/favicon.png b/nbs/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..9fb85089d6ed81fee60833b5637849f4345291ce GIT binary patch literal 208747 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

    m4#s3|{9}y)d?bpJ#Cb<^`NhRd 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 literal 0 HcmV?d00001 diff --git a/nbs/favicon_png.png b/nbs/favicon_png.png new file mode 100644 index 0000000000000000000000000000000000000000..7c7684de22282513d154d0f8fb2a7c09e8bafa69 GIT binary patch literal 177981 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

      &ebAyq^DUK7 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
      @@ -30,11 +27,12 @@ You can install `StatsForecast` with: pip install statsforecast ``` -or +or ```python conda install -c conda-forge statsforecast -``` +``` + Vist our [Installation Guide](https://nixtla.github.io/statsforecast/docs/getting-started/installation.html) for further instructions. @@ -59,30 +57,31 @@ sf.predict(h=12, level=[95]) **Follow this [end-to-end walkthrough](https://nixtla.github.io/statsforecast/docs/getting-started/getting_started_complete.html) for best practices.** -## Why? +## Why? -Current Python alternatives for statistical models are slow, inaccurate and don't scale well. So we created a library that can be used to forecast in production environments or as benchmarks. `StatsForecast` includes an extensive battery of models that can efficiently fit millions of time series. +Current Python alternatives for statistical models are slow, inaccurate and don't scale well. So we created a library that can be used to forecast in production environments or as benchmarks. `StatsForecast` includes an extensive battery of models that can efficiently fit millions of time series. ## Features -- Fastest and most accurate implementations of `AutoARIMA`, `AutoETS`, `AutoCES`, `MSTL` and `Theta` in Python. -- Out-of-the-box compatibility with Spark, Dask, and Ray. -- Probabilistic Forecasting and Confidence Intervals. -- Support for exogenous Variables and static covariates. -- Anomaly Detection. -- Familiar sklearn syntax: `.fit` and `.predict`. +* Fastest and most accurate implementations of `AutoARIMA`, `AutoETS`, `AutoCES`, `MSTL` and `Theta` in Python. +* Out-of-the-box compatibility with Spark, Dask, and Ray. +* Probabilistic Forecasting and Confidence Intervals. +* Support for exogenous Variables and static covariates. +* Anomaly Detection. +* Familiar sklearn syntax: `.fit` and `.predict`. ## Highlights -- Inclusion of `exogenous variables` and `prediction intervals` for ARIMA. -- 20x [faster](./experiments/arima/) than `pmdarima`. -- 1.5x faster than `R`. -- 500x faster than `Prophet`. -- 4x [faster](./experiments/ets/) than `statsmodels`. -- Compiled to high performance machine code through [`numba`](https://numba.pydata.org/). -- 1,000,000 series in [30 min](https://github.com/Nixtla/statsforecast/tree/main/experiments/ray) with [ray](https://github.com/ray-project/ray). -- Replace FB-Prophet in two lines of code and gain speed and accuracy. Check the experiments [here](https://github.com/Nixtla/statsforecast/tree/main/experiments/arima_prophet_adapter). -- Fit 10 benchmark models on **1,000,000** series in [under **5 min**](./experiments/benchmarks_at_scale/). +* Inclusion of `exogenous variables` and `prediction intervals` for ARIMA. +* 20x [faster](./experiments/arima/) than `pmdarima`. +* 1.5x faster than `R`. +* 500x faster than `Prophet`. +* 4x [faster](./experiments/ets/) than `statsmodels`. +* Compiled to high performance machine code through [`numba`](https://numba.pydata.org/). +* 1,000,000 series in [30 min](https://github.com/Nixtla/statsforecast/tree/main/experiments/ray) with [ray](https://github.com/ray-project/ray). +* Replace FB-Prophet in two lines of code and gain speed and accuracy. Check the experiments [here](https://github.com/Nixtla/statsforecast/tree/main/experiments/arima_prophet_adapter). +* Fit 10 benchmark models on **1,000,000** series in [under **5 min**](./experiments/benchmarks_at_scale/). + Missing something? Please open an issue or write us in [![Slack](https://img.shields.io/badge/Slack-4A154B?&logo=slack&logoColor=white)](https://join.slack.com/t/nixtlaworkspace/shared_invite/zt-135dssye9-fWTzMpv2WBthq8NK0Yvu6A) @@ -98,101 +97,95 @@ Missing something? Please open an issue or write us in [![Slack](https://img.shi πŸ”Œ [Predict Demand Peaks](https://nixtla.github.io/statsforecast/docs/tutorials/electricitypeakforecasting.html): electricity load forecasting for detecting daily peaks and reducing electric bills. -πŸ“ˆ [Intermittent Demand](https://nixtla.github.io/statsforecast/docs/tutorials/intermittentdata.html): forecast series with very few non-zero observations. +πŸ“ˆ [Intermittent Demand](https://nixtla.github.io/statsforecast/docs/tutorials/intermittentdata.html): forecast series with very few non-zero observations. 🌑️ [Exogenous Regressors](https://nixtla.github.io/statsforecast/docs/how-to-guides/exogenous.html): like weather or prices + ## Models ### Automatic Forecasting - Automatic forecasting tools search for the best parameters and select the best possible model for a group of time series. These tools are useful for large collections of univariate time series. -| Model | Point Forecast | Probabilistic Forecast | Insample fitted values | Probabilistic fitted values | -| :--------------------------------------------------------------------------------- | :------------: | :--------------------: | :--------------------: | :-------------------------: | --- | -| [AutoARIMA](https://nixtla.github.io/statsforecast/src/core/models.html#autoarima) | βœ… | βœ… | βœ… | βœ… | βœ… | -| [AutoETS](https://nixtla.github.io/statsforecast/src/core/models.html#autoets) | βœ… | βœ… | βœ… | βœ… | βœ… | -| [AutoCES](https://nixtla.github.io/statsforecast/src/core/models.html#autoces) | βœ… | βœ… | βœ… | βœ… | βœ… | -| [AutoTheta](https://nixtla.github.io/statsforecast/src/core/models.html#autotheta) | βœ… | βœ… | βœ… | βœ… | βœ… | +|Model | Point Forecast | Probabilistic Forecast | Insample fitted values | Probabilistic fitted values | +|:------|:-------------:|:----------------------:|:---------------------:|:----------------------------:| +|[AutoARIMA](https://nixtla.github.io/statsforecast/src/core/models.html#autoarima)|βœ…|βœ…|βœ…|βœ…|βœ…| +|[AutoETS](https://nixtla.github.io/statsforecast/src/core/models.html#autoets)|βœ…|βœ…|βœ…|βœ…|βœ…| +|[AutoCES](https://nixtla.github.io/statsforecast/src/core/models.html#autoces)|βœ…|βœ…|βœ…|βœ…|βœ…| +|[AutoTheta](https://nixtla.github.io/statsforecast/src/core/models.html#autotheta)|βœ…|βœ…|βœ…|βœ…|βœ…| ## ARIMA Family - These models exploit the existing autocorrelations in the time series. -| Model | Point Forecast | Probabilistic Forecast | Insample fitted values | Probabilistic fitted values | -| :------------------------------------------------------------------------------------------- | :------------: | :--------------------: | :--------------------: | :-------------------------: | --- | -| [ARIMA](https://nixtla.github.io/statsforecast/src/core/models.html#arima) | βœ… | βœ… | βœ… | βœ… | βœ… | -| [AutoRegressive](https://nixtla.github.io/statsforecast/src/core/models.html#autoregressive) | βœ… | βœ… | βœ… | βœ… | βœ… | +|Model | Point Forecast | Probabilistic Forecast | Insample fitted values | Probabilistic fitted values | +|:------|:-------------:|:----------------------:|:---------------------:|:----------------------------:| +|[ARIMA](https://nixtla.github.io/statsforecast/src/core/models.html#arima)|βœ…|βœ…|βœ…|βœ…|βœ…| +|[AutoRegressive](https://nixtla.github.io/statsforecast/src/core/models.html#autoregressive)|βœ…|βœ…|βœ…|βœ…|βœ…| ### Theta Family - Fit two theta lines to a deseasonalized time series, using different techniques to obtain and combine the two theta lines to produce the final forecasts. -| Model | Point Forecast | Probabilistic Forecast | Insample fitted values | Probabilistic fitted values | -| :--------------------------------------------------------------------------------------------------------- | :------------: | :--------------------: | :--------------------: | :-------------------------: | --- | -| [Theta](https://nixtla.github.io/statsforecast/src/core/models.html#theta) | βœ… | βœ… | βœ… | βœ… | βœ… | -| [OptimizedTheta](https://nixtla.github.io/statsforecast/src/core/models.html#optimizedtheta) | βœ… | βœ… | βœ… | βœ… | βœ… | -| [DynamicTheta](https://nixtla.github.io/statsforecast/src/core/models.html#dynamictheta) | βœ… | βœ… | βœ… | βœ… | βœ… | -| [DynamicOptimizedTheta](https://nixtla.github.io/statsforecast/src/core/models.html#dynamicoptimizedtheta) | βœ… | βœ… | βœ… | βœ… | βœ… | +|Model | Point Forecast | Probabilistic Forecast | Insample fitted values | Probabilistic fitted values | +|:------|:-------------:|:----------------------:|:---------------------:|:----------------------------:| +|[Theta](https://nixtla.github.io/statsforecast/src/core/models.html#theta)|βœ…|βœ…|βœ…|βœ…|βœ…| +|[OptimizedTheta](https://nixtla.github.io/statsforecast/src/core/models.html#optimizedtheta)|βœ…|βœ…|βœ…|βœ…|βœ…| +|[DynamicTheta](https://nixtla.github.io/statsforecast/src/core/models.html#dynamictheta)|βœ…|βœ…|βœ…|βœ…|βœ…| +|[DynamicOptimizedTheta](https://nixtla.github.io/statsforecast/src/core/models.html#dynamicoptimizedtheta)|βœ…|βœ…|βœ…|βœ…|βœ…| ### Multiple Seasonalities - Suited for signals with more than one clear seasonality. Useful for low-frequency data like electricity and logs. -| Model | Point Forecast | Probabilistic Forecast | Insample fitted values | Probabilistic fitted values | -| :----------------------------------------------------------------------- | :------------: | :--------------------: | :--------------------: | :-------------------------: | --- | -| [MSTL](https://nixtla.github.io/statsforecast/src/core/models.html#mstl) | βœ… | βœ… | βœ… | βœ… | βœ… | +|Model | Point Forecast | Probabilistic Forecast | Insample fitted values | Probabilistic fitted values | +|:------|:-------------:|:----------------------:|:---------------------:|:----------------------------:| +|[MSTL](https://nixtla.github.io/statsforecast/src/core/models.html#mstl)|βœ…|βœ…|βœ…|βœ…|βœ…| -### GARCH and ARCH Models +### GARCH and ARCH Models +Suited for modeling time series that exhibit non-constant volatility over time. The ARCH model is a particular case of GARCH. -Suited for modeling time series that exhibit non-constant volatility over time. The ARCH model is a particular case of GARCH. +|Model | Point Forecast | Probabilistic Forecast | Insample fitted values | Probabilistic fitted values | +|:------|:-------------:|:----------------------:|:---------------------:|:----------------------------:| +|[GARCH](https://nixtla.github.io/statsforecast/src/core/models.html#garch)|βœ…|βœ…|βœ…|βœ…|βœ…| +|[ARCH](https://nixtla.github.io/statsforecast/src/core/models.html#arch)|βœ…|βœ…|βœ…|βœ…|βœ…| -| Model | Point Forecast | Probabilistic Forecast | Insample fitted values | Probabilistic fitted values | -| :------------------------------------------------------------------------- | :------------: | :--------------------: | :--------------------: | :-------------------------: | --- | -| [GARCH](https://nixtla.github.io/statsforecast/src/core/models.html#garch) | βœ… | βœ… | βœ… | βœ… | βœ… | -| [ARCH](https://nixtla.github.io/statsforecast/src/core/models.html#arch) | βœ… | βœ… | βœ… | βœ… | βœ… | ### Baseline Models - Classical models for establishing baseline. -| Model | Point Forecast | Probabilistic Forecast | Insample fitted values | Probabilistic fitted values | -| :--------------------------------------------------------------------------------------------------------- | :------------: | :--------------------: | :--------------------: | :-------------------------: | --- | -| [HistoricAverage](https://nixtla.github.io/statsforecast/src/core/models.html#historicaverage) | βœ… | βœ… | βœ… | βœ… | βœ… | -| [Naive](https://nixtla.github.io/statsforecast/src/core/models.html#naive) | βœ… | βœ… | βœ… | βœ… | βœ… | -| [RandomWalkWithDrift](https://nixtla.github.io/statsforecast/src/core/models.html#randomwalkwithdrift) | βœ… | βœ… | βœ… | βœ… | βœ… | -| [SeasonalNaive](https://nixtla.github.io/statsforecast/src/core/models.html#seasonalnaive) | βœ… | βœ… | βœ… | βœ… | βœ… | -| [WindowAverage](https://nixtla.github.io/statsforecast/src/core/models.html#windowaverage) | βœ… | | | | | -| [SeasonalWindowAverage](https://nixtla.github.io/statsforecast/src/core/models.html#seasonalwindowaverage) | βœ… | | | | | +|Model | Point Forecast | Probabilistic Forecast | Insample fitted values | Probabilistic fitted values | +|:------|:-------------:|:----------------------:|:---------------------:|:----------------------------:| +|[HistoricAverage](https://nixtla.github.io/statsforecast/src/core/models.html#historicaverage)|βœ…|βœ…|βœ…|βœ…|βœ…| +|[Naive](https://nixtla.github.io/statsforecast/src/core/models.html#naive)|βœ…|βœ…|βœ…|βœ…|βœ…| +|[RandomWalkWithDrift](https://nixtla.github.io/statsforecast/src/core/models.html#randomwalkwithdrift)|βœ…|βœ…|βœ…|βœ…|βœ…| +|[SeasonalNaive](https://nixtla.github.io/statsforecast/src/core/models.html#seasonalnaive)|βœ…|βœ…|βœ…|βœ…|βœ…| +|[WindowAverage](https://nixtla.github.io/statsforecast/src/core/models.html#windowaverage)|βœ…||||| +|[SeasonalWindowAverage](https://nixtla.github.io/statsforecast/src/core/models.html#seasonalwindowaverage)|βœ…||||| ### Exponential Smoothing - Uses a weighted average of all past observations where the weights decrease exponentially into the past. Suitable for data with clear trend and/or seasonality. Use the `SimpleExponential` family for data with no clear trend or seasonality. -| Model | Point Forecast | Probabilistic Forecast | Insample fitted values | Probabilistic fitted values | -| :----------------------------------------------------------------------------------------------------------------------------------------- | :------------: | :--------------------: | :--------------------: | :-------------------------: | --- | -| [SimpleExponentialSmoothing](https://nixtla.github.io/statsforecast/src/core/models.html#simpleexponentialsmoothing) | βœ… | | | | | -| [SimpleExponentialSmoothingOptimized](https://nixtla.github.io/statsforecast/src/core/models.html#simpleexponentialsmoothingoptimized) | βœ… | | | | | -| [SeasonalExponentialSmoothing](https://nixtla.github.io/statsforecast/src/core/models.html#seasonalexponentialsmoothing) | βœ… | | | | | -| [SeasonalExponentialSmoothingOptimized](https://nixtla.github.io/statsforecast/src/core/models.html#seasonalexponentialsmoothingoptimized) | βœ… | | | | | -| [Holt](https://nixtla.github.io/statsforecast/src/core/models.html#holt) | βœ… | βœ… | βœ… | βœ… | βœ… | -| [HoltWinters](https://nixtla.github.io/statsforecast/src/core/models.html#holtwinters) | βœ… | βœ… | βœ… | βœ… | βœ… | +|Model | Point Forecast | Probabilistic Forecast | Insample fitted values | Probabilistic fitted values | +|:------|:-------------:|:----------------------:|:---------------------:|:----------------------------:| +|[SimpleExponentialSmoothing](https://nixtla.github.io/statsforecast/src/core/models.html#simpleexponentialsmoothing)|βœ…||||| +|[SimpleExponentialSmoothingOptimized](https://nixtla.github.io/statsforecast/src/core/models.html#simpleexponentialsmoothingoptimized)|βœ…||||| +|[SeasonalExponentialSmoothing](https://nixtla.github.io/statsforecast/src/core/models.html#seasonalexponentialsmoothing)|βœ…||||| +|[SeasonalExponentialSmoothingOptimized](https://nixtla.github.io/statsforecast/src/core/models.html#seasonalexponentialsmoothingoptimized)|βœ…||||| +|[Holt](https://nixtla.github.io/statsforecast/src/core/models.html#holt)|βœ…|βœ…|βœ…|βœ…|βœ…| +|[HoltWinters](https://nixtla.github.io/statsforecast/src/core/models.html#holtwinters)|βœ…|βœ…|βœ…|βœ…|βœ…| -### Sparse or Intermittent +### Sparse or Intermittent Suited for series with very few non-zero observations -| Model | Point Forecast | Probabilistic Forecast | Insample fitted values | Probabilistic fitted values | -| :----------------------------------------------------------------------------------------------- | :------------: | :--------------------: | :--------------------: | :-------------------------: | --- | -| [ADIDA](https://nixtla.github.io/statsforecast/src/core/models.html#adida) | βœ… | | | | | -| [CrostonClassic](https://nixtla.github.io/statsforecast/src/core/models.html#crostonclassic) | βœ… | | | | | -| [CrostonOptimized](https://nixtla.github.io/statsforecast/src/core/models.html#crostonoptimized) | βœ… | | | | | -| [CrostonSBA](https://nixtla.github.io/statsforecast/src/core/models.html#crostonsba) | βœ… | | | | | -| [IMAPA](https://nixtla.github.io/statsforecast/src/core/models.html#imapa) | βœ… | | | | | -| [TSB](https://nixtla.github.io/statsforecast/src/core/models.html#tsb) | βœ… | | | | | +|Model | Point Forecast | Probabilistic Forecast | Insample fitted values | Probabilistic fitted values | +|:------|:-------------:|:----------------------:|:---------------------:|:----------------------------:| +|[ADIDA](https://nixtla.github.io/statsforecast/src/core/models.html#adida)|βœ…||||| +|[CrostonClassic](https://nixtla.github.io/statsforecast/src/core/models.html#crostonclassic)|βœ…||||| +|[CrostonOptimized](https://nixtla.github.io/statsforecast/src/core/models.html#crostonoptimized)|βœ…||||| +|[CrostonSBA](https://nixtla.github.io/statsforecast/src/core/models.html#crostonsba)|βœ…||||| +|[IMAPA](https://nixtla.github.io/statsforecast/src/core/models.html#imapa)|βœ…||||| +|[TSB](https://nixtla.github.io/statsforecast/src/core/models.html#tsb)|βœ…||||| ## πŸ”¨ How to contribute - See [CONTRIBUTING.md](https://github.com/Nixtla/statsforecast/blob/main/CONTRIBUTING.md). ## Citing @@ -266,4 +259,4 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d -This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome! +This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome! \ No newline at end of file diff --git a/nbs/docs/contribute/step-by-step.md b/nbs/docs/contribute/step-by-step.md index b8215b875..49848ff9d 100644 --- a/nbs/docs/contribute/step-by-step.md +++ b/nbs/docs/contribute/step-by-step.md @@ -15,35 +15,35 @@ Sometimes, diving into a new technology can be challenging and overwhelming. We' 7. [Start Coding](#start-coding) 8. [Example with Screen-shots](#example-with-screen-shots) -## Prerequisites +## Prerequisites -- _GitHub_: You should already have a GitHub account and a basic understanding of its functionalities. Alternatively check [this guide](https://docs.github.com/en/get-started). -- _Python_: Python should be installed on your system. Alternatively check [this guide](https://www.python.org/downloads/). -- _conda_: You need to have conda installed, along with a good grasp of fundamental operations such as creating environments, and activating and deactivating them. Alternatively check [this guide](https://conda.io/projects/conda/en/latest/user-guide/install/index.html). +- *GitHub*: You should already have a GitHub account and a basic understanding of its functionalities. Alternatively check [this guide](https://docs.github.com/en/get-started). +- *Python*: Python should be installed on your system. Alternatively check [this guide](https://www.python.org/downloads/). +- *conda*: You need to have conda installed, along with a good grasp of fundamental operations such as creating environments, and activating and deactivating them. Alternatively check [this guide](https://conda.io/projects/conda/en/latest/user-guide/install/index.html). ## Git `fork-and-pull` worklow -**1. Fork the Project:** +**1. Fork the Project:** Start by forking the Nixtla repository to your own GitHub account. This creates a personal copy of the project where you can make changes without affecting the main repository. **2. Clone the Forked Repository** -Clone the forked repository to your local machine using `git clone https://github.com//nixtla.git`. This allows you to work with the code directly on your system. +Clone the forked repository to your local machine using `git clone https://github.com//nixtla.git`. This allows you to work with the code directly on your system. -**3. Create a Branch:** +**3. Create a Branch:** Branching in GitHub is a key strategy for effectively managing and isolating changes to your project. It allows you to segregate work on different features, fixes, and issues without interfering with the main, production-ready codebase. -1. _Main Branch_: The default branch with production-ready code. +1. *Main Branch*: The default branch with production-ready code. -2. _Feature Branches_: For new features, create branches prefixed with 'feature/', like `git checkout -b feature/new-model`. +2. *Feature Branches*: For new features, create branches prefixed with 'feature/', like `git checkout -b feature/new-model`. -3. _Fix Branches_: For bug fixes, use 'fix/' prefix, like `git checkout -b fix/forecasting-bug`. +3. *Fix Branches*: For bug fixes, use 'fix/' prefix, like `git checkout -b fix/forecasting-bug`. -4. _Issue Branches_: For specific issues, use `git checkout -b issue/issue-number` or `git checkout -b issue/issue-description`. +4. *Issue Branches*: For specific issues, use `git checkout -b issue/issue-number` or `git checkout -b issue/issue-description`. After testing, branches are merged back into the main branch via a pull request, and then typically deleted to maintain a clean repository. You can read more about github and branching [here](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-and-deleting-branches-within-your-repository). -## Set Up a Conda Environment +## Set Up a Conda Environment > If you want to use Docker or Codespaces, let us know opening an issue and we will set you up. @@ -51,13 +51,13 @@ Next, you'll need to set up a [Conda](https://docs.conda.io/en/latest/) environm First, ensure you have Anaconda or Miniconda installed on your system. Alternatively checkout these guides: [Anaconda](https://www.anaconda.com/), [Miniconda](https://docs.conda.io/en/latest/miniconda.html), and [Mamba](https://mamba.readthedocs.io/en/latest/). -Then, you can create a new environment using `conda create -n nixtla-env python=3.10`. +Then, you can create a new environment using `conda create -n nixtla-env python=3.10`. -You can also use mamba for creating the environment (mamba is faster than Conda) using `mamba create -n nixtla-env python=3.10`. +You can also use mamba for creating the environment (mamba is faster than Conda) using `mamba create -n nixtla-env python=3.10`. You can replace `nixtla-env` for something more meaningful to you. Eg. `statsforecast-env` or `mlforecast-env`. You can always check the list of environments in your system using `conda env list`. -Activate your new environment with `conda activate nixtla-env`. +Activate your new environment with `conda activate nixtla-env`. ## Install required libraries for development @@ -71,7 +71,7 @@ Sometimes (e.g. StatsForecast) the `enviorment.yml` is sometimes inside a folder ## Start editable mode -Install the library in editable mode using `pip install -e ".[dev]"`. +Install the library in editable mode using `pip install -e ".[dev]"`. This means the package is linked directly to the source code, allowing any changes made to the source code to be immediately reflected in your Python environment without the need to reinstall the package. This is useful for testing changes during package development. @@ -101,8 +101,9 @@ Open a jupyter notebook using `jupyter lab` (or VS Code). 2. **Commit Your Changes:** Add the changed files using `git add [your_modified_file_0.ipynb] [your_modified_file_1.ipynb]`, then commit these changes using `git commit -m ": "`. Please use [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) -3. **Push Your Changes:** - Push your changes to the remote repository on GitHub with `git push origin feature/your-feature-name`. + +3. **Push Your Changes:** +Push your changes to the remote repository on GitHub with `git push origin feature/your-feature-name`. 4. **Open a Pull Request:** Open a pull request from your new branch on the Nixtla repository on GitHub. Provide a thorough description of your changes when creating the pull request. @@ -117,7 +118,6 @@ You can find a detailed step by step buide with screen-shots below. ## Example with Screen-shots ### 1. Create a fork of the mlforecast repo - The first thing you need to do is create a fork of the GitHub repository to your own account: image @@ -229,5 +229,4 @@ Finally, you will see something like this: image ## Notes - -- This file was generated using [this file](https://github.com/Nixtla/nixtla-commons/blob/main/docs/contribute/step-by-step.md). Please change that file if you want to enhance the document. +- This file was generated using [this file](https://github.com/Nixtla/nixtla-commons/blob/main/docs/contribute/step-by-step.md). Please change that file if you want to enhance the document. \ No newline at end of file From f1220054bfa65833eb311f7bc57450f8e33c4889 Mon Sep 17 00:00:00 2001 From: Hahnbee Lee <55263191+hahnbeelee@users.noreply.github.com> Date: Mon, 16 Oct 2023 14:32:55 -0700 Subject: [PATCH 61/61] change holt possibilities to latex --- nbs/docs/models/Holt.ipynb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nbs/docs/models/Holt.ipynb b/nbs/docs/models/Holt.ipynb index 1d961204c..2705fc903 100644 --- a/nbs/docs/models/Holt.ipynb +++ b/nbs/docs/models/Holt.ipynb @@ -112,7 +112,7 @@ "\n", "For each method there exist two models: one with additive errors and one with multiplicative errors. The point forecasts produced by the models are identical if they use the same smoothing parameter values. They will, however, generate different prediction intervals.\n", "\n", - "To distinguish between a model with additive errors and one with multiplicative errors. We label each state space model as ETS( .,.,.) for (Error, Trend, Seasonal). This label can also be thought of as ExponenTial Smoothing. Using the same notation as in Table 7.5, the possibilities for each component are: Error =\\\\{A,M } , Trend =\\\\{ N,A,A d} and Seasonal =\\\\{ N,A,M }\n", + "To distinguish between a model with additive errors and one with multiplicative errors. We label each state space model as ETS( .,.,.) for (Error, Trend, Seasonal). This label can also be thought of as ExponenTial Smoothing. Using the same notation as in Table 7.5, the possibilities for each component are: $Error=\\{A,M\\}$, $Trend=\\{N,A,A_d\\}$ and $Seasonal=\\{N,A,M\\}$\n", "\n", "For our case, the linear Holt model with a trend, we are going to see two cases, both for the additive and the multiplicative\n", "\n",

      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 literal 0 HcmV?d00001 diff --git a/nbs/imgs/logo/dark.png b/nbs/imgs/logo/dark.png deleted file mode 100644 index 4142a0bbde38d8801c80e73a8fa18df0baffb465..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2883 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 diff --git a/nbs/imgs/logo/light.png b/nbs/imgs/logo/light.png deleted file mode 100644 index bbb99b5497a62503432e3c770f9fd6290b304ed6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2851 zcmXYzdpwivAIFhuIb|_hD9Q6Qa+skICdZL89TaV?{X#`#L~JC7oaITXpD}aj@Df=q z)59hkmP0wD=9!QrGiQcj_-#GEKknhRdZsulUy}w*vu#klW6x9QQf}LCob0sAch?T&B|VwEgKDBWqZx(jn42EtI4#6nTwQ9ZPkOU+>0W4ufXG6h}g|HuAa4%lxYQxj4O-+eY|JW&R>C#Bl&2JK!hM94v0E z-HSV%_5==?$+}b!E)h_&=c@ehkBiprZJXo3470R#;^{;^xyhx2@fjqCxu2<&uKn;X z0rF6MDQD4&(B`OWtIp^}n8b0Q6ZRRR+$$y?1zRP0^=nsf z`cmpIt6oD3N5X%tGN<;7qc2?p0J`46}3wSsadH;&m84$6e3_c7AKsZDK1!#0Z| z)ha#6wuK3nu9#TS0rZ`pN}R^R{ulS3RyC9mcD@G*HU3O6-B`ITPd41EvYg&mCs8_E zan2n*?R>QpzRRtNSYe!91dcyc!5KV;@G`W8 zcQBu^?6@EyXbw|w+`(Bxo}E+mTOJ!Ys?vc|4JlGNAGQWeszI`A`nBoN3t2>5&6 z>7{SCZ>~2&`qe_tN`OH>jQ?co_R(gOBTyQIkBc%(o2lOpz^J&P3tX!zy z4|DStV|8sWq4PJMex?Mcrq&9o#_?%c0*$lOx_h-YyS?2ojSXU0Bm~?nQY@NtU8Qx7 z&SpOIFb*syw5U>VdWn81!LuDds4&vc@Go>ISK5eIAszN+)D~aHLh`Nzde*=TCMFaB zYfGDj{X{@in;%rOrf>Ej_Y1>tp~$MuSdJWe*dXKY%DmSZKLS|h+-Hvq>R28GJFO9$ z+U(BuV`*$vgu~Y3;j+n-t3!>?+)pAvUms;dLhXu3yIYNA$nHYK(d7f1`0GOF_?%K| zB4N2(FIsWq(*B|cAQn~*ea$`Ra>JA)Y4=!XK(39Q0v*_q0^7$kopid26dPW5=V2#$ zoWe1-23Xwd%RJNFD~`IPDOySj;gWL6*iLrIp|ldf_yde@s0=}3v!N+7GuAjU*l0M0 z+XuHUncvTyn4Z1Yp#T416kwbQ-b3}m`*3^27+AVfb8wf?29jWE-u7?{Wgydh)%c9d zYWxRrS`)F&6lgkmw|()v2Nf3kujZXBpM7Bf+}SWcjZZ zrL2cDh37lVL(7B`ro|R9_(B4uaZWg!ug)Urj_sIa?6vt8O+-da@45Wk={cB@UYRhO zb-7ARBhI)#3uQn@eI{jH!FwJ~V*?T7#FuVm^!JA}CxCQN{9VX3Wp2u=ai8Np|L&0* zHwC7~PVjG=_~UY{=BQ}}CrGg{YTG<7icy|xk>MUR6g*4vD$=#BX*x1oGC!C@Cu~|h z0JGw05!BFGB^l zE#U_{>xqF_3&tx;2v_!Hr5SoCdgmv#MMtlykwHWx#%flceMkUgxOj8dy?GL(!?pYA zCx-QpCoTB5{rsuM!UE7;YZJ+*K7YA*?t2K?U0~LLTFIA>6Mko^ZHymzAA#b6T`xz}OKLMv4}aVY0#xKhkpsJZ6Mxo{o(gA`Q# z3)=^Yt$X^EVb0;qY3T?RcJlgAWhXe2;Ms3MI{!SzSQyawai4-lo|1U{L<$Z z$%pYZO#QHgF2NB0nJSr3<7BXo-@oktpfcRE&X^d_hE|Nd z!DmpAu0w3~4=p}MzLvtfx7<$U@~R&*>tNYP9t?kXOE(}_a#o3MC(#C$KSdVrt|$~T zEdOCf+z>M~HnrBeS8(1^wQLq5 z#(8?(U^DVBiC8|At;XwgJOOU6YRILO(SFE_1i$4|Op6pa^U<5B-b~3SBFKkpQgE}s zrn?UY)l--NA;@$7zr3UCrv{LMv-qT@;WFA~IRXljZ0syNTv%rX?^m$&ym*$d% Date: Mon, 16 Oct 2023 11:48:00 -0700 Subject: [PATCH 59/61] add frontmatter to migrating_R page --- nbs/docs/how-to-guides/migrating_R.qmd | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/nbs/docs/how-to-guides/migrating_R.qmd b/nbs/docs/how-to-guides/migrating_R.qmd index e973d9d90..352be78f5 100644 --- a/nbs/docs/how-to-guides/migrating_R.qmd +++ b/nbs/docs/how-to-guides/migrating_R.qmd @@ -1,2 +1,6 @@ +--- +title: Migrating from R +--- + ## 🚧 We are working on this site. This site is currently in development. If you are particularly interested in this section, please open a GitHub Issue, and we will prioritize it. \ No newline at end of file From e56707d6707a22d5d3e6f827d0ef9edafa442d54 Mon Sep 17 00:00:00 2001 From: Hahnbee Lee <55263191+hahnbeelee@users.noreply.github.com> Date: Mon, 16 Oct 2023 11:52:33 -0700 Subject: [PATCH 60/61] undo format on save --- README.md | 155 +++++++++++++--------------- nbs/docs/contribute/step-by-step.md | 41 ++++---- 2 files changed, 94 insertions(+), 102 deletions(-) diff --git a/README.md b/README.md index 61858351c..d6aefd25f 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,6 @@ # Nixtla   [![Tweet](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=Statistical%20Forecasting%20Algorithms%20by%20Nixtla%20&url=https://github.com/Nixtla/statsforecast&via=nixtlainc&hashtags=StatisticalModels,TimeSeries,Forecasting)  [![Slack](https://img.shields.io/badge/Slack-4A154B?&logo=slack&logoColor=white)](https://join.slack.com/t/nixtlacommunity/shared_invite/zt-1pmhan9j5-F54XR20edHk0UtYAPcW4KQ) - - [![All Contributors](https://img.shields.io/badge/all_contributors-32-orange.svg?style=flat-square)](#contributors-) -

    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 diff --git a/nbs/mint.json b/nbs/mint.json deleted file mode 100644 index 86817bc40..000000000 --- a/nbs/mint.json +++ /dev/null @@ -1,122 +0,0 @@ -{ - "$schema": "https://mintlify.com/schema.json", - "name": "Nixtla", - "logo": { - "light": "/light.png", - "dark": "/dark.png" - }, - "favicon": "/favicon.svg", - "colors": { - "primary": "#0E0E0E", - "light": "#FAFAFA", - "dark": "#0E0E0E", - "anchors": { - "from": "#2AD0CA", - "to": "#0E00F8" - } - }, - "topbarCtaButton": { - "type": "github", - "url": "https://github.com/Nixtla/nixtla" - }, - "topAnchor": { - "name": "StatsForecast", - "icon": "bolt" - }, - "navigation": [ - { - "group": "", - "pages": ["index.html"] - }, - { - "group": "Getting Started", - "pages": [ - "docs/getting-started/installation.html", - "docs/getting-started/getting_started_short.html", - "docs/getting-started/getting_started_complete.html" - ] - }, - { - "group": "Tutorials", - "pages": [ - "docs/tutorials/anomalydetection.html", - "docs/tutorials/conformalprediction.html", - "docs/tutorials/crossvalidation.html", - "docs/tutorials/electricityloadforecasting.html", - "docs/tutorials/electricitypeakforecasting.html", - "docs/tutorials/garch_tutorial.html", - "docs/tutorials/intermittentdata.html", - "docs/tutorials/multipleseasonalities.html", - "docs/tutorials/statisticalneuralmethods.html", - "docs/tutorials/uncertaintyintervals.html" - ] - }, - { - "group": "How to Guides", - "pages": [ - "docs/how-to-guides/automatic_forecasting.html", - "docs/how-to-guides/amazonstatsforecast.html", - "docs/how-to-guides/autoarima_vs_prophet.html", - "docs/how-to-guides/dask.html", - "docs/how-to-guides/ets_ray_m5.html", - "docs/how-to-guides/exogenous.html", - "docs/how-to-guides/getting_started_complete_polars.html", - "docs/how-to-guides/migrating_R", - "docs/how-to-guides/numba_cache.html", - "docs/how-to-guides/prophet_spark_m5.html", - "docs/how-to-guides/ray.html", - "docs/how-to-guides/spark.html" - ] - }, - { - "group": "Model References", - "pages": [ - "docs/models/adida.html", - "docs/models/arch.html", - "docs/models/arima.html", - "docs/models/autoarima.html", - "docs/models/autoces.html", - "docs/models/autoets.html", - "docs/models/autoregressive.html", - "docs/models/autotheta.html", - "docs/models/crostonclassic.html", - "docs/models/crostonoptimized.html", - "docs/models/crostonsba.html", - "docs/models/dynamicoptimizedtheta.html", - "docs/models/dynamicstandardtheta.html", - "docs/models/garch.html", - "docs/models/holt.html", - "docs/models/holtwinters.html", - "docs/models/imapa.html", - "docs/models/multipleseasonaltrend.html", - "docs/models/optimizedtheta.html", - "docs/models/seasonalexponentialsmoothing.html", - "docs/models/seasonalexponentialsmoothingoptimized.html", - "docs/models/simpleexponentialoptimized.html", - "docs/models/simpleexponentialsmoothing.html", - "docs/models/standardtheta.html", - "docs/models/tsb.html" - ] - }, - { - "group": "API Reference", - "pages": [ - "src/core/core.html", - "src/core/distributed.fugue.html", - "src/core/models.html", - "src/core/models_intro" - ] - }, - { - "group": "Contributing", - "pages": [ - "docs/contribute/contribute", - "docs/contribute/docs", - "docs/contribute/issue-labels", - "docs/contribute/issues", - "docs/contribute/step-by-step", - "docs/contribute/techstack" - ] - } - ] -} diff --git a/nbs/styles.css b/nbs/styles.css new file mode 100644 index 000000000..17f7c8a54 --- /dev/null +++ b/nbs/styles.css @@ -0,0 +1,431 @@ +/* old */ +.cell { + margin-bottom: 1rem; +} + +.cell > .sourceCode { + margin-bottom: 0; +} + +.cell-output > pre { + margin-bottom: 0; +} + +.cell-output > pre, +.cell-output > .sourceCode > pre, +.cell-output-stdout > pre { + margin-left: 0.8rem; + margin-top: 0; + background: none; + border-left: 2px solid lightsalmon; + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +.cell-output > .sourceCode { + border: none; + background: none; + margin-top: 0; +} + +.cell-output > div { + display: inline-block; +} + +div.description { + padding-left: 2px; + padding-top: 5px; + font-style: italic; + font-size: 135%; + opacity: 70%; +} + +/* show_doc signature */ +blockquote > pre { + font-size: 14px; +} + +.table { + font-size: 16px; + /* disable striped tables */ + --bs-table-striped-bg: var(--bs-table-bg); +} + +.quarto-figure-center > figure > figcaption { + text-align: center; +} + +.figure-caption { + font-size: 75%; + font-style: italic; +} + +/* new */ +@font-face { + font-family: "Inter"; + src: url("./assets/Inter-VariableFont.ttf") format("ttf"); +} + +:root { + --primary: rgb(75, 176, 215); + --secondary: rgb(255, 112, 0); +} + +html, +body { + color: #374151; + font-family: "Inter", sans-serif; +} + +header { + transform: translateY(0) !important; +} + +#title-block-header { + margin-block-end: 2rem; +} + +#quarto-sidebar { + top: 62px !important; + z-index: 100; +} + +.content a { + color: rgb(12, 18, 26); + text-decoration: none; + font-weight: 600; + border-bottom: 1px solid var(--primary); +} + +.content a:hover { + border-bottom: 2px solid var(--primary); +} + +a > code { + background-color: transparent !important; +} + +a > code:hover { + color: var(--primary) !important; +} + +.navbar { + background: rgba(255, 255, 255, 0.95); + backdrop-filter: blur(8px); + -webkit-backdrop-filter: blur(8px); /* For Safari support */ + border-bottom: 1px solid rgba(17, 24, 39, 0.05); +} + +.nav-link { + color: rgba(17, 24, 39, 0.6) !important; + font-size: 0.875rem; +} + +.nav-link.active { + color: rgb(17, 24, 39) !important; +} + +.aa-SubmitIcon { + fill: rgba(17, 24, 39, 0.6) !important; + height: 20px !important; + margin-top: -2px; +} + +.navbar #quarto-search { + margin-left: -2px; +} + +.navbar-container { + max-width: 1280px; + margin: 0 auto; +} + +.navbar-brand { + background-image: url("./assets/logo.png"); + background-size: contain; + background-repeat: no-repeat; + background-position: center; + height: 1.25rem; +} + +.navbar-title { + opacity: 0; + pointer-events: none; +} + +.content { + width: 100%; +} + +h1, +h2, +h3, +h4, +h5, +h6 { + color: rgb(17, 24, 39); + margin-top: 3rem; +} + +h1.title { + font-weight: 800; + font-size: 1.875rem; + line-height: 2.25rem; +} + +div.description { + font-style: normal; + font-size: 0.875rem; + line-height: 1.25rem; +} + +p { + margin-bottom: 1.25rem; +} + +/* menu */ +.sidebar-menu-container + > ul + > li:first-child + > .sidebar-item-container + > a + > span { + font-weight: 600 !important; + font-size: 0.875rem; + color: var(--secondary); +} + +div.sidebar-item-container { + color: #323232; +} + +.sidebar-divider.hi { + color: rgb(0, 0, 0, 0.2); + margin-top: 0.5rem; + margin-bottom: 1rem; +} + +#quarto-margin-sidebar { + top: 63px !important; +} + +.menu-text { + font-weight: 400; +} + +ul.sidebar-section { + padding-left: 0; +} + +.sidebar-link { + line-height: 2.125rem; + padding: 0 0.5rem; +} + +.sidebar-menu-container { + padding-right: 0 !important; +} + +ul.sidebar-section .sidebar-link { + padding-left: 1rem; + width: 100%; +} + +.sidebar-link.active { + background: rgba(255, 112, 0, 0.1); + border-radius: 0.25rem; +} + +.sidebar-link.active span { + font-weight: 600 !important; + color: var(--secondary); +} + +.callout { + border-left: auto !important; + border-radius: 1rem; + padding: 0.75rem; +} + +.callout-tip { + background: rgba(63, 182, 24, 0.05); + border: 1px solid rgba(63, 182, 24, 0.25) !important; +} + +.callout-note { + background: rgba(59, 130, 246, 0.05); + border: 1px solid rgba(59, 130, 246, 0.25) !important; +} + +.callout-style-default > .callout-header { + background: none !important; +} + +code:not(.sourceCode) { + background-color: rgb(249, 250, 251, 0.7) !important; + border: 1px solid rgba(12, 18, 26, 0.1) !important; + border-radius: 0.375rem; + color: rgba(12, 18, 26, 0.8) !important; + font-size: 0.875rem !important; + font-weight: 600 !important; + padding: 0.25rem 0.5rem !important; +} + +div.sourceCode { + background: none; + border: 0; + overflow-x: hidden; +} + +.cell-output { + margin-top: 1rem; +} + +.cell-output pre { + border-radius: 0.375rem; +} + +.cell-output > div { + overflow-x: scroll; +} + +.code-copy-button { + margin: 0.5rem; +} + +pre.sourceCode { + padding: 0; +} + +code { + background-color: rgb(249, 250, 251, 0.7) !important; + border: 1px solid rgba(12, 18, 26, 0.1) !important; + border-radius: 0.75rem; + color: rgba(12, 18, 26, 0.8) !important; + font-size: 0.875rem !important; + font-weight: 600 !important; + padding: 1rem !important; + overflow-x: scroll !important; +} + +.cell-output > div { + border: 1px solid rgba(100, 116, 139, 0.2) !important; + border-radius: 1rem; + margin-bottom: 3rem; + margin-top: 3rem; +} + +table, +.table { + border-radius: 1rem; + font-size: 0.875rem; + margin-bottom: 0; + max-width: 100%; + overflow-x: scroll; + display: block; +} + +thead { + background: rgba(12, 18, 26, 0.02); + border-bottom-color: rgba(100, 116, 139, 0.2) !important; +} + +thead tr:first-child { + background-color: rgb(249, 250, 251, 0.7) !important; +} + +thead tr:first-child th:first-child { + border-radius: 1rem 0 0 0; +} + +thead tr:first-child th:last-child { + border-radius: 0 1rem 0 0; +} + +th, +td { + padding: 0.5rem 1rem !important; + white-space: nowrap !important; +} + +td a, +td a code { + white-space: nowrap !important; +} + +tbody { + border-color: transparent !important; + border-top: none !important; +} + +tbody tr:last-child td:first-child { + border-radius: 0 0 0 1rem; +} + +tr.even, +tr.odd { + line-height: 2rem; +} + +tr:hover { + background-color: rgba(17, 24, 39, 0.05); +} + +td:first-child, +td:last-child { + padding: 0.25rem 1rem !important; +} + +.dropdown-menu.show { + background: white; + border: none; + border-radius: 0.5rem; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); + padding-top: 0.5rem !important; + padding-bottom: 0.25rem !important; +} + +.dropdown-menu li { + padding: 0.25rem 1rem !important; +} + +.dropdown-menu li:hover { + background-color: #e9ecef; +} + +.js-plotly-plot .plotly { + border: none !important; +} + +.svg-container { + border: none !important; +} + +.svg-container > svg { + border-radius: 2rem; +} + +.plotly-graph-div { + border-radius: 5rem; +} + +@media (max-width: 991.98px) { + #quarto-sidebar-glass.show { + z-index: 10001; + } + + #quarto-sidebar { + top: 0 !important; + z-index: 10002 !important; + } + + #quarto-sidebar .sidebar-menu-container { + min-width: unset; + width: calc(100% - 32px); + } + + #quarto-sidebar.show { + max-width: calc(100vw - 32px); + width: 320px !important; + } +} diff --git a/preview-mintlify-docs.bash b/preview-mintlify-docs.bash deleted file mode 100644 index fdde934c2..000000000 --- a/preview-mintlify-docs.bash +++ /dev/null @@ -1,27 +0,0 @@ -#!/usr/bin/env bash - -echo "Running nbdev_docs..." -nbdev_docs -echo "nbdev_docs is done" - -echo "Running final-formatting.bash..." -chmod +x final-formatting.bash -./final-formatting.bash -echo "final-formatting.bash is done" - -echo "Moving necessary assets..." -cp nbs/mint.json _docs/mint.json -cp nbs/imgs/logo/dark.png _docs/dark.png -cp nbs/imgs/logo/light.png _docs/light.png -cp nbs/favicon.svg _docs/favicon.svg -mkdir _docs/docs/contribute -cp _proc/docs/contribute/contribute.md _docs/docs/contribute/contribute.mdx -cp _proc/docs/contribute/docs.md _docs/docs/contribute/docs.mdx -cp _proc/docs/contribute/issue-labels.md _docs/docs/contribute/issue-labels.mdx -cp _proc/docs/contribute/issues.md _docs/docs/contribute/issues.mdx -cp _proc/docs/contribute/step-by-step.md _docs/docs/contribute/step-by-step.mdx -cp _proc/docs/contribute/techstack.md _docs/docs/contribute/techstack.mdx -echo "Done moving necessary assets" - -cd ./_docs -mintlify dev \ No newline at end of file diff --git a/settings.ini b/settings.ini index 7361c3603..ab5f35046 100644 --- a/settings.ini +++ b/settings.ini @@ -15,7 +15,7 @@ language = English custom_sidebar = True license = apache2 status = 2 -requirements = numba>=0.55.0 numpy>=1.21.6 pandas>=1.3.5 polars scipy>=1.7.3 statsmodels>=0.13.2 tqdm fugue>=0.8.1 utilsforecast>=0.0.5 nbdev_plotly +requirements = numba>=0.55.0 numpy>=1.21.6 pandas>=1.3.5 polars scipy>=1.7.3 statsmodels>=0.13.2 tqdm fugue>=0.8.1 utilsforecast>=0.0.5 ray_requirements = fugue[ray]>=0.8.1 protobuf>=3.15.3,<4.0.0 dask_requirements = fugue[dask]>=0.8.1 spark_requirements = fugue[spark]>=0.8.1 @@ -32,5 +32,4 @@ title = %(lib_name)s black_formatting = True jupyter_hooks = True clean_ids = True -readme_nb = index.ipynb -procs = nbdev_plotly.plotly:PlotlyProc +readme_nb = index.ipynb \ No newline at end of file From 683b63c53aca33ff1ba42404ca69403419f52d70 Mon Sep 17 00:00:00 2001 From: Hahnbee Lee <55263191+hahnbeelee@users.noreply.github.com> Date: Wed, 11 Oct 2023 18:32:12 -0700 Subject: [PATCH 57/61] re-add readme --- README.md | 289 +++++++++++++++++++++++++++++------------------------- 1 file changed, 157 insertions(+), 132 deletions(-) diff --git a/README.md b/README.md index 96a610ead..61858351c 100644 --- a/README.md +++ b/README.md @@ -1,32 +1,48 @@ -# StatsForecast ⚑️ - - +# Nixtla   [![Tweet](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=Statistical%20Forecasting%20Algorithms%20by%20Nixtla%20&url=https://github.com/Nixtla/statsforecast&via=nixtlainc&hashtags=StatisticalModels,TimeSeries,Forecasting)  [![Slack](https://img.shields.io/badge/Slack-4A154B?&logo=slack&logoColor=white)](https://join.slack.com/t/nixtlacommunity/shared_invite/zt-1pmhan9j5-F54XR20edHk0UtYAPcW4KQ) + + + +[![All Contributors](https://img.shields.io/badge/all_contributors-32-orange.svg?style=flat-square)](#contributors-) + + + +