1 votos

¿Cómo ponderar los factores en mi modelo?

Imagínese que mi conjunto de datos consta de tres factores relacionados, por ejemplo, con el producto interior bruto. Quiero crear un modelo que estime el PIB a partir de una ponderación porcentual de cada factor.

Si mis tres factores fueran el número de tumbonas, el consumo total de miel y el valor bursátil, querría una estimación basada en un modelo que, por ejemplo, diera una ponderación del 50% a las tumbonas y del 25% a los otros dos factores.

He pensado en estandarizar, multiplicar por x% y sumar para crear una nueva variable "compuesta". Sin embargo, no tengo una formación formal en estadística y no estoy seguro de cuáles serían los inconvenientes de esta solución. En otras palabras, también quiero saber por qué una determinada solución es una buena idea.

La aplicación, por si sirve de ayuda, es un servicio de datos orientado al consumidor. Quiero que mis clientes creen sus propios modelos utilizando sus propias ponderaciones/hipótesis sobre los datos.

0voto

jws121295 Puntos 36

He aquí una "primera puñalada". Se aplican las exenciones de responsabilidad habituales.

He aquí una simulación:

#make data

#reproducibility
set.seed(230676)

#rows of data
N <- 80  #years of GDP

#Simulated inputs
chairs <- rpois(n=N, lambda = 12)
honey  <- rnorm(n=N, mean=1, sd = 0.1)
stock  <- cumsum(rnorm(n=N, mean=500, sd=500))+ 10000

#Simulated "TRUE" Model because I don't have actual data
#   I pretend not to know the 0.01, 0.1, 1.0 terms
temp <- 0.01*chairs + 0.1*honey + 1.0*stock
epsilon <- rnorm(n=N, mean=mean(temp), sd=sd(temp))/5

#add some noise
GDP <- temp + epsilon

#least squares fit of raw data
est1 <- lm(GDP~chairs+honey+stock)

summary(est1)

Mis resultados para el "resumen" son:

> summary(est1)

Call:
lm(formula = GDP ~ chairs + honey + stock)

Residuals:
   Min     1Q Median     3Q    Max 
 -8079  -1920    163   1799   6914 

Coefficients:
             Estimate Std. Error t value Pr(>|t|)    
(Intercept) 8574.1175  3353.9718   2.556   0.0126 *  
chairs      -208.0676    95.3243  -2.183   0.0321 *  
honey        -62.6255  3264.2498  -0.019   0.9847    
stock          1.0186     0.0241  42.267   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 2695 on 76 degrees of freedom
Multiple R-squared:  0.9626,    Adjusted R-squared:  0.9611 
F-statistic: 651.1 on 3 and 76 DF,  p-value: < 2.2e-16

Así, la herramienta 'R' da alguna medida de "importancia" a través del "valor t", Pr(>|t|), error estándar residual, R^2 múltiple, estadístico F y valor p.

Son bocados, pero cada uno tiene un significado. Estúdielos para hacerse una idea de lo que un tipo de herramienta "101" desarrollada principalmente por estudiantes de posgrado de estadística considera importante.

El R^2 en torno al 96% sugiere que cuando se utiliza este modelo lineal y se comparan los errores con un modelo compuesto por una sola constante (la media), entonces este modelo lineal tiene un error típico que es unas 25 veces menor que el error típico por utilizar sólo la media.

Además, había algo oculto dentro de la "acción". Esa constante añadida se convirtió en un "intercepto". Intente cambiar la acción para que no se le añadan 10.000, y vea lo que hace a los coeficientes. Si añade "+0" al modelo lineal, cambia la forma en que se maneja esto. Una buena lección aquí es que hay que tener cuidado con la forma en que se especifica el modelo porque pueden salir cosas inesperadas de las herramientas si no se tiene cuidado.

Otra forma de ver los datos es EDA ( Enlace del NIST ). Un enfoque muy básico es un conjunto de gráficos de dispersión uno por cada interacción.

Aquí está el código:

#load the library (you may have to install it)
library(psych)

#make the plot (using data above)
pairs.panels(data.frame(GDP,chairs,honey,stock))

Mi resultado de esto es: enter image description here

La columna izquierda de los subgráficos muestra la interacción del PIB con los distintos insumos. Se puede ver que hay una relación lineal más fuerte con el "stock" en la esquina inferior izquierda. La línea roja es una línea y el coeficiente de correlación (esquina superior derecha) también es muy alto.

Una cosa que se ve aquí es que cuando el coeficiente de un efecto, como el de las sillas, es pequeño, entonces los ruidos pueden borrarlo. Sabemos que realmente está ahí en algún lugar, pero el "épsilon", el ruido aleatorio del mundo real, lo borra.

Este es realmente un punto de partida muy temprano para examinar la relación entre entradas y salidas.

Así que aquí se utiliza el AIC o el AICc corregido por el tamaño de la muestra para elegir el mejor modelo dados los datos de entrada constantes.

GDP2 <- 0.25*chairs + 0.25*honey + 0.5*stock

RSS1 <- sum((predict(est1) - GDP)^2)
k1 <- 3  #number of parameters
n1 <- N  #number of samples

AIC1 <- 2*k1 + n1*log(RSS1/n1)
AICc1 <- AIC1 +(2*k1*(k1+1))/(n1-k1-1)

RSS2 <- sum( (GDP2 - GDP)^2)

k2 <- 1  #number of parameters
n2 <- N  #number of samples

AIC2 <- 2*k2 + n2*log(RSS2/n2)
AICc2 <- AIC2 +(2*k2*(k2+1))/(n2-k2-1)

print(c(AIC1,AICc1))
print(c(AIC2,AICc2))

Para esto mi resultado es:

> print(c(AIC1,AICc1))
[1] 1265.751 1266.067

> print(c(AIC2,AICc2))
[1] 1622.278 1622.330

Tanto el AIC1 como el AICC1 son más bajos que el AIC2 y el AICc2 respectivamente, por lo que sugeriría que se prefiere inicialmente el modelo 1 (el ajuste por mínimos cuadrados).

Hay un montón de renuncias, pero aquí hay una referencia de inicio decente para el uso de AIC o AICc en este caso. ( enlace1 , enlace2 ) Hay un gran punto en la página 25 de link1, deberías comprobarlo.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X