library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.4     ✔ readr     2.1.5
## ✔ forcats   1.0.0     ✔ stringr   1.5.2
## ✔ ggplot2   4.0.0     ✔ tibble    3.3.0
## ✔ lubridate 1.9.4     ✔ tidyr     1.3.1
## ✔ purrr     1.1.0     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(tidymodels)
## ── Attaching packages ────────────────────────────────────── tidymodels 1.4.1 ──
## ✔ broom        1.0.9     ✔ rsample      1.3.1
## ✔ dials        1.4.2     ✔ tailor       0.1.0
## ✔ infer        1.0.9     ✔ tune         2.0.0
## ✔ modeldata    1.5.1     ✔ workflows    1.3.0
## ✔ parsnip      1.3.3     ✔ workflowsets 1.1.1
## ✔ recipes      1.3.1     ✔ yardstick    1.3.2
## ── Conflicts ───────────────────────────────────────── tidymodels_conflicts() ──
## ✖ scales::discard() masks purrr::discard()
## ✖ dplyr::filter()   masks stats::filter()
## ✖ recipes::fixed()  masks stringr::fixed()
## ✖ dplyr::lag()      masks stats::lag()
## ✖ yardstick::spec() masks readr::spec()
## ✖ recipes::step()   masks stats::step()
library(DataExplorer)
library(readxl)
library(psych)
## 
## Attaching package: 'psych'
## 
## The following objects are masked from 'package:scales':
## 
##     alpha, rescale
## 
## The following objects are masked from 'package:ggplot2':
## 
##     %+%, alpha
library(themis)
df <- read_excel("D:/S2 IPB/Semester 3/Pemodelan Klasifikasi/tugas-3/Data Tugas-2 (2).xlsx")
df
## # A tibble: 6,648 × 7
##    Nomor provinsi     `Peringkat Akreditasi` Lit_2023 Num_2023 Lit_2024 Num_2024
##    <dbl> <chr>        <chr>                     <dbl>    <dbl>    <dbl>    <dbl>
##  1     1 Prov. Jawa … A                          20       40        0        0  
##  2     2 Prov. Nusa … B                          80       48.8     82.2     62.8
##  3     3 Prov. Jawa … A                          91.1     82.2     93.3     93.3
##  4     4 Prov. Sumat… A                          57.8     57.8     64.4     62.2
##  5     5 Prov. Jawa … B                          55.6     66.7     83.3     66.7
##  6     6 Prov. Sulaw… A                          51.1     51.1     71.8     55.6
##  7     7 Prov. Papua  C                          56.5     61.9     69.2     30.8
##  8     8 Prov. Bengk… B                          31.6     52.6     73.9     78.3
##  9     9 Prov. Nusa … A                          86.7     71.1     88.9     86.7
## 10    10 Prov. Nusa … C                          24.4     48.9     17.8     28.9
## # ℹ 6,638 more rows
df <- df %>% 
            select(-Nomor)
library(conflicted)
conflict_prefer("filter", "dplyr")
## [conflicted] Will prefer dplyr::filter over any other package.
df1 <- df %>% filter(provinsi %in% c("Prov. Sulawesi Utara", "Prov. Sulawesi Tengah", "Prov. Sulawesi Selatan", "Prov. Sulawesi Tenggara", "Prov. Sulawesi Barat"))
glimpse(df1)
## Rows: 606
## Columns: 6
## $ provinsi               <chr> "Prov. Sulawesi Utara", "Prov. Sulawesi Tengah"…
## $ `Peringkat Akreditasi` <chr> "A", "B", "B", "B", "B", "A", "Tidak Terakredit…
## $ Lit_2023               <dbl> 51.11, 32.00, 38.24, 33.33, 68.89, 86.67, 50.00…
## $ Num_2023               <dbl> 51.11, 44.00, 55.88, 66.67, 60.00, 77.78, 37.50…
## $ Lit_2024               <dbl> 71.795, 52.381, 56.250, 20.000, 86.667, 88.889,…
## $ Num_2024               <dbl> 55.556, 47.619, 65.625, 60.000, 86.667, 80.000,…
glimpse(df1)
## Rows: 606
## Columns: 6
## $ provinsi               <chr> "Prov. Sulawesi Utara", "Prov. Sulawesi Tengah"…
## $ `Peringkat Akreditasi` <chr> "A", "B", "B", "B", "B", "A", "Tidak Terakredit…
## $ Lit_2023               <dbl> 51.11, 32.00, 38.24, 33.33, 68.89, 86.67, 50.00…
## $ Num_2023               <dbl> 51.11, 44.00, 55.88, 66.67, 60.00, 77.78, 37.50…
## $ Lit_2024               <dbl> 71.795, 52.381, 56.250, 20.000, 86.667, 88.889,…
## $ Num_2024               <dbl> 55.556, 47.619, 65.625, 60.000, 86.667, 80.000,…
df <- df %>% 
      mutate(across(where(is.character),as.factor))
df1 <- df1 %>% 
      mutate(across(where(is.character),as.factor))

Eksplorasi Data Nasional

plot_intro(df,theme_config = theme_classic())

df <- df %>% 
  na.omit
plot_boxplot(data = df,
             by = "Peringkat Akreditasi",
             geom_boxplot_args = list(fill="#03A9F4"),
             ggtheme = theme_classic())

plot_boxplot(data = df,
             by = "provinsi",
             geom_boxplot_args = list(fill="#03A9F4"),
             ggtheme = theme_classic())

1. Distribusi Kategori

# Jumlah sekolah per akreditasi
df %>% count(`Peringkat Akreditasi`) %>% 
  ggplot(aes(x = `Peringkat Akreditasi`, y = n, fill = `Peringkat Akreditasi`)) +
  geom_col() +
  theme_classic() +
  labs(title = "Distribusi Sekolah per Peringkat Akreditasi", y = "Jumlah")

# Jumlah sekolah per provinsi (Top 10)
df %>% count(provinsi) %>% 
  arrange(desc(n)) %>% 
  slice(1:10) %>% 
  ggplot(aes(x = reorder(provinsi, n), y = n, fill = provinsi)) +
  geom_col(show.legend = FALSE) +
  coord_flip() +
  theme_classic() +
  labs(title = "Top 10 Provinsi dengan Jumlah Sekolah Terbanyak")

2. Statistik Ringkasan per Provinsi

df %>% 
  group_by(provinsi) %>% 
  summarise(across(starts_with("Lit_"), mean, na.rm = TRUE),
            across(starts_with("Num_"), mean, na.rm = TRUE)) %>% 
  arrange(desc(Lit_2023))
## Warning: There was 1 warning in `summarise()`.
## ℹ In argument: `across(starts_with("Lit_"), mean, na.rm = TRUE)`.
## ℹ In group 1: `provinsi = Luar Negeri`.
## Caused by warning:
## ! The `...` argument of `across()` is deprecated as of dplyr 1.1.0.
## Supply arguments directly to `.fns` through an anonymous function instead.
## 
##   # Previously
##   across(a:b, mean, na.rm = TRUE)
## 
##   # Now
##   across(a:b, \(x) mean(x, na.rm = TRUE))
## # A tibble: 39 × 5
##    provinsi                        Lit_2023 Lit_2024 Num_2023 Num_2024
##    <fct>                              <dbl>    <dbl>    <dbl>    <dbl>
##  1 Luar Negeri                         96.9     95.0     88.3     96.3
##  2 Prov. D.I. Yogyakarta               94.8     95.8     89.9     91.2
##  3 Prov. D.K.I. Jakarta                93.6     94.8     88.1     90.8
##  4 Prov. Jawa Tengah                   85.5     86.3     78.6     82.7
##  5 Prov. Bali                          84.5     85.3     78.7     83.1
##  6 Prov. Kepulauan Bangka Belitung     84.3     83.2     74.9     78.6
##  7 Prov. Kepulauan Riau                81.6     80.4     74.4     77.7
##  8 Prov. Kalimantan Timur              79.7     83.5     71.6     77.5
##  9 Prov. Kalimantan Selatan            78.0     80.1     69.7     76.9
## 10 Prov. Jawa Barat                    76.6     78.8     70.5     76.3
## # ℹ 29 more rows

3. Korelasi Antar Variabel Numerik

library(corrplot)
## corrplot 0.95 loaded
df %>% 
  select(starts_with("Lit_"), starts_with("Num_")) %>% 
  cor(use = "pairwise.complete.obs") %>% 
  corrplot(method = "color", 
           tl.cex = 0.7,       # ukuran label
           addCoef.col = "black", # tampilkan angka korelasi
           number.cex = 0.6)     # ukuran angka

cor_mat <- df %>% 
  select(starts_with("Lit_"), starts_with("Num_")) %>% 
  cor(use = "pairwise.complete.obs")

cor_mat
##           Lit_2023  Lit_2024  Num_2023  Num_2024
## Lit_2023 1.0000000 0.8201393 0.8720485 0.7898178
## Lit_2024 0.8201393 1.0000000 0.7644512 0.8890335
## Num_2023 0.8720485 0.7644512 1.0000000 0.7569328
## Num_2024 0.7898178 0.8890335 0.7569328 1.0000000

4. Boxplot & Violin Plot per Akreditasi

