Comment représenter la consommation de kWh par an par rapport à la température moyenne?

9

Juste pour le plaisir, je veux représenter ma consommation mensuelle d'électricité d'une année à l'autre. Cependant, je souhaite inclure une référence à la température mensuelle afin de pouvoir déterminer si ma maison ou mon comportement s'améliore, s'aggrave ou se maintient en ce qui concerne l'utilisation du kWh.

Les données avec lesquelles je travaille:

+----------+--------+-----------+----------------+----------+-----------+------------+
|  Month   | # Days | kWh Usage | Daily kWh Avg. | Avg. Low | Avg. High | Avg. Temp. |
+----------+--------+-----------+----------------+----------+-----------+------------+
| Mar 2015 |     32 |      1048 |             33 |       40 |        60 |         50 |
| Feb 2015 |     29 |      1156 |             40 |       32 |        54 |         43 |
| Jan 2015 |     33 |      1143 |             35 |       38 |        57 |         47 |
| Dec 2014 |     30 |       887 |             30 |       39 |        61 |         50 |
| Nov 2014 |     29 |       645 |             22 |       45 |        67 |         56 |
| Oct 2014 |     29 |       598 |             21 |       60 |        78 |         69 |
| Sep 2014 |     32 |       893 |             28 |       70 |        85 |         77 |
| Aug 2014 |     30 |       965 |             32 |       72 |        87 |         79 |
| Jul 2014 |     29 |       784 |             27 |       72 |        87 |         79 |
| Jun 2014 |     32 |      1018 |             32 |       69 |        87 |         78 |
| May 2014 |     30 |       702 |             23 |       63 |        82 |         72 |
| Apr 2014 |     33 |       722 |             22 |       50 |        71 |         60 |
| Mar 2014 |     29 |       830 |             29 |       41 |        62 |         52 |
| Feb 2014 |     28 |      1197 |             43 |       32 |        52 |         42 |
| Jan 2014 |     33 |      1100 |             33 |       38 |        59 |         49 |
| Dec 2013 |     30 |       856 |             29 |       40 |        63 |         51 |
| Nov 2013 |     33 |       686 |             21 |       48 |        70 |         59 |
| Oct 2013 |     30 |       527 |             18 |       61 |        77 |         69 |
| Sep 2013 |     30 |       817 |             27 |       69 |        86 |         77 |
| Aug 2013 |     28 |       991 |             35 |       72 |        86 |         79 |
| Jul 2013 |     31 |       993 |             32 |       73 |        86 |         79 |
| Jun 2013 |     30 |       847 |             28 |       66 |        83 |         74 |
| May 2013 |     29 |       605 |             21 |       59 |        76 |         67 |
| Apr 2013 |     34 |       791 |             23 |       47 |        66 |         57 |
+----------+--------+-----------+----------------+----------+-----------+------------+

J'ai commencé avec un graphique à colonnes comparant facilement les valeurs d'un mois à l'autre:

Graphique à colonnes d'utilisation mensuelle

J'ai imaginé une belle zone d'arrière-plan ou un graphique linéaire mappé sur un axe vertical secondaire (à droite) montrant les plages hautes / basses, mais j'ai réalisé que ce serait problématique avec les regroupements pluriannuels.

Ce serait facile avec une seule année:

2014 kWh Utilisation avec températures

Je suis curieux de savoir si quelqu'un peut recommander un moyen de combiner toutes les données annuelles dans un seul graphique avec des comparaisons de température?

Y a-t-il un ratio que je pourrais utiliser qui pourrait effectivement relier l'utilisation de kWh à la température moyenne ... ou une autre technique d'affichage que je néglige ... ou suis-je coincé avec un graphique par an?

Shawn
la source

Réponses:

18

Je voudrais suggérer que l'important est de développer un modèle de coût énergétique physiquement réaliste et pratique . Cela fonctionnera mieux pour détecter les changements de coûts que n'importe quelle visualisation des données brutes peut accomplir. En comparant cela à la solution offerte sur SO , nous avons une très belle étude de cas dans la différence entre l' ajustement d'une courbe aux données et la réalisation d'une analyse statistique significative.

