Önemli olanın fiziksel olarak gerçekçi, pratik olarak faydalı bir enerji maliyeti modeli geliştirmek olduğunu belirtmek isterim . Bu, maliyetlerdeki değişiklikleri saptamak için ham verilerin görselleştirilmesinden daha iyi sonuç verecektir. Bunu SO'da sunulan çözümle karşılaştırarak , bir eğriyi veriye uydurma ve anlamlı bir istatistiksel analiz yapma arasındaki fark konusunda çok güzel bir vaka çalışmamız var .
(Bu öneri, on yıl önce kendi hane halkı kullanımım için böyle bir modele uymaya ve bu dönemdeki değişiklikleri izlemek için uygulamaya dayanmaya dayanmaktadır. Model uygun olduğunda, izleme amacıyla bir e-tabloda kolayca hesaplanabileceğini unutmayın. bu nedenle e-tablo yazılımının (in) özellikleriyle sınırlı hissetmemeliyiz.)
Bu veriler için, fiziksel olarak akla yatkın bir model, basit bir alternatif modelden (günlük kullanımın aylık ortalama sıcaklığa göre ikinci dereceden en küçük karelere uyması) enerji maliyetlerinin ve kullanım şekillerinin oldukça farklı bir resmini üretir . Sonuç olarak, daha basit model, enerji kullanım modellerini anlamak, tahmin etmek veya karşılaştırmak için güvenilir bir araç olarak kabul edilemez.
analiz
Newton'un Soğutma Yasası, iyi bir yaklaşımla, ısıtma maliyetinin (bir süre boyunca) dış sıcaklık ile iç sıcaklık arasındaki farkla doğru orantılı olması gerektiğini söylüyor . Bu orantısallık sabiti . Soğutma maliyeti de bu sıcaklık farkıyla orantılı olmalıdır ve benzer - fakat zorunlu olarak aynı değil - orantısallık sabiti - . (Bunların her biri, evin yalıtım kapasitesi ve ısıtma ve soğutma sistemlerinin verimliliği ile belirlenir.)tt0- αβ
Tahmin ve (birim zamanda derecesi başına kilowatt (veya dolar) olarak ifade edilmiştir), gerçekleştirilebilir en önemli şeylerden arasındadırαβ onlar sağlayacak çünkü tahmin gelecekteki maliyetleri yanı sıra verimliliği ölçmek, ev ve enerji sistemleri.
Bu veriler toplam elektrik kullanımı olduğundan, aydınlatma, pişirme, bilgi işlem ve eğlence gibi ısıtma dışı maliyetleri içerir. Ayrıca ilgi, diyeceğim bu ortalama baz enerji kullanımının (birim zaman başına) bir tahminidir : ne kadar enerjiden tasarruf edilebileceğine dair bir zemin sağlar ve bilinen büyüklükte verimlilik iyileştirmeleri yapıldığında gelecekteki maliyetlerin tahmin edilmesini sağlar . (Örneğin, dört yıl sonra fırını% 30 daha verimli olduğu iddia edilen bir fırınla değiştirdim - ve aslında tam olarak buydu.)γ
Son olarak, (brüt) bir yaklaşım olarak, evin yıl boyunca neredeyse sabit bir sıcaklıkta korunduğunu varsayacağım . (Kişisel , sırasıyla kış ve yaz için üzere iki sıcaklık varsayıyorum - ancak bu örnekte her ikisini de güvenilir bir şekilde tahmin etmek için yeterli veri yok ve yine de oldukça yakın olacaklar.) Bunu bilmek değer, evin önemli bir enerji tasarrufu seçeneği olan biraz farklı bir sıcaklıkta tutmanın sonuçlarını değerlendirmesine yardımcı olur.t0t0≤t1
Veriler tek başına önemli ve ilginç bir komplikasyon ortaya koyuyor : dış sıcaklıkların dalgalandığı dönemlerde toplam maliyetleri yansıtıyorlar - ve genellikle her ay yıllık aralıklarının yaklaşık dörtte biri kadar dalgalanıyorlar. Göreceğimiz gibi, bu sadece tarif edilen doğru altta yatan anlık model ile aylık toplamların değerleri arasında önemli bir fark yaratır . Etki özellikle hem ısıtma hem de soğutmanın gerçekleştiği aylar arasında telaffuz edilir. Bu varyasyonu hesaba katmayan herhangi bir model, enerji maliyetlerini yanlışlıkla ortalama sıcaklığa sahip herhangi bir ay boyunca baz oran gama'da "düşünecektir" , ancak gerçek çok farklıdır.γt0
Aralıkları dışında aylık sıcaklık dalgalanmaları hakkında ayrıntılı bilgi sahibi değiliz. Bunu pratik, ancak biraz tutarsız bir yaklaşımla ele almayı öneriyorum. Aşırı sıcaklıklar dışında, her ay genellikle sıcaklıkta kademeli artış veya düşüşler yaşanır. Bu, dağıtımı yaklaşık olarak eşit kabul edebileceğimiz anlamına gelir. Tekdüze bir değişkenin aralığı uzunluğuna sahip olduğunda , bu değişkenin standart sapması . I (aralıkları dönüştürmek için bu ilişki kullanmak için standart sapma). Ama sonra, esasen güzel bir model elde etmek için, bu aralıkların uçlarındaki değişimi NormalLs=L/6–√Avg. LowAvg. Highdağılımlar (bu tahmini SD'ler ve araçları ile birlikte Avg. Temp).
Son olarak, verileri ortak bir birim zamana göre standartlaştırmalıyız. Daily kWh Avg.Değişkende zaten mevcut olmasına rağmen, hassasiyetten yoksun, bu yüzden kayıp hassasiyeti geri kazanmak için toplamı gün sayısına bölünelim.
Bu nedenle, soğutma birimi zamanlı modeli maliyeti bir dış sıcaklıkta olduğuYt
y(t)=γ+α(t−t0)I(t<t0)+β(t−t0)I(t>t0)+ε(t)
burada gösterge fonksiyonudur ve bu modelde başka şekilde açıkça yakalanmayan her şeyi temsil eder. Tahmin etmek için dört parametresi vardır: ve . (Gerçekten eminseniz, değerini tahmin etmek yerine düzeltebilirsiniz.)Iεα,β,γt0t0
Bildirilen bir zaman periyodu boyunca, toplam maliyetlerin için sıcaklığı süresi değişir nedenle olacakx0x1t(x)x
Cost(x0,x1)=∫x1x0y(t)dt=∫x1x0(γ+α(t(x)−t0)I(t(x)<t0)+β(t(x)−t0)I(t(x)>t0)+ε(t(x)))t′(x)dx.
Model hiç iyi değilse, deki dalgalanmalar sıfıra yakın bir değerine ortalama ve aydan aya rasgele değişmiş gibi görünecektir. cinsinden dalgalanmaların ortalama (aylık ortalama) ve standart sapma (daha önce aylık aralıktan verildiği gibi normal dağılımı ile integral verimiε(t)ε¯t(x)t¯s(t¯)
y¯(t¯)=γ+(β−α)s(t¯)2ϕs(t¯−t0)+(t¯−t0)(β+(α−β)Φs(t0−t¯))+ε¯(t¯).
Bu formülde, sıfır ortalaması ve standart sapması Normal değişkeninin kümülatif dağılımıdır ; yoğunluğu.Φss(t¯)ϕ
Model uydurma
Bu model, maliyetler ve sıcaklık arasında doğrusal olmayan bir ilişki ifade etse de, ve değişkenlerinde doğrusaldır . Bununla birlikte, doğrusal olmadığı ve bilinmediği için doğrusal olmayan bir montaj prosedürüne ihtiyacımız var. Göstermek için, basit bir şekilde , ortalama sıfır ve ortak standart sapma normal dağılımları ile , bağımsız ve aynı şekilde dağıldığı varsayılarak, bir olasılık maksimizatörüne .α,β,γt0t0Rε¯σ
Bu veriler için tahminler
(α^,β^,γ^,t0^,σ^)=(−1.489,1.371,10.2,63.4,1.80).
Bunun anlamı:
Isıtma maliyeti yaklaşık kWh / gün / derece F'dir.1.49
Soğutma maliyeti yaklaşık kWh / gün / derece F'dir. Soğutma biraz daha verimlidir.1.37
Baz (ısıtma / soğutma hariç) enerji kullanımı kWh / gün'dür. (Bu sayı oldukça belirsizdir; ek veriler daha iyi tespit edilmesine yardımcı olacaktır.)10.2
Ev derece F'ye yakın bir sıcaklıkta tutulur.63.4
Modelde açıkça dikkate alınmayan diğer varyasyonlar, standart kWh / gün sapmaya sahiptir .1.80
Bu tahminlerdeki güven aralıkları ve diğer nicelik belirsizlik ifadeleri, maksimum olasılık makineleri ile standart yollarla elde edilebilir.
görüntüleme
Bu modeli göstermek için, aşağıdaki şekil verileri, altta yatan modeli, aylık ortalamalara uyumu ve basit en küçük kareler ikinci dereceden uyumu çizer.

Aylık veriler koyu haçlar olarak gösterilir. Üzerinde bulundukları yatay gri çizgiler aylık sıcaklık aralıklarını gösterir. Newton yasasını yansıtan temel modelimiz, sıcaklıkta buluşan kırmızı ve mavi çizgi segmentleri ile gösterilir . Verilere uyumumuz bir eğri değildir , çünkü sıcaklık aralıklarına bağlıdır. Bu nedenle münferit koyu mavi ve kırmızı noktalar olarak gösterilmiştir. (Bununla birlikte, aylık aralıklar çok fazla değişmediği için, bu noktalar bir eğri izliyor gibi görünmektedir - kesikli kuadratik eğri ile neredeyse aynıdır.) Son olarak, kesikli eğri kuadratik en küçük kareler (karanlık haçlara sığar) ).t0
Özellikle orta sıcaklıklarda, uyumların altta yatan (anlık) modelden ne kadar ayrıldığına dikkat edin! Bu aylık ortalamalamanın etkisidir. (Kırmızı ve mavi çizgilerin yüksekliklerinin her yatay gri segmente "bulaştığını" düşünün. Aşırı sıcaklıklarda her şey çizgilere odaklanır, ancak orta sıcaklıklarda "V" nin iki tarafının ortalaması alınır ve ihtiyacı yansıtır bazı zamanlarda ısıtma ve ay boyunca diğer zamanlarda soğutma için.)
Model karşılaştırması
İki uyum - burada titizlikle geliştirilen ve basit, kolay, karesel uyum - hem birbirleriyle hem de veri noktalarıyla yakından anlaşıyor. İkinci dereceden uyum o kadar iyi değil, ama yine de iyi: ayarlanmış ortalama kalıntısı (üç parametre için) kWh / gün iken, Newton'un yasa modelinin (dört parametre için) ayarlanmış ortalama kalıntısı kWh / gün, yaklaşık% 5 daha düşük. Tek yapmanız gereken veri noktalarına bir eğri çizmekse, ikinci dereceden uyumun sadeliği ve göreceli doğruluğu bunu tavsiye eder.2.071.97
Ancak, neler olduğunu öğrenmek için ikinci dereceden uyum tamamen işe yaramaz! Formülü,
y¯(t¯)=219.95−6.241t¯+0.04879(t¯)2,
hiçbir kullanımın doğrudan olmadığını gösterir. Adil olmak gerekirse, bunu biraz analiz edebiliriz:
Bu, tepe noktası olan bir parabolt^0=6.241/(2×0.04879)=64.0 derece F'de . Bunu sabit ev sıcaklığının bir tahmini olarak alabiliriz. İlk tahminimizden önemli ölçüde farklı değil.63.4derece. Bununla birlikte, bu sıcaklıkta öngörülen maliyet219.95−6.241(63.4)+0.04879(63.4)2=20.4kWh / gün. Bu, Newton Yasasına uygun temel enerji kullanımının iki katıdır .
Isıtma veya soğutmanın marjinal maliyeti, türevin mutlak değerinden elde edilir, y¯′(t¯)=−6.241+2(0.04879)t¯. Örneğin, bu formülü kullanarak, dış hava sıcaklığı olduğunda bir evin ısıtılmasının maliyetini tahmin ederiz.90 derece −6.241+2(0.04879)(90)=2.54kWh / gün / derece F Bu, Newton Yasası ile tahmin edilen değerin iki katıdır .
Benzer şekilde, evi açık bir sıcaklıkta ısıtmanın maliyeti 32 derece olarak tahmin edilir |−6.241+2(0.04879)(32)|=3.12kWh / gün / derece F Bu, Newton Yasası ile tahmin edilen değerin iki katından fazladır.
Orta sıcaklıklarda, ikinci dereceden uyum diğer yöne doğru uzanır. Gerçekten de,60 için 68derece aralığı , bu ortalama sıcaklık,50 derece ve sıcak 78derece. (Bu gönderiyi okuyan çok az insanın ısısı hala50 derece (=10 C dereceleri)!)
Kısacası, görselleştirmede neredeyse iyi görünse de , kuadratik uyum, enerji kullanımı ile ilgili temel ilgi miktarlarını tahmin etmede büyük ölçüde erir. Bu nedenle kullanımdaki değişiklikleri değerlendirmek için kullanımı sorunludur ve cesaret kırılmalıdır.
Hesaplama
Bu Rkod tüm bilgi işlem ve çizimleri gerçekleştirdi. Benzer veri kümelerine kolayca uyarlanabilir.
#
# Read and process the raw data.
#
x <- read.csv("F:/temp/energy.csv")
x$Daily <- x$Usage / x$Length
x <- x[order(x$Temp), ]
#pairs(x)
#
# Fit a quadratic curve.
#
fit.quadratic <- lm(Daily ~ Temp+I(Temp^2), data=x)
# par(mfrow=c(2,2))
# plot(fit.quadratic)
# par(mfrow=c(1,1))
#
# Fit a simple but realistic heating-cooling model with maximum likelihood.
#
response <- function(theta, x, s) {
alpha <- theta[1]; beta <- theta[2]; gamma <- theta[3]; t.0 <- theta[4]
x <- x - t.0
gamma + (beta-alpha)*s^2*dnorm(x, 0, s) + x*(beta + (alpha-beta)*pnorm(-x, 0, s))
}
log.L <- function(theta, y, x, s) {
# theta = (alpha, beta, gamma, t.0, sigma)
# x = time
# s = estimated SD
# y = response
y.hat <- response(theta, x, s)
sigma <- theta[5]
sum((((y - y.hat) / sigma) ^2 + log(2 * pi * sigma^2))/2)
}
theta <- c(alpha=-1, beta=5/4, gamma=20, t.0=65, sigma=2) # Initial guess
x$Spread <- (x$Temp.high - x$Temp.low)/sqrt(6) # Uniform estimate
fit <- nlm(log.L, theta, y=x$Daily, x=x$Temp, x$Spread)
names(fit$estimate) <- names(theta)
#$
# Set up for plotting.
#
i.pad <- 10
plot(range(x$Temp)+c(-i.pad,i.pad), c(0, max(x$Daily)+20), type="n",
xlab="Temp", ylab="Cost, kWh/day",
main="Data, Model, and Fits")
#
# Plot the data.
#
l <- matrix(mapply(function(l,r,h) {c(l,h,r,h,NA,NA)},
x$Temp.low, x$Temp.high, x$Daily), 2)
lines(l[1,], l[2,], col="Gray")
points(x$Temp, x$Daily, type="p", pch=3)
#
# Draw the models.
#
x0 <- seq(min(x$Temp)-i.pad, max(x$Temp)+i.pad, length.out=401)
lines(x0, cbind(1, x0, x0^2) %*% coef(fit.quadratic), lwd=3, lty=3)
#curve(response(fit$estimate, x, 0), add=TRUE, lwd=2, lty=1)
t.0 <- fit$estimate["t.0"]
alpha <- fit$estimate["alpha"]
beta <- fit$estimate["beta"]
gamma <- fit$estimate["gamma"]
cool <- "#1020c0"; heat <- "#c02010"
lines(c(t.0, 0), gamma + c(0, -alpha*t.0), lwd=2, lty=1, col=cool)
lines(c(t.0, 100), gamma + c(0, beta*(100-t.0)), lwd=2, lty=1, col=heat)
#
# Display the fit.
#
pred <- response(fit$estimate, x$Temp, x$Spread)
points(x$Temp, pred, pch=16, cex=1, col=ifelse(x$Temp < t.0, cool, heat))
#lines(lowess(x$Temp, pred, f=1/4))
#
# Estimate the residual standard deviations.
#
residuals <- x$Daily - pred
sqrt(sum(residuals^2) / (length(residuals) - 4))
sqrt(sum(resid(fit.quadratic)^2) / (length(residuals) - 3))