df %>% 
  pivot_longer(cols = starts_with("Lit_"):starts_with("Num_"),
               names_to = "Variabel", values_to = "Nilai") %>% 
  ggplot(aes(x = `Peringkat Akreditasi`, y = Nilai, fill = `Peringkat Akreditasi`)) +
  geom_violin(trim = FALSE, alpha = 0.6) +
  geom_boxplot(width = 0.1, outlier.size = 0.5, color = "black") +
  facet_wrap(~Variabel, scales = "free_y") +
  theme_classic() +
  labs(title = "Distribusi Literasi & Numerasi per Akreditasi")
## Warning in x:y: numerical expression has 2 elements: only the first used

6. Outlier Detection

DataExplorer::plot_density(df, ncol = 2, ggtheme = theme_classic())

Eksplorasi Sulawesi

library(dplyr)
plot_intro(df1,theme_config = theme_classic())

library(DataExplorer)
library(ggplot2)

plot_boxplot(data = df1,
             by = "Peringkat Akreditasi",
             geom_boxplot_args = list(fill="#03A9F4"),
             ggtheme = theme_classic())

library(DataExplorer)
library(ggplot2)

plot_boxplot(data = df1,
             by = "provinsi",
             geom_boxplot_args = list(fill="#03A9F4"),
             ggtheme = theme_classic())

library(ggplot2)
library(dplyr)

# Contoh untuk Lit_2023
ggplot(df1, aes(x = provinsi, y = Lit_2023, fill = `Peringkat Akreditasi`)) +
  geom_boxplot() +
  theme_classic() +
  coord_flip() +
  labs(title = "Boxplot Literasi 2023 per Provinsi di Sulawesi berdasarkan Akreditasi",
       x = "Provinsi", y = "Literasi 2023")

df_long <- df1 %>%
  pivot_longer(cols = starts_with("Lit_"):starts_with("Num_"),
               names_to = "Variabel", values_to = "Nilai")
## Warning in x:y: numerical expression has 2 elements: only the first used
ggplot(df_long, aes(x = provinsi, y = Nilai, fill = `Peringkat Akreditasi`)) +
  geom_boxplot() +
  facet_wrap(~Variabel, scales = "free_y") +
  theme_classic() +
  coord_flip() +
  labs(title = "Boxplot Literasi & Numerasi per Provinsi di Sulawesi berdasarkan Akreditasi",
       x = "Provinsi", y = "Nilai")

df1$`Peringkat Akreditasi` <- as.factor(df1$`Peringkat Akreditasi`)
library(dplyr)

df1$`Peringkat Akreditasi` <- as.factor(df1$`Peringkat Akreditasi`)
colnames(df1)
## [1] "provinsi"             "Peringkat Akreditasi" "Lit_2023"            
## [4] "Num_2023"             "Lit_2024"             "Num_2024"
plot_bar(data = df1,
         by = "Peringkat.Akreditasi",
         ggtheme = theme_classic())
## Warning: `aes_string()` was deprecated in ggplot2 3.0.0.
## ℹ Please use tidy evaluation idioms with `aes()`.
## ℹ See also `vignette("ggplot2-in-packages")` for more information.
## ℹ The deprecated feature was likely used in the DataExplorer package.
##   Please report the issue at
##   <https://github.com/boxuancui/DataExplorer/issues>.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.

### 1. Distribusi Akreditasi di Sulawesi

df1 %>%
  count(`Peringkat Akreditasi`) %>%
  ggplot(aes(x = `Peringkat Akreditasi`, y = n, fill = `Peringkat Akreditasi`)) +
  geom_col() +
  theme_classic() +
  labs(title = "Distribusi Sekolah per Akreditasi di Sulawesi", y = "Jumlah")

### 2. Distribusi Sekolah per Provinsi di Sulawesi

df1 %>%
  count(provinsi) %>%
  ggplot(aes(x = reorder(provinsi, n), y = n, fill = provinsi)) +
  geom_col(show.legend = FALSE) +
  coord_flip() +
  theme_classic() +
  labs(title = "Jumlah Sekolah per Provinsi di Sulawesi", y = "Jumlah", x = "Provinsi")

### 3. Rata-rata Literasi & Numerasi per Provinsi

df1 %>%
  group_by(provinsi) %>%
  summarise(across(starts_with("Lit_"), mean, na.rm = TRUE),
            across(starts_with("Num_"), mean, na.rm = TRUE)) %>%
  pivot_longer(cols = -provinsi, names_to = "Variabel", values_to = "Rata2") %>%
  ggplot(aes(x = provinsi, y = Rata2, fill = Variabel)) +
  geom_col(position = "dodge") +
  coord_flip() +
  theme_classic() +
  labs(title = "Rata-rata Literasi & Numerasi per Provinsi di Sulawesi")

### 4. Perbandingan Literasi & Numerasi Antar Akreditasi di Sulawesi

df1 %>%
  pivot_longer(cols = starts_with("Lit_"):starts_with("Num_"),
               names_to = "Variabel", values_to = "Nilai") %>%
  ggplot(aes(x = `Peringkat Akreditasi`, y = Nilai, fill = `Peringkat Akreditasi`)) +
  geom_violin(trim = FALSE, alpha = 0.6) +
  geom_boxplot(width = 0.1, color = "black") +
  facet_wrap(~Variabel, scales = "free_y") +
  theme_classic() +
  labs(title = "Literasi & Numerasi per Akreditasi di Sulawesi")
## Warning in x:y: numerical expression has 2 elements: only the first used

### 5. Korelasi Literasi–Numerasi di Sulawesi

cor_mat_sul <- df1 %>%
  select(starts_with("Lit_"), starts_with("Num_")) %>%
  cor(use = "pairwise.complete.obs")

corrplot::corrplot(cor_mat_sul, method = "color", 
                   addCoef.col = "black", number.cex = 0.6, tl.cex = 0.7)

6. Perbandingan Nasional vs Sulawesi

# Rata-rata nasional
avg_nasional <- df %>%
  summarise(across(starts_with("Lit_"), mean, na.rm = TRUE),
            across(starts_with("Num_"), mean, na.rm = TRUE)) %>%
  mutate(Kelompok = "Nasional")

# Rata-rata Sulawesi
avg_sumsel <- df1 %>%
  summarise(across(starts_with("Lit_"), mean, na.rm = TRUE),
            across(starts_with("Num_"), mean, na.rm = TRUE)) %>%
  mutate(Kelompok = "Sulawesi")

# Gabungkan
avg_compare <- bind_rows(avg_nasional, avg_sumsel) %>%
  pivot_longer(cols = -Kelompok, names_to = "Variabel", values_to = "Rata2")

avg_compare
## # A tibble: 8 × 3
##   Kelompok Variabel Rata2
##   <chr>    <chr>    <dbl>
## 1 Nasional Lit_2023  65.1
## 2 Nasional Lit_2024  67.9
## 3 Nasional Num_2023  62.1
## 4 Nasional Num_2024  65.9
## 5 Sulawesi Lit_2023  58.3
## 6 Sulawesi Lit_2024  61.3
## 7 Sulawesi Num_2023  55.9
## 8 Sulawesi Num_2024  59.7
ggplot(avg_compare, aes(x = Variabel, y = Rata2, fill = Kelompok)) +
  geom_col(position = "dodge") +
  theme_classic() +
  labs(title = "Perbandingan Rata-rata Literasi & Numerasi: Nasional vs Sulawesi",
       x = "Variabel", y = "Rata-rata")

# Rata-rata tiap provinsi
prov_avg <- df %>%
  group_by(provinsi) %>%
  summarise(across(starts_with("Lit_"), mean, na.rm = TRUE),
            across(starts_with("Num_"), mean, na.rm = TRUE))

# Filter Sulawesi saja
prov_sumsel_avg <- prov_avg %>%
  filter(provinsi %in% c("Prov. Sulawesi Selatan", "Prov. Sulawesi Tenggara", 
                         "Prov. Sulawesi Tengah", "Prov. Sulawesi Barat", 
                         "Prov. Sulawesi Utara", "Gorontalo"))

# Gabungkan Nasional + Provinsi Sulawesi
compare_detail <- bind_rows(
  avg_nasional %>% mutate(provinsi = "Nasional"),
  prov_sumsel_avg
) %>%
  pivot_longer(cols = starts_with("Lit_"):starts_with("Num_"),
               names_to = "Variabel", values_to = "Rata2")
## Warning in x:y: numerical expression has 2 elements: only the first used
# Plot
ggplot(compare_detail, aes(x = Variabel, y = Rata2, fill = provinsi)) +
  geom_col(position = "dodge") +
  theme_classic() +
  labs(title = "Perbandingan Nasional vs Sulawesi",
       x = "Variabel", y = "Rata-rata") +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

hist(df1$Lit_2023, probability = TRUE, col = "lightblue", main = "Histogram")
lines(density(df1$Lit_2023), col = "red", lwd = 2)

hist(df1$Lit_2023, probability = TRUE, col = "lightblue", main = "Histogram")
lines(density(df1$Lit_2024), col = "red", lwd = 2)

hist(df1$Num_2023, probability = TRUE, col = "lightblue", main = "Histogram")
lines(density(df1$Num_2023), col = "red", lwd = 2)

hist(df1$Num_2024, probability = TRUE, col = "lightblue", main = "Histogram")
lines(density(df1$Num_2024), col = "red", lwd = 2)

