fitgam_perda: Ajuste De Curva Para Perdas

View source: R/fitgam.r

fitgam_perdaR Documentation

Ajuste De Curva Para Perdas

Description

Estima GAM para perdas, complementando regiões inferior e superior com extrapolação

Usage

fitgam_perda(
  dat,
  ns = 10,
  ts = "ps",
  dist = gaussian(),
  extrap = c(2, 2),
  quantil = c(0.05, 0.95),
  gamctrl = list()
)

Arguments

dat

data.table de dados para ajuste. Ver Detalhes

ns

dimensão da base expandida para ajuste

ts

tipo de spline utilizada para vazão – veja smooth.terms para todas as opções

dist

objeto da classe family indicando a distribuição e link a serem usados no ajuste. Veja family e glm para mais informações.

extrap

vetor inteiro de duas posições indicando o tipo de extrapolação em cada região – um de c(0, 1, 2). Ver Detalhes

quantil

quantis para uso na extrapolação. Ver Detalhes

gamctrl

lista contendo parâmetros de controle para a estimação do modelo aditivo. Ver gam.control (ou scam.control quando usando shape constrained splines)

Details

fitgam_perda espera que alguns atributos especiais estejam presetnes no argumento dat, dentre eles: codigo, nome e vazao turbinada efetiva total da usina. Destes, apenas o último é relevante para a estimação de curva, sendo os outros dois necessários para escrita de resultados e plots. Desta forma, para garantir o funcionamento apropriado da função o objeto passado em dat deve ter sido lido e (possivelmente) agregado semanalmente pelas funções fornecidas no pacote.

Tipicamente o dado semanal não possui vazões em valores próximos de zero ou da turbinada efetiva máxima. Desta forma é comum que ajustes livres sejam altamente incoerentes nessa região. fitgam_perda permite o uso de extrapolações tanto inferiores quanto superiores através do arguemnto extrap, um vetor de duas posições indicando o tipo de extrapolação a ser executado na parte inferior e superior, nesta ordem. Os tipos de extrapolações são indicados por um valor em c(0, 1, 2)

Para tipos 1 ou 2, duas partes do dado serão seccionadas: uma correspondente às vazões inferiores a quantil[1] da vazão e outra àquelas superiores a quantil[2] da vazão. Caso seja adotada extrapolação tipo 1:

  1. Para região inferior, uma equação do tipo kQ^2 será ajustada entre a origem e o ponto de de menor perda

  2. Para região superior é feito o mesmo, porém para o ponto de maior vazão

Se for selecionada a extrapolação do tipo 2

  1. Ajusta-se uma curva kQ^2 aos pontos da região inferior

  2. Ajusta-se uma curva a + kQ^2 aos pontos da região superior

Tipo 0 corresponde à extrapolação natural, isto é, extensão do ajuste contínuo realizado sobre dat até 0 e vazão turbinada efetiva máxima. No caso da parte superior, ajustes por splines são naturalmente estruturados para projetar a última tendência de forma linear, de modo que normalmente não deve gerar problemas. No caso de extrapolação inferior, quando selecionado tipo 0 será adicionado a dat um ponto próximo a 0, nas coordenadas c(1e-3, 1e-3). Não é possível adicionar um ponto exatamente em zero pois geraria erro quando se estima um modelo com distribuição com suporte apenas nos reais positivos.

Uma vez realizadas as extrapolações, o ajuste final é composto chaveando modelos no cruzamento entre curvas. Caso não ocorra interseção, é utilizado o ponto de vazão no qual a distância entre elas seja a menor possível e um aviso será emitido.

ts permite a especificação do tipo de spline utilizada na expansão de base. Todos os tipos definidos em mgcv são suportados. Para maiores detalhes a respeito das possibilidades e suas descrições, veja smooth.terms. Por padrão é utilizado ts = "ps", o que corresponde à expansão por P-Splines.

Value

objeto gamperda contendo modelo aditivo e extrapolações estimadas

See Also

otimização da dimensão de base optgam_perda.

Other metodos gamperda: fitted.gamperda(), optgam_perda(), predict.gamperda(), residuals.gamperda()

Other plots gamperda: optgam_perda(), plot.gamperda()

Examples


dat <- agregasemana(dummydata)

# ajustes com diferentes tipos de splines (com 10 nós em todos os casos)
fit_tp <- fitgam_perda(dat, ns = 10, ts = "tp")
fit_cr <- fitgam_perda(dat, ns = 10, ts = "cr")
fit_ps <- fitgam_perda(dat, ns = 10, ts = "ps")

# valores ajustados, previsao e residuos
res <- residuals(fit_tp)
fitt <- fitted(fit_tp)
predd <- predict(fit_tp, newdata = data.frame(vazao = runif(100, 20, 150)))

# objetos retornados por fitgam_perda possuem um metodo de plot e lines, para facil visualizacao
## Not run: 
plot(fit_tp)
plot(fit_tp, fit_cr, fit_ps)

## End(Not run)


lkhenayfis/gtdp-perdaprodvar documentation built on May 4, 2022, 2:55 a.m.