(Acest articol a fost publicat pentru prima dată pe DateAgeeekși a contribuit cu drag la R-Bloggers). (Puteți raporta problema despre conținutul de pe această pagină aici)
Doriți să vă împărtășiți conținutul pe R-Bloggers? Faceți clic aici dacă aveți un blog sau aici dacă nu.
Scutirea de componente electronice cheie de la tarife este probabil să aibă un impact pozitiv despre Apple mai mult, care produce aproximativ 90% din iPhone -urile sale în China, în comparație cu alți giganți tehnologici precum Microsoft și Nvidia.
Mai mult, graficul de clustering K-Means arată că Apple a divergent un an până în prezent, în special după tarifele din 2 aprilie.
Cod sursă:
library(tidyverse)
library(tidyquant)
library(timetk)
#Apple Inc. (AAPL)
df_apple <-
tq_get("AAPL", from = "2025-01-01") %>%
tq_transmute(mutate_fun = periodReturn,
period = "daily") %>%
mutate(symbol = "Apple")
#NVIDIA Corporation (NVDA)
df_nvda <-
tq_get("NVDA", from = "2025-01-01") %>%
tq_transmute(mutate_fun = periodReturn,
period = "daily") %>%
mutate(symbol = "NVIDIA")
#Microsoft Corporation (MSFT)
df_msft <-
tq_get("MSFT", from = "2025-01-01") %>%
tq_transmute(mutate_fun = periodReturn,
period = "daily") %>%
mutate(symbol = "Microsoft")
#Merging the datasets
df_merged <-
df_apple %>%
rbind(df_nvda) %>%
rbind(df_msft)
#TS Features
tsfeature_tbl <-
df_merged %>%
group_by(symbol) %>%
tk_tsfeatures(
.date_var = date,
.value = daily.returns,
.features = c("frequency",
"stl_features",
"entropy",
"acf_features",
"mean"),
.scale = TRUE,
.prefix = "ts_"
) %>%
ungroup()
#Clustering with K-Means
set.seed(123)
cluster_tbl <- tibble(
cluster = tsfeature_tbl %>%
select(-symbol) %>%
as.matrix() %>%
kmeans(centers = 2) %>%
pluck("cluster")
) %>%
bind_cols(
tsfeature_tbl
)
#Visualize the Cluster Assignments
cluster_tbl %>%
select(cluster, symbol) %>%
right_join(df_merged, by = "symbol") %>%
group_by(symbol) %>%
plot_time_series(
date,
daily.returns,
.smooth = FALSE,
.line_size = 1,
.color_var = cluster,
.facet_ncol = 1,
.interactive = FALSE,
.title = "K-Means Clustering Chart"
) +
labs(subtitle = "Year to Date-Daily Returns") +
scale_y_continuous(labels = scales::percent) +
theme_tq(base_family = "Roboto Slab", base_size = 16) +
theme(plot.title = ggtext::element_markdown(face = "bold"),
strip.text = element_text(face = "bold"),
plot.background = element_rect(fill = "azure", color = "azure"),
legend.position = "none")