7. Distribusi prediktor berdasarkan akreditasi

library(dplyr)
library(tidyr)
library(ggplot2)

# --- rapikan nama kolom & tipe faktor ---
df_plot <- df1 %>%
  rename(Peringkat_Akreditasi = `Peringkat Akreditasi`) %>%
  mutate(Peringkat_Akreditasi = factor(Peringkat_Akreditasi, levels = c("A","B","C")))

# --- pivot ke long lalu plot density per fitur ---
num_cols <- c("Lit_2023","Lit_2024","Num_2023","Num_2024")

p_dist <- df_plot %>%
  pivot_longer(cols = all_of(num_cols),
               names_to = "Fitur", values_to = "Nilai") %>%
  ggplot(aes(x = Nilai, fill = Peringkat_Akreditasi, color = Peringkat_Akreditasi)) +
  geom_density(alpha = 0.35) +
  facet_wrap(~ Fitur, scales = "free", ncol = 2) +
  labs(title = "Distribusi prediktor berdasarkan akreditasi",
       x = "Nilai", y = "Kepadatan", fill = "Peringkat", color = "Peringkat") +
  theme_classic() +
  theme(legend.position = "top")

p_dist

8. PairPlot Numerasi & Literasi (scatter matrix + histogram/density + korelasi)

library(GGally)
library(ggplot2)
library(dplyr)

df_pair <- df1 %>%
  rename(Peringkat_Akreditasi = `Peringkat Akreditasi`) %>%
  mutate(Peringkat_Akreditasi = factor(Peringkat_Akreditasi, levels = c("A","B","C"))) %>%
  select(Peringkat_Akreditasi, Lit_2023, Num_2023, Lit_2024, Num_2024)

# Pair plot:
# - diagonal: density per kelompok
# - bawah: scatter berwarna per akreditasi
# - atas: koefisien korelasi (Pearson) secara keseluruhan

p_pair <- ggpairs(
  df_pair,
  columns = 2:5,
  mapping = aes(color = Peringkat_Akreditasi, fill = Peringkat_Akreditasi),
  upper = list(continuous = wrap("cor", size = 3, method = "pearson")),
  lower = list(continuous = wrap("points", alpha = 0.6, size = 1.2)),
  diag  = list(continuous = wrap("densityDiag", alpha = 0.4))
) +
  theme_classic() +
  theme(legend.position = "top")

p_pair
## Warning: Removed 8 rows containing missing values
## Removed 8 rows containing missing values
## Removed 8 rows containing missing values
## Removed 8 rows containing missing values
## Removed 8 rows containing missing values
## Removed 8 rows containing missing values

### Pemodelan Klasifikasi #### 1. Menyiapkan Pembagian Data ##### K-fold Cross Validation

set.seed(2045)
folds <- vfold_cv(df1, v = 10,strata = "Peringkat Akreditasi")
folds
## #  10-fold cross-validation using stratification 
## # A tibble: 10 × 2
##    splits           id    
##    <list>           <chr> 
##  1 <split [544/62]> Fold01
##  2 <split [545/61]> Fold02
##  3 <split [545/61]> Fold03
##  4 <split [545/61]> Fold04
##  5 <split [545/61]> Fold05
##  6 <split [545/61]> Fold06
##  7 <split [545/61]> Fold07
##  8 <split [546/60]> Fold08
##  9 <split [547/59]> Fold09
## 10 <split [547/59]> Fold10
df1 %>% 
  mutate(Row=seq(nrow(df1))) %>% 
  select(`Peringkat Akreditasi`,Row) %>% 
  left_join(tidy(folds),by="Row")%>% 
  count(`Peringkat Akreditasi`,Fold,Data) %>% 
  group_by(`Peringkat Akreditasi`,Fold) %>% 
  mutate(percent=n*100/sum(n)) %>% 
  arrange(Fold,Data)
## # A tibble: 76 × 5
## # Groups:   Peringkat Akreditasi, Fold [40]
##    `Peringkat Akreditasi` Fold   Data           n percent
##    <fct>                  <chr>  <chr>      <int>   <dbl>
##  1 A                      Fold01 Analysis     205    89.5
##  2 B                      Fold01 Analysis     229    89.8
##  3 C                      Fold01 Analysis     102    89.5
##  4 Tidak Terakreditasi    Fold01 Analysis       8   100  
##  5 A                      Fold01 Assessment    24    10.5
##  6 B                      Fold01 Assessment    26    10.2
##  7 C                      Fold01 Assessment    12    10.5
##  8 A                      Fold02 Analysis     206    90.0
##  9 B                      Fold02 Analysis     230    90.2
## 10 C                      Fold02 Analysis     102    89.5
## # ℹ 66 more rows
library(dplyr)
library(tidyr)
library(ggplot2)

# ======================================
# 1. Tampilkan df1 awal
# ======================================
cat("===== df1 awal =====\n")
## ===== df1 awal =====
print(head(df1))
## # A tibble: 6 × 6
##   provinsi            `Peringkat Akreditasi` Lit_2023 Num_2023 Lit_2024 Num_2024
##   <fct>               <fct>                     <dbl>    <dbl>    <dbl>    <dbl>
## 1 Prov. Sulawesi Uta… A                          51.1     51.1     71.8     55.6
## 2 Prov. Sulawesi Ten… B                          32       44       52.4     47.6
## 3 Prov. Sulawesi Sel… B                          38.2     55.9     56.2     65.6
## 4 Prov. Sulawesi Sel… B                          33.3     66.7     20       60  
## 5 Prov. Sulawesi Sel… B                          68.9     60       86.7     86.7
## 6 Prov. Sulawesi Sel… A                          86.7     77.8     88.9     80
cat("Jumlah baris awal:", nrow(df1), "\n\n")
## Jumlah baris awal: 606
# ======================================
# 2. Cek distribusi target per fold
# ======================================
df_fold_summary <- df1 %>% 
  mutate(Row = seq_len(nrow(df1))) %>% 
  select(`Peringkat Akreditasi`, Row) %>% 
  left_join(tidy(folds), by = "Row") %>% 
  count(`Peringkat Akreditasi`, Fold, Data) %>% 
  group_by(`Peringkat Akreditasi`, Fold) %>% 
  mutate(percent = n*100/sum(n)) %>% 
  arrange(Fold, Data)

cat("===== Distribusi target per fold =====\n")
## ===== Distribusi target per fold =====
print(df_fold_summary)
## # A tibble: 76 × 5
## # Groups:   Peringkat Akreditasi, Fold [40]
##    `Peringkat Akreditasi` Fold   Data           n percent
##    <fct>                  <chr>  <chr>      <int>   <dbl>
##  1 A                      Fold01 Analysis     205    89.5
##  2 B                      Fold01 Analysis     229    89.8
##  3 C                      Fold01 Analysis     102    89.5
##  4 Tidak Terakreditasi    Fold01 Analysis       8   100  
##  5 A                      Fold01 Assessment    24    10.5
##  6 B                      Fold01 Assessment    26    10.2
##  7 C                      Fold01 Assessment    12    10.5
##  8 A                      Fold02 Analysis     206    90.0
##  9 B                      Fold02 Analysis     230    90.2
## 10 C                      Fold02 Analysis     102    89.5
## # ℹ 66 more rows
# ======================================
# 3. Cek numeric predictor
# ======================================
numeric_vars <- df1 %>% select(where(is.numeric)) %>% names()
cat("===== Kolom numeric =====\n")
## ===== Kolom numeric =====
print(numeric_vars)
## [1] "Lit_2023" "Num_2023" "Lit_2024" "Num_2024"
# Visualisasi boxplot untuk outlier
for(var in numeric_vars){
  # pastikan kolom tidak semua NA
  if(all(is.na(df1[[var]]))) next
  
  Q1 <- quantile(df1[[var]], 0.25, na.rm = TRUE)
  Q3 <- quantile(df1[[var]], 0.75, na.rm = TRUE)
  IQR <- Q3 - Q1
  
  # jika IQR = 0 (tidak ada variasi), skip
  if(IQR == 0) next
  
  df1 <- df1 %>%
    filter(.data[[var]] >= (Q1 - 1.5*IQR) &
           .data[[var]] <= (Q3 + 1.5*IQR))
}

2. Mendefinisikan Regresi Logistik Multinomial

regresi_mult <-  multinom_reg()%>% 
  set_engine("nnet") %>%
  set_mode("classification")
regresi_mult
## Multinomial Regression Model Specification (classification)
## 
## Computational engine: nnet

3. Mendefinisikan Regresi Logistik Ordinal

library(dplyr)
library(VGAM)
## Loading required package: stats4
## Loading required package: splines
# 1) Rapikan nama kolom & set urutan level (misal C < B < A)
dat <- df1 %>%
  rename(Peringkat_Akreditasi = `Peringkat Akreditasi`) %>%
  mutate(
    Peringkat_Akreditasi = ordered(Peringkat_Akreditasi, levels = c("C","B","A"))
  ) %>%
  # pilih prediktor numerik yang relevan (sesuaikan dengan datasetmu)
  select(Peringkat_Akreditasi, Lit_2023, Num_2023, Lit_2024, Num_2024) %>%
  tidyr::drop_na()