(Cette suggestion est basée sur l'adaptation d'un tel modèle à mon utilisation domestique il y a dix ans et sur son application pour suivre les changements au cours de cette période. Notez qu'une fois le modèle adapté, il peut facilement être calculé dans une feuille de calcul à des fins de suivi. changements, nous ne devons donc pas nous sentir limités par les capacités (in) du tableur.)

Pour ces données, un tel modèle physiquement plausible produit une image sensiblement différente des coûts énergétiques et des modèles d'utilisation qu'un modèle alternatif simple (un ajustement quadratique des moindres carrés de l'utilisation quotidienne par rapport à la température moyenne mensuelle). Par conséquent, le modèle plus simple ne peut pas être considéré comme un outil fiable pour comprendre, prévoir ou comparer les modèles de consommation d'énergie.


Une analyse

La loi du refroidissement de Newton dit que, pour une bonne approximation, le coût du chauffage (pendant une unité de temps) devrait être directement proportionnel à la différence entre la température extérieure et la température intérieure . Que cette constante de proportionnalité soit . Le coût du refroidissement devrait également être proportionnel à cette différence de température, avec une constante de proportionnalité similaire, mais pas nécessairement identique . (Chacun d'eux est déterminé par la capacité d'isolation de la maison ainsi que par l'efficacité des systèmes de chauffage et de refroidissement.)tt0αβ

L'estimation de et (qui sont exprimés en kilowatts (ou en dollars) par degré par unité de temps) sont parmi les choses les plus importantes qui peuvent être accomplies,αβ car elles nous permettent de prédire les coûts futurs, ainsi que de mesurer l'efficacité des maison et ses systèmes énergétiques.

Étant donné que ces données représentent la consommation totale d'électricité, elles incluent les coûts non liés au chauffage tels que l'éclairage, la cuisine, l'informatique et les divertissements. Est également intéressante une estimation de cette consommation d'énergie de base moyenne (par unité de temps), que j'appellerai : elle fournit un plancher sur la quantité d'énergie pouvant être économisée et permet des prévisions des coûts futurs lorsque des améliorations d'efficacité d'une ampleur connue sont apportées . (Par exemple, après quatre ans, j'ai remplacé un four par un qui prétendait être 30% plus efficace - et c'était exactement cela.)γ

Enfin, en tant qu'approximation (brute), je suppose que la maison est maintenue à une température presque constante tout au long de l'année. (Dans mon modèle personnel, je suppose deux températures, , respectivement pour l'hiver et l'été - mais il n'y a pas encore suffisamment de données dans cet exemple pour les estimer de manière fiable et elles seraient de toute façon assez proches.) La valeur aide à évaluer les conséquences du maintien de la maison à une température légèrement différente, ce qui est une option d'économie d'énergie importante.t0t0t1

Les données présentent une complication particulièrement importante et intéressante : elles reflètent les coûts totaux pendant les périodes où les températures extérieures fluctuent - et elles fluctuent beaucoup, généralement environ un quart de leur fourchette annuelle chaque mois. Comme nous le verrons, cela crée une différence substantielle entre le modèle instantané sous-jacent correct qui vient d'être décrit et les valeurs des totaux mensuels. L'effet est particulièrement prononcé dans les mois intermédiaires, où le chauffage et le refroidissement ont lieu (ou aucun). Tout modèle qui ne prend pas en compte cette variation "penserait" à tort que les coûts énergétiques devraient être au taux de base pendant n'importe quel mois avec une température moyenne de , mais la réalité est très différente.γt0

Nous ne disposons pas (facilement) d'informations détaillées sur les fluctuations de température mensuelles en dehors de leurs plages. Je propose de gérer cela avec une approche pratique, mais un peu incohérente. Sauf aux températures extrêmes, chaque mois connaîtra généralement une augmentation ou une diminution progressive de la température. Cela signifie que nous pouvons considérer que la distribution est approximativement uniforme. Lorsque la plage d'une variable uniforme a une longueur , cette variable a un écart type de . J'utilise cette relation pour convertir les plages (de à ) en écarts-types. Mais ensuite, essentiellement pour obtenir un modèle bien comporté, je diminuerai la variation aux extrémités de ces plages en utilisant NormalLs=L/6Avg. LowAvg. Highdistributions (avec ces écarts-types estimés et les moyens donnés par Avg. Temp).

Enfin, nous devons standardiser les données à une unité de temps commune. Bien que cela soit déjà présent dans la Daily kWh Avg.variable, il manque de précision, alors divisons plutôt le total par le nombre de jours afin de récupérer la précision perdue.

Ainsi, le modèle des coûts de refroidissement unitaires-temps à une température extérieure de estYt

y(t)=γ+α(tt0)I(t<t0)+β(tt0)I(t>t0)+ε(t)

où est la fonction d'indicateur et représente tout ce qui n'est pas autrement explicitement capturé dans ce modèle. Il a quatre paramètres à estimer: et . (Si vous êtes vraiment sûr de vous pouvez fixer sa valeur plutôt que de l'estimer.)Iεα,β,γt0t0

Les coûts totaux déclarés pendant une période de temps à lorsque la température varie avec le temps seront doncx0x1t(x)x

Cost(x0,x1)=x0x1y(t)dt=x0x1(γ+α(t(x)t0)I(t(x)<t0)+β(t(x)t0)I(t(x)>t0)+ε(t(x)))t(x)dx.

Si le modèle est bon du tout, les fluctuations de devraient être moyennes à une valeur proche de zéro et sembleront changer aléatoirement d'un mois à l'autre. Approximation des fluctuations de avec une distribution normale de la moyenne (la moyenne mensuelle) et de l'écart-type (comme précédemment donné à partir de la plage mensuelle) et en faisant les rendements intégralesε(t)ε¯t(x)t¯s(t¯)

y¯(t¯)=γ+(βα)s(t¯)2ϕs(t¯t0)+(t¯t0)(β+(αβ)Φs(t0t¯))+ε¯(t¯).

Dans cette formule, est la distribution cumulative d'une variable normale de moyenne nulle et d'écart type ; est sa densité.Φss(t¯)ϕ


Ajustement du modèle

Ce modèle, bien qu'exprimant une relation non linéaire entre les coûts et la température, est néanmoins linéaire dans les variables et . Cependant, comme il n'est pas linéaire en et que n'est pas connu, nous avons besoin d'une procédure d'ajustement non linéaire. Pour illustrer cela, je l'ai simplement vidé dans un maximiseur de vraisemblance (utilisé pour le calcul), en supposant que les sont indépendants et distribués de manière identique, avec des distributions normales de zéro moyen et de l'écart-type commun .α,β,γt0t0Rε¯σ

Pour ces données, les estimations sont

(α^,β^,γ^,t0^,σ^)=(1.489,1.371,10.2,63.4,1.80).

Ça signifie:

  • Le coût de chauffage est d'environ kWh / jour / degré F.1.49

  • Le coût de refroidissement est d'environ kWh / jour / degré F. Le refroidissement est un peu plus efficace.1.37

  • La consommation d'énergie de base (hors chauffage / refroidissement) est de kWh / jour. (Ce nombre est assez incertain; des données supplémentaires aideront à mieux le cerner.)10.2

  • La maison est maintenue à une température proche de degrés F.63.4

  • Les autres variations non explicitement prises en compte dans le modèle ont un écart type de kWh / jour.1.80

Les intervalles de confiance et d'autres expressions quantitatives de l'incertitude dans ces estimations peuvent être obtenus de manière standard avec le mécanisme du maximum de vraisemblance.


Visualisation

Pour illustrer ce modèle, la figure suivante trace les données, le modèle sous-jacent, l'ajustement aux moyennes mensuelles et un ajustement quadratique des moindres carrés simple.

Figure

Les données mensuelles sont représentées par des croix sombres. Les lignes grises horizontales sur lesquelles elles reposent indiquent les plages de températures mensuelles. Notre modèle sous-jacent, reflétant la loi de Newton, est illustré par les segments de ligne rouge et bleu se rencontrant à une température de . Notre ajustement aux données n'est pas une courbe , car cela dépend des plages de température. Il est donc représenté par des points individuels bleu et rouge. (Néanmoins, parce que les plages mensuelles ne varient pas beaucoup, ces points semblent tracer une courbe - presque la même que la courbe quadratique en pointillés.) Enfin, la courbe en pointillés est la forme quadratique des moindres carrés (aux croix sombres ).t0

Remarquez à quel point les ajustements s'écartent du modèle sous-jacent (instantané), en particulier aux températures moyennes! C'est l'effet de la moyenne mensuelle. (Pensez aux hauteurs des lignes rouges et bleues "étalées" sur chaque segment gris horizontal. Aux températures extrêmes, tout est centré sur les lignes, mais à des températures moyennes, les deux côtés du "V" sont moyennés ensemble, reflétant le besoin pour le chauffage à certains moments et le refroidissement à d'autres moments au cours du mois.)


Comparaison de modèles

Les deux ajustements - celui soigneusement développé ici et l'ajustement quadratique simple, facile - s'accordent étroitement à la fois entre eux et avec les points de données. L'ajustement quadratique n'est pas aussi bon, mais il est tout de même décent: son résiduel moyen ajusté (pour trois paramètres) est de kWh / jour, tandis que le résidu moyen ajusté du modèle de loi de Newton (pour quatre paramètres) est de kWh / jour, environ 5% de moins. Si tout ce que vous voulez faire est de tracer une courbe à travers les points de données, la simplicité et la fidélité relative de l'ajustement quadratique le recommandent.2.071.97

Cependant, l'ajustement quadratique est totalement inutile pour apprendre ce qui se passe! Sa formule,

y¯(t¯)=219.956.241t¯+0.04879(t¯)2,

ne révèle rien d'utile directement. En toute honnêteté, nous pourrions l'analyser un peu:

  1. Il s'agit d'une parabole avec un sommet à degrés F. Nous pourrions prendre cela comme une estimation de la température constante de la maison. Il ne diffère pas significativement de notre première estimation de degrés. Cependant, le coût prévu à cette température est de kWh / jour. C'est deux fois la consommation d'énergie de base compatible avec la loi de Newton.t^0=6.241/(2×0.04879)=64.063.4219.956.241(63.4)+0.04879(63.4)2=20.4

  2. Le coût marginal de chauffage ou de refroidissement est obtenu à partir de la valeur absolue de la dérivée, . Par exemple, en utilisant cette formule, nous le coût de chauffage d'une maison lorsque la température extérieure est de degrés à kWh / jour / degré F. C'est le double de la valeur estimée avec celle de Newton. Loi . 90-6,241+2(0,04879)(90)=2,54y¯(t¯)=6.241+2(0.04879)t¯906.241+2(0.04879)(90)=2.54

    De même, le coût de chauffage de la maison à une température extérieure de degrés serait estimé à kWh / jour / degré F. C'est plus du double de la valeur estimée avec la loi de Newton.| - 6,241 + 2 ( 0,04879 ) ( 32 ) | = 3,1232|6.241+2(0.04879)(32)|=3.12

    Aux températures moyennes, l'ajustement quadratique se trompe dans l'autre sens. En effet, à son sommet dans la plage de à degrés, il prédit des coûts marginaux de chauffage ou de refroidissement presque nuls, même si cette température moyenne comprend des jours aussi froids que degrés et aussi chauds que degrés. (Peu de gens lisant ce post auront toujours leur chaleur à degrés (= degrés C)!)68 50 78 50 10606850785010

En bref, bien qu'il semble presque aussi bon dans la visualisation, l'ajustement quadratique se trompe grossièrement dans l'estimation des quantités fondamentales d'intérêt liées à la consommation d'énergie. Son utilisation pour évaluer les changements d'utilisation est donc problématique et doit être découragée.


Calcul

Ce Rcode a effectué tout le calcul et le traçage. Il peut facilement être adapté à des ensembles de données similaires.

#
# 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))
whuber
la source
4
C'est peut-être la meilleure réponse à toutes les questions de débordement de pile que j'ai lues. J'apprécie beaucoup le temps pris pour expliquer la logique et le raisonnement derrière la solution.
Shawn
1
La physique est plus velue que ça. Le condenseur et l'évaporateur changent de rôle dans le chauffage contre le refroidissement. Cela signifie qu'ils agissent comme deux systèmes différents, pas un continu. Les degrés-jours de chauffage, les degrés-jours de refroidissement et les degrés-jours de déshumidification sont trois inducteurs de coûts distincts, et selon l'emplacement géographique (pensez à ak, wi, ca, az, mo et fl) et l'année peut agir de manière discontinue (la fin de la saison de chauffage n'est pas pas le même que le début du refroidissement). Des statistiques décentes sur les données indiquent qu'il y a 5 saisons, pas 4. Mai est sa propre saison, au moins au cours des 5 dernières années.
EngrStudent
@EngrStudent Tous les bons points et très appréciés. Je maintiens que l'approche présentée ici, bien que simplifiée, montre ce qui est nécessaire pour jeter les bases pour démêler ces effets plus subtils. Une fois que vous avez géré les grands termes du modèle - et je pense que personne ne niera que la température doit être un contributeur dominant aux coûts - alors, si vous l'avez fait de manière physiquement significative, vous pourrez peut-être identifier d'autres termes et peut-être même estimer avec précision leurs effets. Si vous ne traitez pas correctement les grands termes, vous n'avez aucun espoir de caractériser les autres.
whuber
J'adore cette bonne base / analyse, veuillez l'entendre comme des applaudissements, pas des critiques. Le processus de chauffage est différent du refroidissement, de sorte que le quadratique non par morceaux des deux côtés pourrait être en contradiction avec cela. Le serpentin d'évaporateur est à l'intérieur pendant le refroidissement et à l'extérieur pendant le chauffage. Dans la pompe à chaleur, il existe également un cycle de dégivrage et une "chaleur d'appoint". De plus, le compresseur doit travailler plus dur pour lutter contre une température extérieure plus extrême, donc non seulement vous déplacez plus de chaleur, vous le déplacez vers le haut d'une colline plus élevée. Ce n'est pas linéaire. L'humidité est grande et peut représenter les 2/3 du budget énergétique. Infiltration d'air.
EngrStudent
@EngrStudent Merci encore - ce sont tous des points intéressants. Je ne savais pas que l'humidité pouvait représenter une si grande proportion du budget. C'est le genre d'observation qui illustre la valeur potentielle du couplage d'une bonne théorie (ou "modèle conceptuel" dans certains cercles) avec l'analyse statistique.
whuber
0

J'ai reçu une réponse sur StackOverflow . Si quelqu'un a des idées supplémentaires, je suis toujours très intéressé par des solutions alternatives.

/programming/29777890/data-visualization-how-to-represent-kwh-usage-by-year-against-average-temperatu

Shawn
la source
1
La solution sur SO est invraisemblable. La loi de Newton du refroidissement , qui est une approximation raisonnable de premier ordre utile comme point de départ, suggère que le graphique de l'utilisation d'énergie en fonction de la température devrait être l'union de deux lignes (peut-être de pentes différentes). La moyenne cache des variations de température quotidiennes (et même horaires) qui brouilleront la région à l'intersection de ces lignes (où ni chauffage ni refroidissement ne sont nécessaires). Un ajustement quadratique peut être raisonnable là-bas, mais asymptotiquement, l'ajustement doit être linéaire .
whuber
Je sais que les moyennes sont floues, mais ce sont les données dont je dispose. En raison d'une mauvaise compréhension des statistiques, je n'arrive pas à saisir les phrases "devrait être l'union de deux lignes ..." et "asymptotiquement l'ajustement doit être linéaire" . D'un point de vue novice, le poste SO semble intuitif car il correspond à mon attente que la consommation d'énergie augmente aux extrémités opposées de l'échelle de température tout en étant la plus basse dans les moyennes où ni chauffage ni refroidissement n'étaient nécessaires. Un ajustement quadratique ne serait-il pas symétrique? Je ne pense pas que la consommation d'énergie soit symétrique, car nous utilisons plus d'énergie pour chauffer que pour refroidir. J'apprécie toutes corrections ou conseils.
Shawn
Un ajustement quadratique, bien que symétrique, n'est pas physique aux extrêmes, car il dit que vous paierez beaucoup plus pour le chauffage aux températures les plus basses, et beaucoup plus pour le refroidissement aux températures les plus élevées, que ce n'est physiquement plausible. De plus, la symétrie dans la parcelle ne serait attendue que lorsque le coût de refroidissement de la maison par degré est le même que le coût de chauffage par degré, ce qui suppose que les systèmes de chauffage et de refroidissement sont tout aussi efficaces. Cela pourrait ou non être le cas - mais vous ne devriez pas imposer cette symétrie à votre modèle.
whuber
Je suis d'accord qu'il diffère car il coûte plus cher pour refroidir que pour chauffer par degré. Cependant, si je comprends bien le premier commentaire, suggérez-vous que l'ajustement quadratique du message SO - bien que raisonnable - n'est pas vraiment précis et qu'un ajustement linéaire est la réponse techniquement correcte en raison de la loi de Newtons sur le refroidissement? C'est l' invraisemblance de la solution SO que je n'arrive pas à comprendre.
Shawn
1
Je ne pouvais pas tout à fait adapter ma réponse à cette dernière question dans l'espace pour un commentaire, alors je l'ai plutôt affichée comme réponse. Je ne vois pas comment vous inférez que les coûts de refroidissement par degré sont supérieurs aux coûts de chauffage par degré, cependant. Vos données semblent indiquer le contraire est vrai (bien que les coûts soient assez proches, comme on pourrait s'y attendre). Et veuillez noter qu'un modèle linéaire n'implique pas un ajustement linéaire ! Il se passe beaucoup de choses ici pour que les données s'écartent systématiquement de ce modèle sous-jacent.
whuber