Ciência de dados doméstica – uso de energia

cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br


[Esteartigofoipublicadopelaprimeiravezem[Thisarticlewasfirstpublishedon R – scottishsnow, e gentilmente contribuiu para os R-blogueiros]. (Você pode relatar um problema sobre o conteúdo desta página aqui)


Deseja compartilhar seu conteúdo com R-blogueiros? clique aqui se você tiver um blog ou aqui se não tiver.

Escrevi anteriormente sobre o uso de eletricidade em casa. Temos um monitor de energia em casa aberto registrando nossa importação de eletricidade. Nossa casa não é típica do Reino Unido, não temos suprimento de gás e nosso aquecimento de espaço e água é por meio de uma bomba de calor de fonte de ar (que funciona com eletricidade).

No meu post anterior, mencionei que estávamos pensando em instalar o Solar PV. Recentemente, fizemos isso, mas este blog não é sobre energia solar. Também pensamos em mudar de fornecedor de energia. Nosso fornecedor atual, Ecotricity, cobra uma taxa fixa por kWh usado, com uma taxa adicional permanente. No entanto, o preço de atacado da eletricidade não é estático para os fornecedores de energia, varia ao longo do dia com base na quantidade de energia disponível e quanto os consumidores precisam / desejam usar (oferta – demanda). Normalmente, há um aumento nos custos de energia na hora do chá, quando a maioria das pessoas chega em casa do trabalho e coloca a chaleira para uma bebida e cozinha o chá. A Octopus é outro fornecedor de energia verde, mas sua tarifa ágil varia o preço da eletricidade ao longo do dia e até entre os dias.

Se você deseja mudar para o Octopus, pode usar este código de referência para nos dar um crédito de 50 libras.

Esta postagem no blog compara quanto custa nossa eletricidade da Ecotricity com quanto ela pode custar à Octopus. A Octopus publica seus preços para o ano anterior, eu tenho dois anos dos dados deles com um intervalo de 30 tempo. Tenho um pouco mais de 12 meses dos meus próprios dados de consumo em uma etapa de 10 segundos. A ecotricidade cobra uma taxa fixa, mas mudou em setembro, usei a taxa anterior (mais baixa) para minha comparação.

Para a preparação de dados, removi o ano dos dados do Octopus para comparar meu único ano de observações com vários anos. O período para o qual temos sobreposições completas é de 31/01/2019 a 20/12/2019.

Leia Também  Making Of: Uma API grátis para dados COVID-19

O código para a análise está na parte inferior da postagem.

Primeiro, como os preços variam ao longo do dia? Podemos ver que durante a maior parte do dia o polvo é muito mais barato, é apenas o pico da hora do chá pelo qual eles cobram mais. Portanto, para economizar dinheiro, a maior parte do nosso uso precisa evitar o pico da hora do chá.

preço

Como nosso uso varia ao longo do dia? Ajustei nossos 10 dados para janelas de 30 minutos para ajudar na comparação. Aquecemos a água ao meio-dia e também reabastecemos por volta das 21h, daí os picos. Nosso aquecimento ocorre por volta das 4 ou 5 da manhã, daí o uso pesado então. Nosso uso da hora do chá está alinhado com esses outros períodos pesados.

usar

E se multiplicarmos meu uso de energia pelo custo de cada hora? Como esperávamos, o polvo é mais barato na maioria das horas (pontos abaixo da linha 1: 1), mas alguns períodos são mais caros.

hourly_cost

Podemos agregar esses custos em uma etapa diária e incluir a cobrança permanente. A taxa permanente de polvo é aproximadamente 10 p por dia menor que a ecotricidade, portanto as diferenças de preço começam a se tornar bastante grandes. A seus preços de 2019, o Octopus é mais barato em todos os dias do ano. Isso é especialmente verdade no inverno, quando usamos muita eletricidade fora dos períodos de pico (para aquecimento do ambiente).

daily_cost

Qual é a diferença total ao longo do ano (31/01/2019 a 20/12/2019)? As figuras a seguir estão sem alterar nossos padrões de consumo de eletricidade. Uma redução de 30% em nossa fatura anual é enorme. Sem surpresa, solicitei uma troca de fornecedor.

  • A ecotricidade custa £ 950 durante o período.
  • O Octopus 2018 custa £ 779 pelo período.
  • O Octopus 2019 custa £ 628 pelo período.

Finalmente, se pudermos eliminar o pico das 16h às 19h, quanto poderemos economizar? Se pudermos reduzir o uso / importação de eletricidade durante esse período caro, poderemos reduzir ainda mais nossas contas. 50-60p por dia não parece muito, mas em um ano aumentará. Durante o período de 2019-01-31 a 2019-12-20, o custo de polvo das 16h às 19h seria de £ 232 a preços de 2018 e £ 198 a preços de 2019.

Leia Também  rWind está funcionando novamente! | R-bloggers
cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br

pico

Código de análise e gráficos abaixo. Provavelmente, eu deveria ter manipulado meus dados para me permitir plotar os gráficos de dispersão horária e diária com facetas em vez de retalhos. Por alguma razão, o wordpress não está exibindo pipes (%>%) corretamente, entrei em contato com o wordpress.com para saber como corrigi-lo.

# Packages
library(tidyverse)
library(readxl)
library(lubridate)
library(patchwork)

# data
tarrif_2018 = read_excel("agile_rates.2018-12-20.xlsx", sheet = "South Scotland") %>%
   select(date_2018 = date, from_2018 = from, rate_2018 = unit_rate_excl_vat) %>%
   mutate(date_2018 = date_2018 + years(1),
          date_2018 = str_sub(date_2018, 1, 10))

tarrif_2019 = read_excel("agile_rates_2019.xlsx", sheet = "South Scotland") %>%
   select(date_2019 = date, from_2019 = from, rate_2019 = unit_rate_excl_vat) %>%
   mutate(date_2019 = str_sub(date_2019, 1, 10))

f = list.files(".", pattern = "elec*")
use = lapply(f, function(i){
   read_csv(i, col_names = F) %>%
      mutate(datetime = dmy_hms(X1)) %>%
      select(datetime, Watts = X2)
})
use = do.call("rbind.data.frame", use)

use = use[!duplicated(use$datetime), ]

# Hourly price
tarrif_2018 %>%
   mutate(year = 2018) %>%
   select(year, from = from_2018, rate = rate_2018) %>%
   bind_rows(tarrif_2019 %>%
                mutate(year = 2019) %>%
                select(year, from = from_2019, rate = rate_2019)) %>%
   group_by(year, from) %>%
   summarise(rate_med = median(rate),
             rate_25 = quantile(rate, .25),
             rate_75 = quantile(rate, .75)) %>%
   mutate(from = str_sub(from, 1, 5)) %>%
   ggplot(aes(from, rate_med, colour = as.factor(year))) +
   geom_pointrange(aes(ymin = rate_25, ymax = rate_75)) +
   geom_hline(yintercept = 17.74, size = 1.2) +
   annotate("text", x = 5, y = 18.5, angle = 270,
            label = "Ecotricity 2019") +
   coord_flip() +
   scale_color_brewer(type = "qual", palette = "Dark2") +
   labs(title = "How does price vary through the day?",
        subtitle = "Octopus median and interquartile range",
        x = "Time of day",
        y = "Price (p/kWh)",
        colour = "Octopus") +
   theme_minimal() +
   theme(text = element_text(size = 15),
         plot.margin = margin(5, 10, 2, 2, "pt"))

# Chunk use to 30 min intervals
use_30 = use %>%
   mutate(mi = minute(datetime),
          mi = if_else(mi %
   group_by(date, hr, mi) %>%
   summarise(kWh = sum(kWh)) %>%
   mutate(from = paste(hr, mi, "00", sep = ":")) %>%
   ungroup()

# Hourly use
use_30 %>%
   group_by(from) %>%
   summarise(kWh_med = median(kWh),
             kWh_25 = quantile(kWh, .25),
             kWh_75 = quantile(kWh, .75)) %>%
   mutate(from = str_sub(from, 1, 5)) %>%
   ggplot(aes(from, kWh_med)) +
   geom_pointrange(aes(ymin = kWh_25, ymax = kWh_75)) +
   annotate("rect",
            xmin = "16:00", xmax = "19:00",
            ymin=0, ymax=Inf, alpha=0.2, fill="red") +
   coord_flip() +
   labs(title = "How does our use vary through the day?",
        subtitle = "Highlighted area is expensive Octopus time",
        x = "Time of day",
        y = "Use (kWh)") +
   theme_minimal() +
   theme(text = element_text(size = 15),
         plot.margin = margin(5, 10, 2, 2, "pt"))

# Join price and use
cost = use_30 %>%
   left_join(tarrif_2018, by = c(date = "date_2018",
                                 from = "from_2018")) %>%
   left_join(tarrif_2019, by = c(date = "date_2019",
                                 from = "from_2019")) %>%
   filter(!is.na(rate_2018) &
             !is.na(rate_2019)) %>%
   mutate(ecotricity = kWh * .1774,
          octopus_2018 = kWh * rate_2018 / 100,
          octopus_2019 = kWh * rate_2019 / 100)

# Hourly cost
x = cost %>%
   select(from, ecotricity, octopus_2018, octopus_2019) %>%
   gather(supplier, cost, -from) %>%
   group_by(from, supplier) %>%
   summarise(cost_med = median(cost)) %>%
   ungroup() %>%
   mutate(from = str_sub(from, 1, 5)) %>%
   spread(supplier, cost_med) %>%
   mutate(time = seq(0, 23.5, by = 0.5))

ggplot(x, aes(x = ecotricity, y = octopus_2018, colour = time)) +
   geom_point() +
   geom_abline(slope = 1) +
   scale_colour_viridis_c() +
   labs(title = "Hourly cost between suppliers",
        subtitle = "Octopus 2018",
        x = "Ecotricity (£)",
        y = "Octopus (£)",
        colour = "Hour") +
   theme_minimal() +
   theme(text = element_text(size = 15),
         plot.margin = margin(5, 10, 2, 2, "pt"),
         legend.position="none") +
   ggplot(x, aes(x = ecotricity, y = octopus_2019, colour = time)) +
   geom_point() +
   geom_abline(slope = 1) +
   scale_colour_viridis_c() +
   labs(subtitle = "Octopus 2019",
        x = "Ecotricity (£)",
        y = "Octopus (£)",
        colour = "Hour") +
   theme_minimal() +
   theme(text = element_text(size = 15),
         plot.margin = margin(5, 10, 2, 2, "pt"))

# Daily cost
cost_daily = cost %>%
   select(date, ecotricity, octopus_2018, octopus_2019) %>%
   group_by(date) %>%
   summarise(ecotricity = sum(ecotricity),
             octopus_2018 = sum(octopus_2018),
             octopus_2019 = sum(octopus_2019)) %>%
   mutate(ecotricity = ecotricity + .2959,
          octopus_2018 = octopus_2018 + .21,
          octopus_2019 = octopus_2019 + .21,
          jul = yday(as.Date(date)))

ggplot(cost_daily, aes(ecotricity, octopus_2018)) +
   geom_point(aes(colour = jul), alpha = 0.8) +
   scale_colour_viridis_c() +
   geom_abline(slope = 1) +
   labs(title = "Daily electricity cost",
        subtitle = "Octopus 2018",
        x = "Ecotricity (£)",
        y = "Octopus (£)",
        colour = "Day of year") +
   theme_minimal() +
   theme(text = element_text(size = 15),
         legend.position="none") +
   ggplot(cost_daily, aes(ecotricity, octopus_2019)) +
   geom_point(aes(colour = jul), alpha = 0.8) +
   scale_colour_viridis_c() +
   geom_abline(slope = 1) +
   labs(subtitle = "Octopus 2019",
        x = "Ecotricity (£)",
        y = "Octopus (£)",
        colour = "Day of year") +
   theme_minimal() +
   theme(text = element_text(size = 15))

# Peak use
x = cost %>%
   select(date, from, octopus_2018, octopus_2019) %>%
   filter(from %in% c("16:00:00",
                      "16:30:00",
                      "17:00:00",
                      "17:30:00",
                      "18:00:00",
                      "18:30:00",
                      "19:00:00")) %>%
   group_by(date) %>%
   summarise(octopus_2018 = sum(octopus_2018),
             octopus_2019 = sum(octopus_2019))

x %>%
   gather(year, cost, -date) %>%
   ggplot(aes(year, cost)) +
   geom_boxplot(fill = "yellow") +
   coord_flip() +
   labs(title = "How much will we spend during peak price?",
        subtitle = "Daily spread of cost between 4pm and 7pm",
        x = "",
        y = "Cost (£/day)") +
   theme_minimal() +
   theme(text = element_text(size = 15))

var vglnk = {key: ‘949efb41171ac6ec1bf7f206d57e90b8’};

Leia Também  Caros cientistas de dados - como facilitar seu trabalho!

(função (d, t) {
var s = d.createElement
s.src = ‘//cdn.viglink.com/api/vglnk.js’;
var r = d.getElementsByTagName
} (documento, ‘script’));

Para Deixe um comentário para o autor, siga o link e comente no blog: R – scottishsnow.

R-bloggers.com oferece atualizações diárias por email sobre notícias e tutoriais do R sobre o aprendizado do R e muitos outros tópicos. Clique aqui se você deseja publicar ou encontrar um emprego em ciência da dados / R.


Deseja compartilhar seu conteúdo com R-blogueiros? clique aqui se você tiver um blog ou aqui se não tiver.



cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br