# 2) Fit ordinal logistic (proportional odds)
regresi_ord <- vglm(
  Peringkat_Akreditasi ~ Lit_2023 + Num_2023 + Lit_2024 + Num_2024,
  data   = dat,
  family = cumulative(link = "logit", parallel = TRUE)
)
## Warning in logit(theta = "P[Y<=j]", bvalue = NULL, inverse = FALSE, deriv = 0, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = c("P[Y<=1]", "P[Y<=2]"), bvalue = NULL, inverse = FALSE, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.185689948892675, 0.185689948892675, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.47826285026231, -1.47826285026231, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.47826285026231, -1.47826285026231, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.185689948892675, 0.185689948892675, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.185689948892675, 0.185689948892675, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.47680956359944, -0.681481338551755, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.47680956359944, -0.681481338551755, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.185909799579658, 0.335930763412616, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.185909799579658, 0.335930763412616, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.88393493215342, -0.958775340670047, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.88393493215342, -0.958775340670047, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.88393493215342, -0.958775340670047, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.131937552559482, 0.277123459063731, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.131937552559482, 0.277123459063731, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.94520143804346, -0.99168897991368, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.94520143804346, -0.99168897991368, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.94520143804346, -0.99168897991368, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.125077535870123, 0.270578601603023, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.125077535870123, 0.270578601603023, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.94658323874395, -0.992200339684013, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.94658323874395, -0.992200339684013, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.94658323874395, -0.992200339684013, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.124926399395512, 0.270477688502644, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.124926399395512, 0.270477688502644, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.94663264047464, -0.992224548222998, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.94663264047464, -0.992224548222998, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")

4. Interpretasi Model

Regresi Logistik Multinomial
fit_regresi_mult <- regresi_mult %>% 
                    fit(Peringkat_Akreditasi~.,data=dat)
fit_regresi_mult %>% 
  repair_call(data = dat) %>% 
  # exponentiate = TRUE koefisien dalam bentuk odds-ratio
  tidy(conf.int = TRUE, conf.level = 0.95, exponentiate = TRUE) %>% 
  mutate(across(where(is.numeric),~round(.x,4)))
## # A tibble: 10 × 8
##    y.level term        estimate std.error statistic p.value conf.low conf.high
##    <chr>   <chr>          <dbl>     <dbl>     <dbl>   <dbl>    <dbl>     <dbl>
##  1 B       (Intercept)   0.689     0.408     -0.912  0.362    0.310     1.53  
##  2 B       Lit_2023      1.01      0.0089     0.893  0.372    0.990     1.03  
##  3 B       Num_2023      0.995     0.0107    -0.488  0.625    0.974     1.02  
##  4 B       Lit_2024      1.01      0.0085     1.73   0.0838   0.998     1.03  
##  5 B       Num_2024      1.01      0.0098     0.612  0.540    0.987     1.03  
##  6 A       (Intercept)   0.0079    0.572     -8.47   0        0.0026    0.0241
##  7 A       Lit_2023      1.03      0.011      2.44   0.0149   1.01      1.05  
##  8 A       Num_2023      1.01      0.0126     0.619  0.536    0.983     1.03  
##  9 A       Lit_2024      1.04      0.0109     3.64   0.0003   1.02      1.06  
## 10 A       Num_2024      1.02      0.0119     1.49   0.137    0.994     1.04
levels(dat$Peringkat_Akreditasi)
## [1] "C" "B" "A"
Regresi Logistik Ordinal
library(parameters)
library(broom)
tidy_parameters <- function(model, conf.int = TRUE, conf.level = 0.95, exponentiate = FALSE, ...) {
  parameters::model_parameters(model, ci = if (conf.int) conf.level else 0, exponentiate = exponentiate, ...)
}
tidy_parameters(regresi_ord,conf.int = TRUE,conf.level = 0.95,exponentiate = TRUE) %>% 
  mutate(across(where(is.numeric),~round(.x,4)))
## Warning in logit(theta = structure(c(-1.94663264047464, -0.992224548222998, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.124920998908551, 0.270472911712171, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.124920998908551, 0.270472911712171, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = c(`1` = -1.94663264047464, `2` = -0.992224548222998, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = c(`1` = 0.124920998908551, `2` = 0.270472911712171, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = c(`1` = 0.124920998908551, `2` = 0.270472911712171, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = c(`1` = 0.124920998908551, `2` = 0.270472911712171, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = c(`1` = 0.54102671438742, `2` = 1.49543480663896, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = c(`1` = 0.632051225330308, `2` = 0.81689260641784, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = c(`1` = 0.632051225330308, `2` = 0.81689260641784, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = c(`1` = 0.632051225330308, `2` = 0.81689260641784, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.94663264047464, -0.992224548222998, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.94663264047464, -0.992224548222998, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.94663264047464, -0.992224548222998, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.94663264047464, -0.992224548222998, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.94663264047464, -0.992224548222998, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.94663264047464, -0.992224548222998, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.94663264047464, -0.992224548222998, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.94663264047464, -0.992224548222998, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.94663264047464, -0.992224548222998, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.94663264047464, -0.992224548222998, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.94663264047464, -0.992224548222998, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.94663264047464, -0.992224548222998, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.94663264047464, -0.992224548222998, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.94663264047464, -0.992224548222998, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.94663264047464, -0.992224548222998, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.94663264047464, -0.992224548222998, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.94663264047464, -0.992224548222998, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.94663264047464, -0.992224548222998, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.94663264047464, -0.992224548222998, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.94663264047464, -0.992224548222998, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.94663264047464, -0.992224548222998, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.124920998908551, 0.270472911712171, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.124920998908551, 0.270472911712171, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = c(`1` = -1.94663264047464, `2` = -0.992224548222998, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = c(`1` = 0.124920998908551, `2` = 0.270472911712171, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = c(`1` = 0.124920998908551, `2` = 0.270472911712171, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = c(`1` = 0.124920998908551, `2` = 0.270472911712171, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = c(`1` = 0.54102671438742, `2` = 1.49543480663896, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = c(`1` = 0.632051225330308, `2` = 0.81689260641784, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = c(`1` = 0.632051225330308, `2` = 0.81689260641784, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = c(`1` = 0.632051225330308, `2` = 0.81689260641784, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.94663264047464, -0.992224548222998, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.94663264047464, -0.992224548222998, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.94663264047464, -0.992224548222998, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.94663264047464, -0.992224548222998, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.94663264047464, -0.992224548222998, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.94663264047464, -0.992224548222998, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.94663264047464, -0.992224548222998, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.94663264047464, -0.992224548222998, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.94663264047464, -0.992224548222998, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.94663264047464, -0.992224548222998, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.94663264047464, -0.992224548222998, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.94663264047464, -0.992224548222998, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.94663264047464, -0.992224548222998, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.94663264047464, -0.992224548222998, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.94663264047464, -0.992224548222998, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.94663264047464, -0.992224548222998, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.94663264047464, -0.992224548222998, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.94663264047464, -0.992224548222998, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.94663264047464, -0.992224548222998, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.94663264047464, -0.992224548222998, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## # Fixed Effects
## 
## Parameter     | Coefficient |       SE |          95% CI |     z |      p
## -------------------------------------------------------------------------
## (Intercept):1 |        5.88 |     1.80 | [ 3.23,  10.72] |  5.79 | < .001
## (Intercept):2 |       70.81 |    24.91 | [35.53, 141.09] | 12.11 | < .001
## Lit_2023      |        0.98 | 6.60e-03 | [ 0.97,   1.00] | -2.30 | 0.021 
## Num_2023      |        0.99 | 7.60e-03 | [ 0.97,   1.00] | -1.42 | 0.154 
## Lit_2024      |        0.97 | 6.50e-03 | [ 0.96,   0.99] | -3.99 | < .001
## Num_2024      |        0.99 | 7.20e-03 | [ 0.98,   1.01] | -1.16 | 0.248

5. Evaluasi Model

K-fold Cross Validation
Regresi Logistik Multinomial
dat
## # A tibble: 587 × 5
##    Peringkat_Akreditasi Lit_2023 Num_2023 Lit_2024 Num_2024
##    <ord>                   <dbl>    <dbl>    <dbl>    <dbl>
##  1 A                        51.1     51.1     71.8     55.6
##  2 B                        32       44       52.4     47.6
##  3 B                        38.2     55.9     56.2     65.6
##  4 B                        33.3     66.7     20       60  
##  5 B                        68.9     60       86.7     86.7
##  6 A                        86.7     77.8     88.9     80  
##  7 A                        73.3     64.4     67.6     57.9
##  8 B                        31.7     43.9     24.4     20  
##  9 B                        71.1     48.9     55.6     62.2
## 10 A                        78.0     69.0     84.4     73.3
## # ℹ 577 more rows
rec <- recipe("Peringkat_Akreditasi" ~ ., data = dat) %>%
  step_zv(all_predictors()) %>%           # buang prediktor varians nol (termasuk faktor 1 level)
  step_dummy(all_nominal_predictors()) %>%# ubah faktor/character jadi dummy
  # step_smote(PeringkatAkreditasi) %>%   # (opsional) untuk mengatasi kelas tidak seimbang
  step_normalize(all_numeric_predictors())

####tolongggg ubah

