#' @title funciones para el calculo de parametros con replicas y valores plausibles
#' @details Funciones para estimar con los datos de PISA
#' Modificado para pisa2015
#' Para medidas sin valores plausibles
#' estima.media
#' estima (d.t.ponderada, ...)
#' estima.props
#' estima.table estima.table.abs estima.table1 estima.table2
#' estima.reg
#' Para medidas con valores plausibles
#' estima.vp.media
#' estima.vp (d.t.ponderada, ...)
#' estima.vp.props
#' estima.vp.reg
#' scripts by Carlos Carleos from Universidad de Oviedo (provided by 2e …
estima.media <- function (medida="HISEI", dat=e, columnas.pesos=grep("^rwgt",names(dat)))
{
medias80 <- sapply (columnas.pesos, function (pe) weighted.mean (dat[,medida], dat[,pe], na.rm=TRUE))
estima <- weighted.mean (dat[,medida], dat$W_FSTUWT, na.rm=TRUE)
varmues <- sum ((medias80 - estima) ^ 2) / 20 # varianza muestral
d.t.estima <- sqrt (varmues)
list (estima=estima, et=d.t.estima)
}
estima <- function (estadígrafo=weighted.mean, medida="HISEI", dat=e, columnas.pesos=grep("^rwgt",names(dat)))
{
medias80 <- sapply (columnas.pesos, function (pe) estadígrafo (dat[,medida], dat[,pe], na.rm=TRUE))
estima <- estadígrafo (dat[,medida], dat$W_FSTUWT, na.rm=TRUE)
varmues <- sum ((medias80 - estima) ^ 2) / 20 # varianza muestral
d.t.estima <- sqrt (varmues)
list (estima=estima, et=d.t.estima)
}
d.t.ponderada <- function (x, p, na.rm=T, ...) sqrt (weighted.mean(x^2,p,na.rm=na.rm, ...) - weighted.mean(x,p,na.rm=na.rm,...) ^ 2)
var.ponderada <- function (x, p, na.rm=T, ...) (weighted.mean(x^2,p,na.rm=na.rm, ...) - weighted.mean(x,p,na.rm=na.rm,...) ^ 2)
estima2 <- function (estadígrafo=cor.ponderada, medida1="PV1CPRO", medida2="PV1MATH", dat=e, columnas.pesos=grep("^rwgt",names(dat)), ...)
{
medias80 <- sapply (columnas.pesos,
function (pe) estadígrafo (dat[,medida1], dat[,medida2], dat[,pe], use="pair", ...))
estima <- estadígrafo (dat[,medida1], dat[,medida2], dat$W_FSTUWT, use="pair", ...)
varmues <- sum ((medias80 - estima) ^ 2) / 20 # varianza muestral
d.t.estima <- sqrt (varmues)
list (estima=estima, et=d.t.estima)
}
cov.ponderada <- function (x, y, p, use="pair", ...)
{
índices <- !is.na(x) & !is.na(y) & !is.na(p); xx <- x[índices]; yy <- y[índices]; pp <- p[índices]
weighted.mean (xx*yy - weighted.mean(xx,pp,...) * weighted.mean(yy,pp,...), pp, ...) # como use="pair"
}
cor.ponderada <- function (x, y, p, use="pair", ...)
{
índices <- !is.na(x) & !is.na(y) & !is.na(p); xx <- x[índices]; yy <- y[índices]; pp <- p[índices]
weighted.mean (xx*yy - weighted.mean(xx,pp,...) * weighted.mean(yy,pp,...), pp, ...) /
d.t.ponderada (xx, pp, ...) / d.t.ponderada (yy, pp, ...)
}
cor.ponderada.pais <- function (x, y, p, use="pair", cond, ...)
{
índices <- !is.na(x) & !is.na(y) & !is.na(p) & !is.na(cond)
x1 <- x[índices]; y1 <- y[índices]; p1 <- p[índices]; cond1 <- cond[índices]
db <- by (data.frame (x=x1, y=y1, p=p1), cond1,
function (d) c (weighted.mean (d$x, d$p),
weighted.mean (d$y, d$p),
1)) #pai'ses pesan igual; si no: sum (d$p)))
xx <- sapply (db, function (x) x[1])
yy <- sapply (db, function (x) x[2])
pp <- sapply (db, function (x) x[3])
weighted.mean (xx*yy - weighted.mean(xx,pp,...) * weighted.mean(yy,pp,...), pp, ...) /
d.t.ponderada (xx, pp, ...) / d.t.ponderada (yy, pp, ...)
}
estima.cor <- function (estadígrafo=cor.ponderada, medidas=c("PV1CPRO","PV1MATH","PV1READ","PV1SCIE"),
dat=e, columnas.pesos=grep("^rwgt",names(dat)))
{
resul <- outer (medidas, medidas,
Vectorize (function (medida1, medida2) paste (signif (as.numeric (estima2 (estadígrafo=estadígrafo, medida1=medida1, medida2=medida2,
dat=dat, columnas.pesos=columnas.pesos))),
collapse="±")))
dimnames (resul) <- list (medidas, medidas)
resul
}
estima.cor1 <- function (estadígrafo=cor.ponderada, medidas=c("PV1CPRO","PV1MATH","PV1READ","PV1SCIE"),
dat=e, columnas.pesos=grep("^rwgt",names(dat)))
## so'lo la estima sin error ti'pico, como nu'mero
{
resul <- outer (medidas, medidas,
Vectorize (function (medida1, medida2) (as.numeric (estima2 (estadígrafo=estadígrafo, medida1=medida1, medida2=medida2,
dat=dat, columnas.pesos=columnas.pesos) [1]))
))
dimnames (resul) <- list (medidas, medidas)
resul
}
corcond.ponderada <- function (x, y, p, cond, use="pair", ...)
{
índices <- !is.na(x) & !is.na(y) & !is.na(p) & !is.na(cond)
xx <- x[índices]; yy <- y[índices]; pp <- p[índices]; cc <- cond[índices]
rxx <- resid (lm (xx ~ cc))#, weights = pp))
ryy <- resid (lm (yy ~ cc))#, weights = pp))
cor.ponderada (rxx, ryy, pp, ...)
}
estima2.cond <- function (estadígrafo=corcond.ponderada, medida1="PV1CPRO", medida2="PV1MATH", cond="CNT",
dat=e, columnas.pesos=grep("^rwgt",names(dat)))
{
medias80 <- sapply (columnas.pesos, function (pe) estadígrafo (dat[,medida1], dat[,medida2], dat[,pe],
dat[,cond], use="pair"))
estima <- estadígrafo (dat[,medida1], dat[,medida2], dat$W_FSTUWT, use="pair")
varmues <- sum ((medias80 - estima) ^ 2) / 20 # varianza muestral
d.t.estima <- sqrt (varmues)
list (estima=estima, et=d.t.estima)
}
prop.ponderada <- function (categoría)
function (x, p, ...) weighted.mean (x==categoría, p, ...)
frec.ponderada <- function (categoría)
function (x, p, ...) sum (x==categoría, ...) # ¿no se usan los pesos!
estima.prop <- function (categoría=1,estadígrafo=prop.ponderada(categoría),
medida="ST03Q01", dat=e, columnas.pesos=grep("^rwgt",names(dat)))
{
medias80 <- sapply (columnas.pesos, function (pe) estadígrafo (dat[,medida], dat[,pe], na.rm=TRUE))
estima <- estadígrafo (dat[,medida], dat$W_FSTUWT, na.rm=TRUE)
varmues <- sum ((medias80 - estima) ^ 2) / 20 # varianza muestral
d.t.estima <- sqrt (varmues)
list (estima=estima, et=d.t.estima)
}
estima.props <- function (medida="ST03Q01", dat=e, columnas.pesos=grep("^rwgt",names(dat))){
if(is.null(levels(dat[,medida]))){
lev<-unique(dat[,medida])
}else{
lev<-levels(dat[,medida])
}
sapply(lev, function (cate) estima.prop (cate, medida=medida, dat=dat, columnas.pesos=columnas.pesos))
}
estima.prop.pura <- function (categoría, estadígrafo=prop.ponderada(categoría),
medida, dat=e, columnas.pesos=grep("^rwgt",names(dat)))
{
medias80 <- sapply (columnas.pesos, function (pe) estadígrafo (medida, dat[,pe], na.rm=TRUE))
estima <- estadígrafo (medida, dat$W_FSTUWT, na.rm=TRUE)
varmues <- sum ((medias80 - estima) ^ 2) / 20 # varianza muestral
d.t.estima <- sqrt (varmues)
paste (signif(estima), "(", signif(d.t.estima), ")")
}
## con pocos decimales
estima.prop.pura. <- function (categoría, estadígrafo=prop.ponderada(categoría),
medida, dat=e, columnas.pesos=grep("^rwgt",names(dat)))
{
medias80 <- sapply (columnas.pesos, function (pe) estadígrafo (medida, dat[,pe], na.rm=TRUE))
estima <- estadígrafo (medida, dat$W_FSTUWT, na.rm=TRUE)
varmues <- sum ((medias80 - estima) ^ 2) / 20 # varianza muestral
d.t.estima <- sqrt (varmues)
round(100*estima,1)
}
estima.frec.pura <- function (categoría, estadígrafo=frec.ponderada(categoría),
medida, dat=e, columnas.pesos=grep("^rwgt",names(dat)))
{
medias80 <- sapply (columnas.pesos, function (pe) estadígrafo (medida, dat[,pe], na.rm=TRUE))
estima <- estadígrafo (medida, dat$W_FSTUWT, na.rm=TRUE)
varmues <- sum ((medias80 - estima) ^ 2) / 20 # varianza muestral
d.t.estima <- sqrt (varmues)
signif(estima)
}
estima.table <- function (medida1="ST03Q01", medida2="ST04Q01", dat=e, columnas.pesos=grep("^rwgt",names(dat)), ...)
{
resul <- outer(levels(dat[,medida1]),
levels(dat[,medida2]),
Vectorize (function (cate1, cate2) estima.prop.pura (categoría=paste(cate1,cate2),
medida=ifelse(!is.na(dat[,medida1])&!is.na(dat[,medida2]),paste(dat[,medida1],dat[,medida2]),NA),
dat=dat, columnas.pesos=columnas.pesos)))
dimnames (resul) <- list (levels(dat[,medida1]), levels(dat[,medida2]))
resul
}
## con pocos decimales
estima.table. <- function (medida1="ST03Q01", medida2="ST04Q01",
dat=e, columnas.pesos=grep("^rwgt",names(dat)), ...)
{
resul <- outer(levels(dat[,medida1]),
levels(dat[,medida2]),
Vectorize (function (cate1, cate2) estima.prop.pura. (categoría=paste(cate1,cate2),
medida=ifelse(!is.na(dat[,medida1])&!is.na(dat[,medida2]),paste(dat[,medida1],dat[,medida2]),NA),
dat=dat, columnas.pesos=columnas.pesos)))
dimnames (resul) <- list (levels(dat[,medida1]), levels(dat[,medida2]))
resul
}
estima.table.abs <- function (medida1="ST03Q01", medida2="ST04Q01", dat=e, columnas.pesos=grep("^rwgt",names(dat)), ...)
{
resul <- outer(levels(dat[,medida1]),
levels(dat[,medida2]),
Vectorize (function (cate1, cate2) estima.frec.pura (categoría=paste(cate1,cate2),
medida=paste(dat[,medida1],dat[,medida2]),
dat=dat, columnas.pesos=columnas.pesos)))
dimnames (resul) <- list (levels(dat[,medida1]), levels(dat[,medida2]))
resul
}
estima.table1 <- function (medida1, medida2, dat, columnas.pesos = grep ("^rwgt", names (dat)), ...)
{
resul <- outer(levels(dat[,medida1]),
levels(dat[,medida2]),
Vectorize (function (cate1, cate2) estima.frec.pura (categoría=paste(cate1,cate2),
medida=paste(dat[,medida1],dat[,medida2]),
dat=dat, columnas.pesos=columnas.pesos)))
dimnames (resul) <- list (levels(dat[,medida1]), levels(dat[,medida2]))
cbind (t (apply (resul, 1, function (x) x/sum(x))), N = apply (resul, 1, sum))
}
estima.table2 <- function (medida1, medida2, dat, columnas.pesos = grep ("^rwgt", names (dat)), ...)
{
resul <- outer(levels(dat[,medida1]),
levels(dat[,medida2]),
Vectorize (function (cate1, cate2) estima.frec.pura (categoría=paste(cate1,cate2),
medida=paste(dat[,medida1],dat[,medida2]),
dat=dat, columnas.pesos=columnas.pesos)))
dimnames (resul) <- list (levels(dat[,medida1]), levels(dat[,medida2]))
rbind (apply (resul, 2, function (x) x/sum(x)), N = apply (resul, 2, sum))
}
estima.cond <- function (estadígrafo=weighted.mean, medida, dat, cond, columnas.pesos=grep("rwgt",names(dat)))
## estima por grupos según "cond"
{
lista.de.listas <- by (dat, dat[cond], function (x) estima (estadígrafo=estadígrafo, medida=medida, dat=x, columnas.pesos=columnas.pesos))
lista.de.vectores <- lapply (lista.de.listas, function (lista) {aux <- as.numeric(lista); names(aux) <- names(lista); aux})
as.data.frame (lista.de.vectores)
}
estima.reg <- function (dep="PV1CPRO", ind=c("ST04Q01","ESCS"), dat, columnas.pesos=grep("rwgt",names(dat)))
{
fórmula <- as.formula (paste (dep, "~", paste (ind, collapse="+")))
medias80 <- sapply (columnas.pesos, function (x) {dat$pesos <- dat[,x]; c (coef (reg <- lm (fórmula, data=dat, weights=pesos)), R2=summary(reg)$r.squared)})
estima <- c (coef (reg <- lm (fórmula, data=dat, weights=W_FSTUWT)), R2=summary(reg)$r.squared)
varmues0 <- apply (medias80, 2, function (x) x - estima)
varmues <- apply (varmues0, 1, function (x) sum (x^2) / 20)
d.t.estima <- sqrt (varmues)
list (estimas=estima, et=d.t.estima)
}
estima.reg.1 <- function (dep="PV1CPRO", ind=c("ST04Q01","ESCS"), dat, columnas.pesos=grep("rwgt",names(dat)))
## sin intercepto
{
fórmula <- as.formula (paste (dep, "~", paste (ind, collapse="+"), "-1"))
medias80 <- sapply (columnas.pesos, function (x) {dat$pesos <- dat[,x];
c (coef (reg <- lm (fórmula, data=dat, weights=pesos)),
R2=summary(reg)$r.squared)})
estima <- c (coef (reg <- lm (fórmula, data=dat, weights=W_FSTUWT)), R2=summary(reg)$r.squared)
varmues0 <- apply (medias80, 2, function (x) x - estima)
varmues <- apply (varmues0, 1, function (x) sum (x^2) / 20)
d.t.estima <- sqrt (varmues)
list (estimas=estima, et=d.t.estima)
}
estima.vp.media <- function (medida="math.y", dat=e, columnas.pesos=grep("rwgt",names(dat)))
{
columnas.vp <- grep (paste ("^pv.", medida, "$", sep=""), names(dat))
#print(columnas.pesos)
#print(columnas.vp)
medias80x5 <- outer (columnas.pesos, columnas.vp, Vectorize (function (pe, vp) weighted.mean (dat[,vp], dat[,pe])))
medias5vp <- apply (dat[,columnas.vp], 2, function (x) weighted.mean (x, dat$W_FSTUWT))
var5vp <- apply ((medias80x5 - outer (rep(1,80), medias5vp)) ^ 2, 2, sum) / 20
estima <- mean (medias5vp)
d.t.estima <- sqrt (mean (var5vp) + 1.2 * sum ((medias5vp - estima) ^ 2) / 4)
list (estima=estima, et=d.t.estima)
}
estima.vp <- function (estadígrafo=weighted.mean, medida="CPRO", dat=e, columnas.pesos=grep("rwgt",names(dat)))
{
columnas.vp <- grep (paste ("^pv.", medida, "$", sep=""), names(dat))
medias80x5 <- outer (columnas.pesos, columnas.vp, Vectorize (function (pe, vp) estadígrafo (dat[,vp], dat[,pe])))
medias5vp <- apply (dat[,columnas.vp], 2, function (x) estadígrafo (x, dat$W_FSTUWT))
var5vp <- apply ((medias80x5 - outer (rep(1,80), medias5vp)) ^ 2, 2, sum) / 20
estima <- mean (medias5vp)
d.t.estima <- sqrt (mean (var5vp) + 1.2 * sum ((medias5vp - estima) ^ 2) / 4)
list (estima=estima, et=d.t.estima)
}
estima.vp.prop <- function (categoría=1, estadígrafo=prop.ponderada(categoría),
medida="mlev", dat=e, columnas.pesos=grep("rwgt",names(dat)))
{
columnas.vp <- grep (paste("^",medida,".$",sep=""), names(dat))
medias80x5 <- outer (columnas.pesos, columnas.vp, Vectorize (function (pe, vp) estadígrafo (dat[,vp], dat[,pe])))
medias5vp <- apply (dat[,columnas.vp], 2, function (x) estadígrafo (x, dat$W_FSTUWT))
var5vp <- apply ((medias80x5 - outer (rep(1,80), medias5vp)) ^ 2, 2, sum) / 20
estima <- mean (medias5vp)
d.t.estima <- sqrt (mean (var5vp) + 1.2 * sum ((medias5vp - estima) ^ 2) / 4)
list (estima=estima, et=d.t.estima)
}
estima.vp.props <- function (medida="mlev", dat=e, columnas.pesos=grep("^rwgt",names(dat)))
t(sapply(levels(as.factor(dat[,grep(paste("^",medida,".$",sep=""), names(dat))[1]])),
function (cate) estima.vp.prop (cate, medida=medida, dat=dat, columnas.pesos=columnas.pesos)))
estima.vp.cond <- function (estadígrafo=weighted.mean, medida, dat, cond, columnas.pesos=grep("rwgt",names(dat)))
{
lista.de.listas <- by (dat, dat[cond], function (x) estima.vp (estadígrafo=estadígrafo, medida=medida, dat=x, columnas.pesos=columnas.pesos))
lista.de.vectores <- lapply (lista.de.listas, function (lista) {aux <- as.numeric(lista); names(aux) <- names(lista); aux})
as.data.frame (lista.de.vectores)
}
estima.vp.cor15 <- function (estadígrafo=cor.ponderada, medida1="HISEI", medida5="CPRO", dat=e, columnas.pesos=grep("rwgt",names(dat)))
## correlación entre valor único y valor con plausibles
{
columnas.vp <- grep (paste ("^pv.", medida5, "$", sep=""), names(dat))
medias80x5 <- outer (columnas.pesos, columnas.vp,
Vectorize (function (pe, vp) estadígrafo (dat[,medida1], dat[,vp], dat[,pe])))
medias5vp <- apply (dat[,columnas.vp], 2, function (x) estadígrafo (dat[,medida1],x, dat$W_FSTUWT))
var5vp <- apply ((medias80x5 - outer (rep(1,80), medias5vp)) ^ 2, 2, sum) / 20
estima <- mean (medias5vp)
d.t.estima <- sqrt (mean (var5vp) + 1.2 * sum ((medias5vp - estima) ^ 2) / 4)
list (estima=estima, et=d.t.estima)
}
estima.vp.cor55 <- function (estadígrafo=cor.ponderada, medida1="CPRO", medida2="MATH", dat=e, columnas.pesos=grep("rwgt",names(dat)))
## correlación entre dos medidas con valores plausibles
{
columnas.vp1 <- grep (paste ("^pv.", medida1, "$", sep=""), names(dat))
columnas.vp2 <- grep (paste ("^pv.", medida2, "$", sep=""), names(dat))
medias80x5 <- outer (columnas.pesos, 1:5,
Vectorize (function (pe, vp) estadígrafo (dat[,columnas.vp1[vp]], dat[,columnas.vp2[vp]], dat[,pe])))
medias5vp <- sapply (1:5, function (x) estadígrafo (dat[,columnas.vp1[x]], dat[,columnas.vp2[x]], dat$W_FSTUWT))
var5vp <- apply ((medias80x5 - outer (rep(1,80), medias5vp)) ^ 2, 2, sum) / 20
estima <- mean (medias5vp)
d.t.estima <- sqrt (mean (var5vp) + 1.2 * sum ((medias5vp - estima) ^ 2) / 4)
list (estima=estima, et=d.t.estima)
}
estima.vp.reg <- function (dep="SCIE", ind=c("ST04Q01","ESCS"), dat, columnas.pesos=grep("rwgt",names(dat)))
{
fórmulas <- sapply (1:5, function (i) as.formula (paste ("PV", i, dep, "~", paste (ind, collapse="+"), sep="")))
medias80x5x <- array (NA, c (80, 5, 1 + sum (sapply (ind, function(x) ifelse(is.factor(dat[[x]]),length(levels(dat[[x]]))-1,1))) + 1))
for (pe in 1:80) for (vp in 1:5)
medias80x5x[pe,vp,] <- {fórmula <- fórmulas[[vp]];
dat$pesos <- dat[,columnas.pesos[pe]];
c (coef (reg <- lm (fórmula, data=dat, weights=pesos)),
R2=summary(reg)$r.squared)}
estima5vp <- sapply (1:5, function (i) {fórmula <- fórmulas[[i]];
c (coef (reg <- lm (fórmula, data=dat, weights=W_FSTUWT)), R2=summary(reg)$r.squared)})
dimnames (medias80x5x) [[3]] <- dimnames (estima5vp) [[1]]
varmues0 <- sapply (1:80, function (i) medias80x5x[i,,] - t(estima5vp), simplify="array") # valor: array 5xPx80
var5vp <- apply (varmues0, c(1,2), function(x) sum (x^2)/20)
estima <- apply (estima5vp, 1, mean)
d.t.estima <- sqrt (apply (var5vp, 2, mean) + 1.2 * apply ((estima5vp - estima) ^ 2, 1, sum) / 4)
list (estimas=estima, et=d.t.estima)
}
estima.vp2.reg <- function (dep="SCIE", ind=c("ST04Q01","ESCS"), indvp=c("MATH","READ"), dat, columnas.pesos=grep("rwgt",names(dat)))
# valores plausibles tambie'n entre las independientes
{
fórmulas <- sapply (1:5, function (i) as.formula (paste0 ("PV", i, dep,
"~",
paste (ind, collapse="+"),
"+",
paste0 ("PV", i, indvp, collapse="+"))))
medias80x5x <- array (NA, c (80, 5, 1 + sum (sapply (c(ind,indvp), function(x) ifelse(is.factor(dat[[x]]),length(levels(dat[[x]]))-1,1))) + 1))
for (pe in 1:80) for (vp in 1:5)
medias80x5x[pe,vp,] <- {fórmula <- fórmulas[[vp]];
dat$pesos <- dat[,columnas.pesos[pe]];
c (coef (reg <- lm (fórmula, data=dat, weights=pesos)),
R2=summary(reg)$r.squared)}
estima5vp <- sapply (1:5, function (i) {fórmula <- fórmulas[[i]];
c (coef (reg <- lm (fórmula, data=dat, weights=W_FSTUWT)), R2=summary(reg)$r.squared)})
dimnames (medias80x5x) [[3]] <- dimnames (estima5vp) [[1]]
varmues0 <- sapply (1:80, function (i) medias80x5x[i,,] - t(estima5vp), simplify="array") # valor: array 5xPx80
var5vp <- apply (varmues0, c(1,2), function(x) sum (x^2)/20)
estima <- apply (estima5vp, 1, mean)
d.t.estima <- sqrt (apply (var5vp, 2, mean) + 1.2 * apply ((estima5vp - estima) ^ 2, 1, sum) / 4)
list (estimas=estima, et=d.t.estima)
}
### ejemplos
## estima.media (medida="PV1CPRO", dat=e)
## estima (d.t.ponderada, medida="PV1CPRO", dat=e)
## estima (d.t.ponderada, medida="PV1CPRO", dat=subset(e,ST04Q01=="Female"))
## estima.props ("ST04Q01", e)
## estima.table ("ST04Q01", "ST05Q01", e)
## estima.table.abs ("ST04Q01", "ST05Q01", e)
## estima.table1 ("ST04Q01", "ST05Q01", e)
## estima.table2 ("ST04Q01", "ST05Q01", e)
## estima.cond (medida="PV1CPRO", dat=e, cond="ST04Q01")
## estima.cor (medidas=c("PV1CPRO","PV1MATH","PV1READ"), dat=e)
## estima.reg("BSMJ",c("ST03Q01","HISEI"),dat=deu)
## estima.vp.media ("MATH", e)
## estima.vp.media ("READ", e)
## estima.vp.media ("SCIE", e)
## estima.vp.media ("CPRO", e)
## estima.vp (d.t.ponderada, "CPRO", e)
## estima.vp.props ("mlev", dat=lev) # proporciones en "mlev" (nivel de rendimiento)
## estima.vp.cond (medida="CPRO", dat=e, cond="ST04Q01")
## estima.vp.cor15 (medida1 = c("HISEI"), medida5="SCIE", dat=bel)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.