fitgam_perda | R Documentation |
Estima GAM para perdas, complementando regiões inferior e superior com extrapolação
fitgam_perda( dat, ns = 10, ts = "ps", dist = gaussian(), extrap = c(2, 2), quantil = c(0.05, 0.95), gamctrl = list() )
dat |
|
ns |
dimensão da base expandida para ajuste |
ts |
tipo de spline utilizada para vazão – veja |
dist |
objeto da classe |
extrap |
vetor inteiro de duas posições indicando o tipo de extrapolação em cada região –
um de |
quantil |
quantis para uso na extrapolação. Ver Detalhes |
gamctrl |
lista contendo parâmetros de controle para a estimação do modelo aditivo. Ver
|
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:
Para região inferior, uma equação do tipo kQ^2 será ajustada entre a origem e o ponto de de menor perda
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
Ajusta-se uma curva kQ^2 aos pontos da região inferior
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.
objeto gamperda
contendo modelo aditivo e extrapolações estimadas
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()
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)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.