set.seed(2045)
folds <- vfold_cv(dat, v = 10, strata = "Peringkat_Akreditasi")
rec <- recipe(Peringkat_Akreditasi ~ ., data = dat) %>%
  step_zv(all_predictors()) %>%           
  step_dummy(all_nominal_predictors()) %>%
  step_normalize(all_numeric_predictors())
regresi_mult <- multinom_reg() %>%
  set_engine("nnet") %>%
  set_mode("classification")

regresi_mult_cv <- workflow() %>%
  add_recipe(rec) %>%
  add_model(regresi_mult) %>%
  fit_resamples(
    resamples = folds,
    metrics   = metric_set(accuracy, bal_accuracy, f_meas),
    control   = control_resamples(save_pred = TRUE)
  )
## → A | warning: While computing multiclass `precision()`, some levels had no predicted events
##                (i.e. `true_positive + false_positive = 0`).
##                Precision is undefined in this case, and those levels will be removed from the
##                averaged result.
##                Note that the following number of true events actually occurred for each
##                problematic event level:
##                'C': 11
## There were issues with some computations   A: x1                                                 → B | warning: While computing multiclass `precision()`, some levels had no predicted events
##                (i.e. `true_positive + false_positive = 0`).
##                Precision is undefined in this case, and those levels will be removed from the
##                averaged result.
##                Note that the following number of true events actually occurred for each
##                problematic event level:
##                'C': 10
## There were issues with some computations   A: x1There were issues with some computations   A: x1   B: x1There were issues with some computations   A: x1   B: x1
collect_metrics(regresi_mult_cv)
## # A tibble: 3 × 6
##   .metric      .estimator  mean     n std_err .config        
##   <chr>        <chr>      <dbl> <int>   <dbl> <chr>          
## 1 accuracy     multiclass 0.588    10  0.0227 pre0_mod0_post0
## 2 bal_accuracy macro      0.635    10  0.0162 pre0_mod0_post0
## 3 f_meas       macro      0.532    10  0.0274 pre0_mod0_post0
cm_cv_regresi_mult <- 
  conf_mat_resampled(x = regresi_mult_cv,tidy = FALSE)
autoplot(cm_cv_regresi_mult,type = "heatmap")+
  scale_fill_viridis_c(direction = -1,option = "inferno",alpha = 0.6)
## Scale for fill is already present.
## Adding another scale for fill, which will replace the existing scale.

collect_metrics(regresi_mult_cv,summarize = FALSE) 
## # A tibble: 30 × 5
##    id     .metric      .estimator .estimate .config        
##    <chr>  <chr>        <chr>          <dbl> <chr>          
##  1 Fold01 accuracy     multiclass     0.593 pre0_mod0_post0
##  2 Fold01 bal_accuracy macro          0.649 pre0_mod0_post0
##  3 Fold01 f_meas       macro          0.518 pre0_mod0_post0
##  4 Fold02 accuracy     multiclass     0.576 pre0_mod0_post0
##  5 Fold02 bal_accuracy macro          0.631 pre0_mod0_post0
##  6 Fold02 f_meas       macro          0.507 pre0_mod0_post0
##  7 Fold03 accuracy     multiclass     0.525 pre0_mod0_post0
##  8 Fold03 bal_accuracy macro          0.600 pre0_mod0_post0
##  9 Fold03 f_meas       macro          0.469 pre0_mod0_post0
## 10 Fold04 accuracy     multiclass     0.475 pre0_mod0_post0
## # ℹ 20 more rows
collect_metrics(regresi_mult_cv,summarize = TRUE)
## # A tibble: 3 × 6
##   .metric      .estimator  mean     n std_err .config        
##   <chr>        <chr>      <dbl> <int>   <dbl> <chr>          
## 1 accuracy     multiclass 0.588    10  0.0227 pre0_mod0_post0
## 2 bal_accuracy macro      0.635    10  0.0162 pre0_mod0_post0
## 3 f_meas       macro      0.532    10  0.0274 pre0_mod0_post0
library(dplyr)
library(yardstick)
library(tidymodels)

# 1. Ambil prediksi dari CV
pred_cv <- collect_predictions(regresi_mult_cv)

# 2. Hitung akurasi
accuracy(pred_cv, truth = Peringkat_Akreditasi, estimate = .pred_class)
## # A tibble: 1 × 3
##   .metric  .estimator .estimate
##   <chr>    <chr>          <dbl>
## 1 accuracy multiclass     0.588
# 3. Hitung F1 macro
f_meas(pred_cv, truth = Peringkat_Akreditasi, estimate = .pred_class, estimator = "macro")
## # A tibble: 1 × 3
##   .metric .estimator .estimate
##   <chr>   <chr>          <dbl>
## 1 f_meas  macro          0.493
# 4. Hitung precision macro
precision(pred_cv, truth = Peringkat_Akreditasi, estimate = .pred_class, estimator = "macro")
## # A tibble: 1 × 3
##   .metric   .estimator .estimate
##   <chr>     <chr>          <dbl>
## 1 precision macro          0.612
# 5. Hitung recall macro
recall(pred_cv, truth = Peringkat_Akreditasi, estimate = .pred_class, estimator = "macro")
## # A tibble: 1 × 3
##   .metric .estimator .estimate
##   <chr>   <chr>          <dbl>
## 1 recall  macro          0.503
collect_metrics(regresi_mult_cv)
## # A tibble: 3 × 6
##   .metric      .estimator  mean     n std_err .config        
##   <chr>        <chr>      <dbl> <int>   <dbl> <chr>          
## 1 accuracy     multiclass 0.588    10  0.0227 pre0_mod0_post0
## 2 bal_accuracy macro      0.635    10  0.0162 pre0_mod0_post0
## 3 f_meas       macro      0.532    10  0.0274 pre0_mod0_post0
cm_cv_regresi_mult <- 
  conf_mat_resampled(x = regresi_mult_cv,tidy = FALSE)
autoplot(cm_cv_regresi_mult,type = "heatmap")+
  scale_fill_viridis_c(direction = -1,option = "inferno",alpha = 0.6)
## Scale for fill is already present.
## Adding another scale for fill, which will replace the existing scale.

collect_metrics(regresi_mult_cv,summarize = FALSE)
## # A tibble: 30 × 5
##    id     .metric      .estimator .estimate .config        
##    <chr>  <chr>        <chr>          <dbl> <chr>          
##  1 Fold01 accuracy     multiclass     0.593 pre0_mod0_post0
##  2 Fold01 bal_accuracy macro          0.649 pre0_mod0_post0
##  3 Fold01 f_meas       macro          0.518 pre0_mod0_post0
##  4 Fold02 accuracy     multiclass     0.576 pre0_mod0_post0
##  5 Fold02 bal_accuracy macro          0.631 pre0_mod0_post0
##  6 Fold02 f_meas       macro          0.507 pre0_mod0_post0
##  7 Fold03 accuracy     multiclass     0.525 pre0_mod0_post0
##  8 Fold03 bal_accuracy macro          0.600 pre0_mod0_post0
##  9 Fold03 f_meas       macro          0.469 pre0_mod0_post0
## 10 Fold04 accuracy     multiclass     0.475 pre0_mod0_post0
## # ℹ 20 more rows
collect_metrics(regresi_mult_cv,summarize = TRUE)
## # A tibble: 3 × 6
##   .metric      .estimator  mean     n std_err .config        
##   <chr>        <chr>      <dbl> <int>   <dbl> <chr>          
## 1 accuracy     multiclass 0.588    10  0.0227 pre0_mod0_post0
## 2 bal_accuracy macro      0.635    10  0.0162 pre0_mod0_post0
## 3 f_meas       macro      0.532    10  0.0274 pre0_mod0_post0
Regresi Logistik Ordinal
pred_regresi_ord_dummy <- predict(regresi_ord,newdata=df1 %>% slice_sample(n=10),type="response")
## Warning in logit(theta = structure(c(-1.79647117724124, -0.23166220061154, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
pred_regresi_ord_dummy
##             C         B          A
## 1  0.14228117 0.5239500 0.33376881
## 2  0.44234208 0.4628245 0.09483342
## 3  0.46256184 0.4493838 0.08805437
## 4  0.03325481 0.2594929 0.70725225
## 5  0.05605204 0.3606975 0.58325041
## 6  0.28687110 0.5419124 0.17121649
## 7  0.26679422 0.5472810 0.18592478
## 8  0.13549456 0.5179995 0.34650598
## 9  0.34057393 0.5208207 0.13860539
## 10 0.03243253 0.2549842 0.71258331
pred_regresi_ord_dummy %>% 
  as.data.frame() %>% 
  apply(MARGIN=1,FUN=function(x) names(x[which.max(x)])) %>% 
  factor(levels = c("A","B","C")) 
##  1  2  3  4  5  6  7  8  9 10 
##  B  B  C  A  A  B  B  B  B  A 
## Levels: A B C
# Paket yang dipakai
library(dplyr)
library(tidyr)
library(VGAM)      # vglm()
library(purrr)
library(yardstick) # metrik

