Pesos de los componentes del QualityScore en Google Ads

El llamado QualityScore tiene su relevancia en Google Ads. Es un indicador con valores entre 1 y 10 asignado por Google que se basa en tres variables que están descritas por ahí: PostClickQualityScore SearchPredictedCtr CreativeQualityScore Se trata de variables categóricas con tres niveles: en / por encima de / por debajo de la media. Haciendo modelo <- lm(QualityScore ~ PostClickQualityScore + SearchPredictedCtr + CreativeQualityScore, data = tmp) summary(modelo) se obtiene Call: lm(formula = QualityScore ~ PostClickQualityScore + SearchPredictedCtr + CreativeQualityScore, data = tmp) Residuals: Min 1Q Median 3Q Max -0.25003 -0.07395 0.00775 0.06344 0.86470 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 1.079603 0.008688 124.3 <2e-16 *** PostClickQualityScoreAVERAGE 2.114012 0.009037 233.9 <2e-16 *** PostClickQualityScoreABOVE_AVERAGE 3.856228 0.008448 456.5 <2e-16 *** SearchPredictedCtrAVERAGE 1.137396 0.003284 346.4 <2e-16 *** SearchPredictedCtrABOVE_AVERAGE 3.055694 0.004707 649.2 <2e-16 *** CreativeQualityScoreAVERAGE 0.999580 0.004274 233.9 <2e-16 *** CreativeQualityScoreABOVE_AVERAGE 2.000725 0.003862 518.1 <2e-16 *** --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 0.1574 on 11426 degrees of freedom Multiple R-squared: 0.9915, Adjusted R-squared: 0.9915 F-statistic: 2.212e+05 on 6 and 11426 DF, p-value: < 2.2e-16 Que no merece mayor explicación. Creo.

7 de marzo de 2019 · Carlos J. Gil Bellosta

Colinealidad y posterioris

En esta entrada voy a crear un conjunto de datos donde dos variables tienen una correlación muy alta, ajustar un modelo de regresión y obtener la siguiente representación de la distribución a posteriori de los coeficientes, donde se aprecia el efecto de la correlación entre x1 y x2. El código, library(mvtnorm) library(rstan) library(psych) n <- 100 corr_coef <- .9 x <- rmvnorm(n, c(0, 0), sigma = matrix(c(1, corr_coef, corr_coef, 1), 2, 2)) plot(x) x1 <- x[,1] x2 <- x[,2] x3 <- runif(n) - 0.5 y <- 1 + .4 * x1 - .2 * x2 + .1 * x3 + rnorm(n, 0, .1) summary(lm(y ~ x1 + x2 + x3)) stan_code <- " data { int N; vector[N] y; vector[N] x1; vector[N] x2; vector[N] x3; } parameters { real a; real a1; real a2; real a3; real sigma; } model { a ~ cauchy(0,10); a1 ~ cauchy(0,2.5); a2 ~ cauchy(0,2.5); a3 ~ cauchy(0,2.5); y ~ normal(a + a1 * x1 + a2 * x2 + a3 * x3, sigma); }" datos_stan <- list( N = n, y = y, x1 = x1, x2 = x2, x3 = x3 ) fit2 <- stan(model_code = stan_code, data = datos_stan, iter = 10000, warmup = 2000, chains = 2, thin = 4) res <- as.data.frame(fit2) pairs.panels(res[, c("a", "a1", "a2", "a3", "sigma")])

16 de noviembre de 2018 · Carlos J. Gil Bellosta

GBM (III): Más allá de las pérdidas cuadráticas

Liberados del estrecho ámbito de nuestra original mentira sugerente gracias a la relación que descubrimos entre residuos y gradientes cuando las pérdidas son cuadráticas podemos adentrarnos en ámbitos más extensos. Lo que discutimos del gradiente tiene una interpretación fácilmente inteligible en el caso de pérdidas cuadráticas. Pero ni la pérdida de interpretabilidad nos impide extender el razonamiento de la entrada anterior a funciones de pérdida distintas de la cuadrática siempre que podamos calcular un gradiente. ...

24 de junio de 2016 · Carlos J. Gil Bellosta

El cincuenta en raya (y el tres en raya)

Supongo que todos conocéis el tres en raya. El cincuenta en (casi) raya, sin embargo, es esto: Hay dos variables, (pluviosidad y ratio hombres/mujeres) y los cincuenta punticos casi en raya corresponden a los estados de EE.UU. ¿Asombrosa correlación? No tanto. Aquí se discute cómo, en realidad, por su cercanía sociocultural y climática cada uno de los estados del gráfico son manifestaciones de tres grupos de ellos que, estos sí, esta? en raya (¿casualmente?). ...

21 de abril de 2016 · Carlos J. Gil Bellosta