Ingineria caracteristicilor în R
Jorge Zazueta
Research Professor and Head of the Modeling Group at the School of Economics, UASLP
Ingineria caracteristicilor este arta și știința de a
variabile pentru a îmbunătăți performanța și interpretabilitatea modelelor.
Înălțimea unui obiect în funcție de timp
# A tibble: 100 × 2
time height
<dbl> <dbl>
1 0 0
2 0.101 3.85
3 0.202 17.7
4 0.303 15.1
5 0.404 20.0
6 0.505 32.6
7 0.606 30.8
8 0.707 26.6
9 0.808 33.8
10 0.909 39.2
# ... with 90 more rows
# ℹ Use `print(n = ...)` to see more rows
Creăm un model de regresie simplu pentru înălțime
lr_height <- lm(height ~ time,
data = height)
și îl reprezentăm grafic pentru a evalua acuratețea vizual.
df <- height %>%
bind_cols(lr_pred = predict(lr_height))
df %>%
ggplot(aes(x = time, y = height)) +
geom_point() +
geom_line(aes(y = lr_pred),
color = "blue", lwd = .75)+
theme_classic()
Modelul nostru nu reușește să reprezinte datele!
Regresie liniară: înălțime vs. timp.

Înălțimea unui obiect urmează o traiectorie parabolică dată de formula:
$y(t) = y_0 + v_0t - \frac{g}{2}t^2$.
Unde $y$ reprezintă înălțimea obiectului la momentul $t$, iar $y_0$, $v_0$ și $g$ sunt, respectiv, înălțimea inițială, viteza și accelerația gravitațională.
Putem ajusta modelul, recunoscând dependența înălțimii atât de timp, cât și de pătratul timpului.
mutate() primește un cadru de date ca prim argument și definiția unei noi variabile de adăugat.
df_2 <- df %>% mutate(time_2 = time^2)
# A tibble: 100 × 4
time height lr_pred time_2
<dbl> <dbl> <dbl> <dbl>
1 0 0 80.8 0
2 0.101 3.85 80.9 0.0102
3 0.202 17.7 81.0 0.0408
4 0.303 15.1 81.1 0.0918
Creăm un alt model de regresie, folosind noua caracteristică împreună cu cea originală.
lr_height_2 <-
lm(height ~ time + time_2, data = df_2)
Și reprezentăm grafic noua predicție.
df_2 <- df_2 %>%
bind_cols(lr2_pred = predict(lr_height_2))
df_2 %>%
ggplot(aes(x = time, y = height)) +
geom_point() +
geom_line(aes(y = lr2_pred),
col = "blue", lwd = .75) +
theme_classic()
O îmbunătățire remarcabilă fără a schimba modelul.
Înălțime vs. timp și time_2

Ingineria caracteristicilor în R