# --- Fungsi train-test khusus ordinal (VGAM) versi aman ---
train_test_ord <- function(split) {
  # Ambil data train & test dari split
  train_dt <- rsample::analysis(split)
  test_dt  <- rsample::assessment(split)

  # Rename kolom jika ada
  if("Peringkat Akreditasi" %in% names(train_dt)) {
    train_dt <- train_dt %>%
      rename(Peringkat_Akreditasi = `Peringkat Akreditasi`)
  }
  if("Peringkat Akreditasi" %in% names(test_dt)) {
    test_dt <- test_dt %>%
      rename(Peringkat_Akreditasi = `Peringkat Akreditasi`)
  }

  # Ubah target menjadi ordered factor
  train_dt <- train_dt %>%
    mutate(Peringkat_Akreditasi = ordered(Peringkat_Akreditasi, levels = c("C","B","A"))) %>%
    select(Peringkat_Akreditasi, Lit_2023, Num_2023, Lit_2024, Num_2024) %>%
    drop_na()

  test_dt <- test_dt %>%
    mutate(Peringkat_Akreditasi = factor(Peringkat_Akreditasi,
                                         levels = levels(train_dt$Peringkat_Akreditasi),
                                         ordered = TRUE)) %>%
    select(Peringkat_Akreditasi, Lit_2023, Num_2023, Lit_2024, Num_2024) %>%
    drop_na()

  # Cek minimal 2 level pada TRAIN; jika tidak, kembalikan NA
  if (dplyr::n_distinct(train_dt$Peringkat_Akreditasi) < 2L) {
    return(tibble(estimate = factor(NA, levels = levels(train_dt$Peringkat_Akreditasi)),
                  truth    = train_dt$Peringkat_Akreditasi[0]))
  }

  # Fit model ordinal proportional odds
  mod <- vglm(
    Peringkat_Akreditasi ~ Lit_2023 + Num_2023 + Lit_2024 + Num_2024,
    family = cumulative(link = "logit", parallel = TRUE),
    data   = train_dt
  )

  # Prediksi probabilitas kelas pada test
  prob <- predict(mod, newdata = test_dt, type = "response")  # matrix: kolom = C,B,A

  # Ambil kelas probabilitas maksimum
  pred_class <- colnames(prob)[max.col(prob, ties.method = "first")]
  pred_class <- factor(pred_class, levels = levels(train_dt$Peringkat_Akreditasi), ordered = TRUE)

  tibble(
    estimate = pred_class,
    truth    = test_dt$Peringkat_Akreditasi
  )
}
train_test_ord
## function (split) 
## {
##     train_dt <- rsample::analysis(split)
##     test_dt <- rsample::assessment(split)
##     if ("Peringkat Akreditasi" %in% names(train_dt)) {
##         train_dt <- train_dt %>% rename(Peringkat_Akreditasi = `Peringkat Akreditasi`)
##     }
##     if ("Peringkat Akreditasi" %in% names(test_dt)) {
##         test_dt <- test_dt %>% rename(Peringkat_Akreditasi = `Peringkat Akreditasi`)
##     }
##     train_dt <- train_dt %>% mutate(Peringkat_Akreditasi = ordered(Peringkat_Akreditasi, 
##         levels = c("C", "B", "A"))) %>% select(Peringkat_Akreditasi, 
##         Lit_2023, Num_2023, Lit_2024, Num_2024) %>% drop_na()
##     test_dt <- test_dt %>% mutate(Peringkat_Akreditasi = factor(Peringkat_Akreditasi, 
##         levels = levels(train_dt$Peringkat_Akreditasi), ordered = TRUE)) %>% 
##         select(Peringkat_Akreditasi, Lit_2023, Num_2023, Lit_2024, 
##             Num_2024) %>% drop_na()
##     if (dplyr::n_distinct(train_dt$Peringkat_Akreditasi) < 2L) {
##         return(tibble(estimate = factor(NA, levels = levels(train_dt$Peringkat_Akreditasi)), 
##             truth = train_dt$Peringkat_Akreditasi[0]))
##     }
##     mod <- vglm(Peringkat_Akreditasi ~ Lit_2023 + Num_2023 + 
##         Lit_2024 + Num_2024, family = cumulative(link = "logit", 
##         parallel = TRUE), data = train_dt)
##     prob <- predict(mod, newdata = test_dt, type = "response")
##     pred_class <- colnames(prob)[max.col(prob, ties.method = "first")]
##     pred_class <- factor(pred_class, levels = levels(train_dt$Peringkat_Akreditasi), 
##         ordered = TRUE)
##     tibble(estimate = pred_class, truth = test_dt$Peringkat_Akreditasi)
## }
# --- Jalankan CV di semua split ---
# asumsikan 'folds' sudah dibuat dari data yang sama (strata = `Peringkat Akreditasi` yang sudah di-rename)
regresi_ord_cv <- map(folds$splits, train_test_ord)
## Warning in logit(theta = "P[Y<=j]", bvalue = NULL, inverse = FALSE, deriv = 0, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = c("P[Y<=1]", "P[Y<=2]"), bvalue = NULL, inverse = FALSE, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.185606060606061, 0.185606060606061, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.47881773001704, -1.47881773001704, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.47881773001704, -1.47881773001704, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.185606060606061, 0.185606060606061, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.185606060606061, 0.185606060606061, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.43077137127311, -0.367461875762746, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.43077137127311, -0.367461875762746, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.192978524106599, 0.409154463936845, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.192978524106599, 0.409154463936845, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.80714190687679, -0.591984105074583, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.80714190687679, -0.591984105074583, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.80714190687679, -0.591984105074583, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.140983907047781, 0.356179738077373, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.140983907047781, 0.356179738077373, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.86178559820227, -0.606794435010804, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.86178559820227, -0.606794435010804, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.86178559820227, -0.606794435010804, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.134495061669064, 0.352790776942761, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.134495061669064, 0.352790776942761, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.86292154017609, -0.606391773811653, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.86292154017609, -0.606391773811653, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.86292154017609, -0.606391773811653, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.134362885941134, 0.352882721799574, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.134362885941134, 0.352882721799574, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.86295616330078, -0.606344195138126, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.86295616330078, -0.606344195138126, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-0.938293263996574, -1.46255653220124, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = "P[Y<=j]", bvalue = NULL, inverse = FALSE, deriv = 0, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = c("P[Y<=1]", "P[Y<=2]"), bvalue = NULL, inverse = FALSE, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.185606060606061, 0.185606060606061, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.47881773001704, -1.47881773001704, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.47881773001704, -1.47881773001704, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.185606060606061, 0.185606060606061, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.185606060606061, 0.185606060606061, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.51997331998911, -0.735237773847266, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.51997331998911, -0.735237773847266, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.179465448208129, 0.324046388034125, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.179465448208129, 0.324046388034125, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.95420509600104, -1.02933304978581, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.95420509600104, -1.02933304978581, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.95420509600104, -1.02933304978581, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.124095558723383, 0.263213426806668, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.124095558723383, 0.263213426806668, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-2.02081226907861, -1.06477077246293, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-2.02081226907861, -1.06477077246293, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-2.02081226907861, -1.06477077246293, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.117035026638298, 0.256398809972494, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.117035026638298, 0.256398809972494, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-2.02192379632572, -1.06496890867401, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-2.02192379632572, -1.06496890867401, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-2.02192379632572, -1.06496890867401, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.116920212710864, 0.256361035450934, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.116920212710864, 0.256361035450934, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-2.02194779184752, -1.06498469180094, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-2.02194779184752, -1.06498469180094, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-3.51902526138211, -0.0737610490731353, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = "P[Y<=j]", bvalue = NULL, inverse = FALSE, deriv = 0, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = c("P[Y<=1]", "P[Y<=2]"), bvalue = NULL, inverse = FALSE, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.185606060606061, 0.185606060606061, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.47881773001704, -1.47881773001704, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.47881773001704, -1.47881773001704, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.185606060606061, 0.185606060606061, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.185606060606061, 0.185606060606061, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.45361224813656, -0.675358893004027, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.45361224813656, -0.675358893004027, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.189446259950567, 0.337297935496977, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.189446259950567, 0.337297935496977, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.86231420832985, -0.959034005177302, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.86231420832985, -0.959034005177302, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.86231420832985, -0.959034005177302, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.13443354009251, 0.277071644812758, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.13443354009251, 0.277071644812758, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.92365731671026, -0.991895501680458, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.92365731671026, -0.991895501680458, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.92365731671026, -0.991895501680458, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.12745428278964, 0.27053784319607, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.12745428278964, 0.27053784319607, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.92512928069126, -0.992429228526892, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.92512928069126, -0.992429228526892, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.92512928069126, -0.992429228526892, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.127290675880996, 0.27043252664144, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.127290675880996, 0.27043252664144, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.92519535034407, -0.992464266403836, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.92519535034407, -0.992464266403836, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-2.57641419740977, -1.43537627451458, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = "P[Y<=j]", bvalue = NULL, inverse = FALSE, deriv = 0, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = c("P[Y<=1]", "P[Y<=2]"), bvalue = NULL, inverse = FALSE, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.185606060606061, 0.185606060606061, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.47881773001704, -1.47881773001704, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.47881773001704, -1.47881773001704, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.185606060606061, 0.185606060606061, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.185606060606061, 0.185606060606061, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.48242206710162, -0.674410687111654, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.48242206710162, -0.674410687111654, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.185061859072999, 0.337509918787767, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.185061859072999, 0.337509918787767, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.90433907296617, -0.953950002021597, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.90433907296617, -0.953950002021597, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.90433907296617, -0.953950002021597, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.129618164669358, 0.278091138901327, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.129618164669358, 0.278091138901327, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.97071509760097, -0.989638872768065, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.97071509760097, -0.989638872768065, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.97071509760097, -0.989638872768065, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.122312099037178, 0.270983412941472, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.122312099037178, 0.270983412941472, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.97210812271089, -0.990072430615323, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.97210812271089, -0.990072430615323, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.97210812271089, -0.990072430615323, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.12216263387736, 0.270897771485377, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.12216263387736, 0.270897771485377, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.97216149634289, -0.990101092067068, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.97216149634289, -0.990101092067068, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.91280480961166, 0.568168591050929, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = "P[Y<=j]", bvalue = NULL, inverse = FALSE, deriv = 0, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = c("P[Y<=1]", "P[Y<=2]"), bvalue = NULL, inverse = FALSE, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.185606060606061, 0.185606060606061, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.47881773001704, -1.47881773001704, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.47881773001704, -1.47881773001704, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.185606060606061, 0.185606060606061, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.185606060606061, 0.185606060606061, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.52893489545185, -0.72726067010599, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.52893489545185, -0.72726067010599, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.178149576743424, 0.325796142118168, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.178149576743424, 0.325796142118168, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.96045885449999, -1.02235594538986, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.96045885449999, -1.02235594538986, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.96045885449999, -1.02235594538986, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.123417397563255, 0.264568745047334, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.123417397563255, 0.264568745047334, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-2.03053454855233, -1.06148125804965, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-2.03053454855233, -1.06148125804965, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-2.03053454855233, -1.06148125804965, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.116034082076522, 0.257026486134895, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.116034082076522, 0.257026486134895, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-2.03257913979795, -1.06247036167597, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-2.03257913979795, -1.06247036167597, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-2.03257913979795, -1.06247036167597, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.115824532577496, 0.256837648475031, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.115824532577496, 0.256837648475031, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-2.03263859630831, -1.06249667293447, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-2.03263859630831, -1.06249667293447, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-0.474816871323871, -3.10213759181668, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = "P[Y<=j]", bvalue = NULL, inverse = FALSE, deriv = 0, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = c("P[Y<=1]", "P[Y<=2]"), bvalue = NULL, inverse = FALSE, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.185606060606061, 0.185606060606061, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.47881773001704, -1.47881773001704, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.47881773001704, -1.47881773001704, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.185606060606061, 0.185606060606061, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.185606060606061, 0.185606060606061, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-0.646088013937274, -1.03811833685181, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-0.646088013937274, -1.03811833685181, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.343871635124913, 0.261513225231337, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.343871635124913, 0.261513225231337, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-0.928657524216475, -1.40074624726673, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-0.928657524216475, -1.40074624726673, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-0.928657524216475, -1.40074624726673, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.283197153091881, 0.197697719973622, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.283197153091881, 0.197697719973622, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-0.966410371353077, -1.45055669533834, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-0.966410371353077, -1.45055669533834, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-0.966410371353077, -1.45055669533834, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.275596569223243, 0.189915904847393, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.275596569223243, 0.189915904847393, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-0.96721840756438, -1.45159312325686, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-0.96721840756438, -1.45159312325686, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-0.96721840756438, -1.45159312325686, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.27543527962369, 0.189756503878894, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.27543527962369, 0.189756503878894, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-0.967240384588797, -1.45160867944911, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-0.967240384588797, -1.45160867944911, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.9780973956205, -0.895738573452711, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = "P[Y<=j]", bvalue = NULL, inverse = FALSE, deriv = 0, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = c("P[Y<=1]", "P[Y<=2]"), bvalue = NULL, inverse = FALSE, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.185606060606061, 0.185606060606061, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.47881773001704, -1.47881773001704, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.47881773001704, -1.47881773001704, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.185606060606061, 0.185606060606061, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.185606060606061, 0.185606060606061, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.42483784995623, -0.66123041041235, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.42483784995623, -0.66123041041235, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.193904281495165, 0.340463271102241, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.193904281495165, 0.340463271102241, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.80090357786139, -0.921589160752853, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.80090357786139, -0.921589160752853, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.80090357786139, -0.921589160752853, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.141741108554576, 0.284634202527295, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.141741108554576, 0.284634202527295, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.85275573447203, -0.949045424111257, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.85275573447203, -0.949045424111257, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.85275573447203, -0.949045424111257, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.135549666766951, 0.279076835413402, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.135549666766951, 0.279076835413402, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.85378678697384, -0.949381338307179, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.85378678697384, -0.949381338307179, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.85378678697384, -0.949381338307179, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.135428897597621, 0.279009256859304, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.135428897597621, 0.279009256859304, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.85382684042545, -0.949398827020253, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.85382684042545, -0.949398827020253, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-2.27773287526674, -1.70028839522232, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = "P[Y<=j]", bvalue = NULL, inverse = FALSE, deriv = 0, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = c("P[Y<=1]", "P[Y<=2]"), bvalue = NULL, inverse = FALSE, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.185606060606061, 0.185606060606061, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.47881773001704, -1.47881773001704, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.47881773001704, -1.47881773001704, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.185606060606061, 0.185606060606061, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.185606060606061, 0.185606060606061, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.46775638355861, -0.68442338786798, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.46775638355861, -0.68442338786798, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.18728387216297, 0.335274764392599, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.18728387216297, 0.335274764392599, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.84434820141824, -0.943569355633843, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.84434820141824, -0.943569355633843, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.84434820141824, -0.943569355633843, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.136537849576315, 0.280179913550854, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.136537849576315, 0.280179913550854, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.89538653184133, -0.970183137581607, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.89538653184133, -0.970183137581607, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.89538653184133, -0.970183137581607, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.130631519525141, 0.274844000510489, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.130631519525141, 0.274844000510489, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.89664683426775, -0.97063708549847, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.89664683426775, -0.97063708549847, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.89664683426775, -0.97063708549847, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.130488457469818, 0.274753535770524, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.130488457469818, 0.274753535770524, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.89672345881142, -0.970665493526612, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.89672345881142, -0.970665493526612, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-2.54083794900449, -3.72660486300166, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = "P[Y<=j]", bvalue = NULL, inverse = FALSE, deriv = 0, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = c("P[Y<=1]", "P[Y<=2]"), bvalue = NULL, inverse = FALSE, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.185606060606061, 0.185606060606061, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.47881773001704, -1.47881773001704, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.47881773001704, -1.47881773001704, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.185606060606061, 0.185606060606061, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.185606060606061, 0.185606060606061, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.55056603879684, -0.712452311103388, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.55056603879684, -0.712452311103388, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.175004529611753, 0.329057195694201, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.175004529611753, 0.329057195694201, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.98726359201228, -1.01035457735086, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.98726359201228, -1.01035457735086, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.98726359201228, -1.01035457735086, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.1205466621192, 0.266910465136314, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.1205466621192, 0.266910465136314, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-2.05744766768665, -1.04854507785009, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-2.05744766768665, -1.04854507785009, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-2.05744766768665, -1.04854507785009, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.113301996284178, 0.259504583661201, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.113301996284178, 0.259504583661201, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-2.05934516721151, -1.04928400576488, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-2.05934516721151, -1.04928400576488, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-2.05934516721151, -1.04928400576488, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.113111504483377, 0.259362615064224, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.113111504483377, 0.259362615064224, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-2.05943855557156, -1.04932956724346, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-2.05943855557156, -1.04932956724346, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.8839853614107, -3.29915461358052, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = "P[Y<=j]", bvalue = NULL, inverse = FALSE, deriv = 0, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = c("P[Y<=1]", "P[Y<=2]"), bvalue = NULL, inverse = FALSE, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.186440677966102, 0.186440677966102, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.47330573810952, -1.47330573810952, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.47330573810952, -1.47330573810952, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.186440677966102, 0.186440677966102, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.186440677966102, 0.186440677966102, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.4342979855987, -0.650806809594847, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.4342979855987, -0.650806809594847, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.192429891501592, 0.342807747666706, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.192429891501592, 0.342807747666706, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.82947658687611, -0.921031256805322, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.82947658687611, -0.921031256805322, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.82947658687611, -0.921031256805322, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.138300638375704, 0.284747815223222, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.138300638375704, 0.284747815223222, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.88689669001998, -0.950833080685346, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.88689669001998, -0.950833080685346, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.88689669001998, -0.950833080685346, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.131598711949859, 0.278717313587518, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.131598711949859, 0.278717313587518, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.88822169935012, -0.951251424094234, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.88822169935012, -0.951251424094234, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.88822169935012, -0.951251424094234, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.1314473631339, 0.278633220136017, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(0.1314473631339, 0.278633220136017, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.88827811531608, -0.951270478894374, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.88827811531608, -0.951270478894374, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
## Warning in logit(theta = structure(c(-1.79903137291474, -2.5858198431489, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
# Gabungkan semua hasil prediksi dari tiap split
pred_all <- bind_rows(regresi_ord_cv)

# Hitung metrik (akurasi, balanced accuracy, F1 macro)
metrics_tbl <- yardstick::metric_set(accuracy, bal_accuracy, f_meas)
metrics_tbl(pred_all, truth = truth, estimate = estimate)
## # A tibble: 3 × 3
##   .metric      .estimator .estimate
##   <chr>        <chr>          <dbl>
## 1 accuracy     multiclass     0.562
## 2 bal_accuracy macro          0.630
## 3 f_meas       macro          0.504
regresi_ord_cv
## [[1]]
## # A tibble: 59 × 2
##    estimate truth
##    <ord>    <ord>
##  1 B        B    
##  2 B        B    
##  3 A        B    
##  4 A        A    
##  5 B        B    
##  6 C        C    
##  7 A        A    
##  8 B        C    
##  9 B        B    
## 10 B        C    
## # ℹ 49 more rows
## 
## [[2]]
## # A tibble: 59 × 2
##    estimate truth
##    <ord>    <ord>
##  1 A        A    
##  2 C        B    
##  3 A        C    
##  4 A        A    
##  5 B        A    
##  6 B        A    
##  7 C        C    
##  8 B        A    
##  9 B        A    
## 10 B        B    
## # ℹ 49 more rows
## 
## [[3]]
## # A tibble: 59 × 2
##    estimate truth
##    <ord>    <ord>
##  1 A        B    
##  2 B        C    
##  3 B        B    
##  4 B        C    
##  5 A        A    
##  6 B        A    
##  7 A        A    
##  8 B        C    
##  9 B        A    
## 10 C        C    
## # ℹ 49 more rows
## 
## [[4]]
## # A tibble: 59 × 2
##    estimate truth
##    <ord>    <ord>
##  1 B        B    
##  2 C        C    
##  3 A        B    
##  4 A        B    
##  5 B        A    
##  6 B        B    
##  7 B        C    
##  8 A        B    
##  9 A        A    
## 10 B        C    
## # ℹ 49 more rows
## 
## [[5]]
## # A tibble: 59 × 2
##    estimate truth
##    <ord>    <ord>
##  1 B        B    
##  2 A        A    
##  3 B        B    
##  4 B        A    
##  5 B        B    
##  6 B        C    
##  7 C        C    
##  8 A        A    
##  9 C        A    
## 10 A        C    
## # ℹ 49 more rows
## 
## [[6]]
## # A tibble: 59 × 2
##    estimate truth
##    <ord>    <ord>
##  1 B        A    
##  2 B        B    
##  3 B        B    
##  4 B        B    
##  5 B        B    
##  6 B        B    
##  7 A        A    
##  8 A        B    
##  9 A        C    
## 10 B        B    
## # ℹ 49 more rows
## 
## [[7]]
## # A tibble: 59 × 2
##    estimate truth
##    <ord>    <ord>
##  1 A        A    
##  2 B        B    
##  3 C        B    
##  4 B        A    
##  5 B        C    
##  6 B        B    
##  7 A        A    
##  8 C        C    
##  9 A        B    
## 10 A        A    
## # ℹ 49 more rows
## 
## [[8]]
## # A tibble: 59 × 2
##    estimate truth
##    <ord>    <ord>
##  1 A        C    
##  2 A        A    
##  3 C        B    
##  4 B        B    
##  5 B        B    
##  6 A        A    
##  7 C        C    
##  8 B        B    
##  9 B        A    
## 10 A        A    
## # ℹ 49 more rows
## 
## [[9]]
## # A tibble: 59 × 2
##    estimate truth
##    <ord>    <ord>
##  1 B        B    
##  2 A        A    
##  3 B        B    
##  4 B        C    
##  5 A        A    
##  6 B        C    
##  7 B        B    
##  8 A        A    
##  9 A        B    
## 10 A        B    
## # ℹ 49 more rows
## 
## [[10]]
## # A tibble: 56 × 2
##    estimate truth
##    <ord>    <ord>
##  1 B        B    
##  2 A        A    
##  3 B        A    
##  4 B        A    
##  5 B        B    
##  6 C        C    
##  7 B        C    
##  8 B        B    
##  9 A        A    
## 10 B        A    
## # ℹ 46 more rows
cm_regresi_ord_cv <- map(regresi_ord_cv,
    function(x){
      cm <- conf_mat(x,truth = truth,estimate = estimate)
      autoplot(cm,type = "heatmap")+
        scale_fill_viridis_c(direction = -1,option = "inferno",alpha = 0.6)
      }
    )
## Scale for fill is already present.
## Adding another scale for fill, which will replace the existing scale.
## Scale for fill is already present.
## Adding another scale for fill, which will replace the existing scale.
## Scale for fill is already present.
## Adding another scale for fill, which will replace the existing scale.
## Scale for fill is already present.
## Adding another scale for fill, which will replace the existing scale.
## Scale for fill is already present.
## Adding another scale for fill, which will replace the existing scale.
## Scale for fill is already present.
## Adding another scale for fill, which will replace the existing scale.
## Scale for fill is already present.
## Adding another scale for fill, which will replace the existing scale.
## Scale for fill is already present.
## Adding another scale for fill, which will replace the existing scale.
## Scale for fill is already present.
## Adding another scale for fill, which will replace the existing scale.
## Scale for fill is already present.
## Adding another scale for fill, which will replace the existing scale.
cm_regresi_ord_cv
## [[1]]

## 
## [[2]]

## 
## [[3]]

## 
## [[4]]

## 
## [[5]]

## 
## [[6]]

## 
## [[7]]

## 
## [[8]]

## 
## [[9]]

## 
## [[10]]

perf_regresi_ord_cv <- map(regresi_ord_cv,
    function(x){
      accuracy(x,truth = truth,estimate = estimate)
      }
    ) %>% 
  list_rbind() %>% 
  mutate(id=str_c("fold",seq(nrow(folds)))) %>% 
  relocate(id)
perf_regresi_ord_cv
## # A tibble: 10 × 4
##    id     .metric  .estimator .estimate
##    <chr>  <chr>    <chr>          <dbl>
##  1 fold1  accuracy multiclass     0.542
##  2 fold2  accuracy multiclass     0.525
##  3 fold3  accuracy multiclass     0.559
##  4 fold4  accuracy multiclass     0.458
##  5 fold5  accuracy multiclass     0.610
##  6 fold6  accuracy multiclass     0.542
##  7 fold7  accuracy multiclass     0.627
##  8 fold8  accuracy multiclass     0.627
##  9 fold9  accuracy multiclass     0.492
## 10 fold10 accuracy multiclass     0.643
perf_regresi_ord_cv %>% 
  group_by(.metric,.estimator) %>% 
  summarize(mean=mean(.estimate),n=n(),std_err=sd(.estimate)/sqrt(n))
## `summarise()` has grouped output by '.metric'. You can override using the
## `.groups` argument.
## # A tibble: 1 × 5
## # Groups:   .metric [1]
##   .metric  .estimator  mean     n std_err
##   <chr>    <chr>      <dbl> <int>   <dbl>
## 1 accuracy multiclass 0.563    10  0.0198

6. Prediksi Data Baru

set.seed(1234)
data_baru <- df1 %>% 
              slice_sample(n = 2,by = `Peringkat Akreditasi`) %>% 
              select(-`Peringkat Akreditasi`)
data_baru
## # A tibble: 8 × 5
##   provinsi                Lit_2023 Num_2023 Lit_2024 Num_2024
##   <fct>                      <dbl>    <dbl>    <dbl>    <dbl>
## 1 Prov. Sulawesi Tenggara     14.6     17.1     20       48  
## 2 Prov. Sulawesi Tengah       62.2     44.4     68.9     51.2
## 3 Prov. Sulawesi Tengah       60       57.8     42.2     44.4
## 4 Prov. Sulawesi Utara        80       71.1     66.7     63.6
## 5 Prov. Sulawesi Selatan      50       83.3     33.3     33.3
## 6 Prov. Sulawesi Tengah        6.9     17.2     75       50  
## 7 Prov. Sulawesi Tengah       16.7     38.9     53.5     44.2
## 8 Prov. Sulawesi Tenggara     58.3     25       26.7     40
Regresi Logistik Multinomial
regresi_mult_opt <- regresi_mult %>% 
  fit(Peringkat_Akreditasi~.,data=dat)
pred_data_baru <- regresi_mult_opt %>% 
  predict(new_data = data_baru)
pred_data_baru
## # A tibble: 8 × 1
##   .pred_class
##   <ord>      
## 1 B          
## 2 B          
## 3 B          
## 4 A          
## 5 B          
## 6 B          
## 7 B          
## 8 B
Regresi Logistik Ordinal
regresi_ord_opt <- regresi_ord
pred_data_baru2  <-regresi_ord_opt %>% 
  predict(newdata=data_baru,type="response") %>% 
  as.data.frame() %>% 
  apply(MARGIN=1,FUN=function(x) names(x[which.max(x)])) %>% 
  factor(levels = c("A","B","C","D")) %>% 
  as_tibble() %>% 
  rename(.pred_class=value) 
## Warning in logit(theta = structure(c(0.425197923538114, -1.93178764890737, : 'logit' is deprecated.
## Use 'logitlink' instead.
## See help("Deprecated")
pred_data_baru2
## # A tibble: 8 × 1
##   .pred_class
##   <fct>      
## 1 C          
## 2 B          
## 3 B          
## 4 A          
## 5 B          
## 6 B          
## 7 B          
## 8 B