Modelare stratificată pentru date dezechilibrate

URMĂREȘTE-NE
16,065FaniÎmi place
1,142CititoriConectați-vă

(Acest articol a fost publicat pentru prima dată pe Jason Bryerși cu amabilitate a contribuit la R-bloggeri). (Puteți raporta problema legată de conținutul acestei pagini aici)


Doriți să vă distribuiți conținutul pe R-bloggeri? dați clic aici dacă aveți un blog, sau aici dacă nu aveți.

NOTĂ: Orice actualizări ale acestui articol vor fi menținute aici: https://medley.bryer.org/articles/stratified_glm.html

Introducere

Modelarea statistică atunci când există un dezechilibru substanțial în variabila dependentă ridică provocări unice. În aceste situații, modelele favorizează adesea clasa majoritară. Două abordări comune sunt supraeșantionarea și downsampling. Suprasantionarea este procesul de creștere a eșantionării grupului minoritar pentru a se potrivi mai strâns cu dimensiunea grupului majoritar. Dimpotrivă, subeșantionarea implică eșantionarea din grupul majoritar pentru a se potrivi mai strâns cu dimensiunea grupului minoritar. Acesta din urmă nu este, în general, preferat, deoarece crește artificial dimensiunea eșantionului (de ex n) rezultând în scăderea estimărilor de eroare standard.1 Această lucrare introduce o abordare în care modelele de regresie logistică multiple sunt estimate utilizând grupul minoritar și un subset unic al grupului majoritar, astfel încât toate observațiile să fie observații majoritare să fie utilizate într-un singur model, în timp ce grupul minoritar este reutilizat în toate modelele. Modelul final reunește modelele folosind Regulile lui Rubin definite în contextul imputării multiple (Rubin, 2004).

Impactul asupra valorilor adaptate

În Statele Unite, există în general două tipuri de școli, publice și private. Școlile publice sunt finanțate din impozite pe proprietate, în timp ce școlile private percep școlarizare pentru familii. Programul pentru evaluarea internațională a studenților (PISA) este o evaluare internațională gestionată de OCDE. Măsoară cât de bine elevii de 15 ani își aplică cunoștințele și abilitățile de rezolvare a problemelor în citire, matematică și știință la provocările din lumea reală. PISA eșantionează studenți din școli publice și private din Statele Unite. The medley pachetul conține un subset de date PISA pentru Statele Unite, care conține 5233 de observații a 44 de variabile. Există 4888 de elevi de școală publică și 345 de elevi de școală privată (6,5927766%)

Pentru a exemplifica problema cu estimarea regresiei logistice cu date dezechilibrate, să luăm în considerare câteva modele în care raportul școlilor publice și private variază de la 1 la 1 la 14 la 1. Figura @ref(fig:shrinking-values) reprezintă distribuțiile valorilor ajustate dintr-o regresie logistică cu rapoarte variabile ale școlilor publice-private. Adică, toți elevii din școlile private au fost folosiți în fiecare model. Pentru modelul 1-la-1, primele 345 de observații din școala publică, apoi pentru modelul 2-la-1 primele 690 de observații, etc., până când modelul final utilizează toate observațiile. Liniile verticale corespund valorilor mediane ajustate. Cu toate celelalte egale, pe măsură ce raportul dintre școlile publice și private crește, gama de valori adaptate se micșorează spre grupul majoritar.2

Distribuții pentru diferite raporturi public-privat. Liniile verticale corespund cu mediana valorilor ajustate.

Modelare stratificată

Scopul modelării stratificate este de a aborda dezechilibrul variabilei de rezultat, valorificând în același timp toate datele. Primul pas este separarea claselor majoritare de cele minoritare. Observațiile din clasa minoritară vor fi utilizate în toate estimările modelului. Observațiilor din clasa majoritară li se va atribui aleatoriu un model. Numărul de modele este determinat de amploarea dezechilibrului raportul specificat de observații majoritare la minoritate (valorul implicit este 1). Pentru datele PISA de aici, există de aproximativ 14 ori mai multe observații din școlile publice decât observații din școlile private. Folosind un raport de unu vom estima 14 modele. De menționat că elevii din școlile publice vor fi utilizați într-un singur model, în timp ce elevii din școlile private vor fi utilizați în toate modelele. The stratified_glm() realizează modelarea. Pentru a maximiza flexibilitatea, această funcție poate transmite orice parametru către stats::glm() funcţie. Cu toate acestea, parametrii care fac referire la observații specifice (de ex weights, subset) nu trebuie folosit deoarece stats::glm() va fi apelat cu subseturi de date care nu se vor potrivi cu ordinea datelor. În mod similar, cel family parametrul este implicit binomial(link='logit') deoarece această metodă funcționează numai cu probleme de clasificare cu două clase.

results <- medley::stratified_glm(
    formula = Private ~ .,
    data = pisa,
    ratio = 1
)

Rezultatele tuturor modelelor sunt combinate folosind mitools::MIcombine funcţie (Lumley, 2026). Deși această abordare este concepută pentru a combina mai multe seturi de date imputate, în acest caz ne permite să avem un singur coeficient și o eroare standard care nu este artificial mai mică, având în vedere o dimensiune mai mare a eșantionului pentru un model. Valorile ajustate de la toate modelele individuale sunt disponibile în fitted element al obiectului returnat. În plus, rezultatele modelului individual sunt disponibile în model element. The summary() funcția returnează un cadru de date cu coeficienții combinați, eroarea standard și valoarea p. Mai jos sunt imprimați doar coeficienții în care p < 0,1 pentru a economisi spațiu.

pisa_summary <- summary(results)
pisa_summary |> dplyr::filter(p < 0.1)
                     coefficients   se     p
(Intercept)                 -5.21 2.63 0.051
ST04Q01Male                  0.84 0.28 0.004
ST08Q04TRUE                 -0.50 0.27 0.071
ST08Q05TRUE                  0.75 0.36 0.038
ST20Q06TRUE                  1.79 0.95 0.060
ST20Q07TRUE                  0.72 0.31 0.021
ST21Q05Three or more         0.93 0.45 0.042
ST22Q01201-500 books         1.18 0.59 0.050

Figura @ref(fig:fitted-distributions) reprezintă grafic distribuțiile densității din modelul complet (model unic folosind toate datele) și modelele stratificate. Eșantionul stratificat arată o distribuție care se întinde pe întregul interval de valori ajustate, rezultând valori ajustate care sunt mai interpretabile.

plot(results)

Distribuția valorilor ajustate pentru modelele complete și stratificate

Predicțiile pentru date noi pot fi estimate folosind predict() funcţie.

pisa_predicted <- predict(results, newdata = pisa)
head(pisa_predicted)
   1    2    3    4    5    6 
0.79 0.16 0.30 0.24 0.22 0.46 

Figura @ref(fig:fitted-distributions-3) arată cum modelarea stratificată este mai puțin eficientă atunci când raportul dintre studenți publici și privați crește la 3-la-1.

medley::stratified_glm(
    formula = Private ~ .,
    data = pisa,
    ratio = 3
) |> plot()

Distribuția valorilor ajustate atunci când se utilizează un raport de trei pentru modelul stratificat

Impactul pentru modelarea predictivă

Modelarea stratificată oferă în mod clar o strategie pentru abordarea problemei scăderii valorilor ajustate din regresia logistică, pe măsură ce dezechilibrul rezultatului crește. În această secțiune vom explora ce impact, dacă este cazul, are această abordare atunci când modelăm pentru predicție. Pentru început, ne vom împărți datele într-un set de date de instruire și validare cu 80% pentru instruire și 20% pentru validare.

set.seed(2112); split <- medley::stratified_split(pisa, 'Private', 0.8)
pisa_train <- split$train
pisa_valid <- split$validation
pisa_train$Private |> table() |> prop.table()
pisa_valid$Private |> table() |> prop.table()

Model complet

În primul rând, vom estima modelul de regresie logistică utilizând setul complet de date.

full_model <- glm(Private ~ ., data = pisa_train, family = binomial(link = 'logit'))

Obțineți predicțiile pentru setul de date de validare.

full_new_predictions <- predict(full_model, newdata = pisa_valid, type="response")

Calculăm valorile pentru o caracteristică de funcționare a receptorului mai jos. Funcția de rezumat ne oferă niște praguri care maximizează acuratețea, minimizează costurile3sau unde curbele de specificitate și sensibilitate se intersectează.

full_roc <- medley::calculate_roc(
    predictions = full_new_predictions,
    observed = pisa_valid$Private
)
summary(full_roc)
AUC = 0.747
Cost of false-positive = 1
Cost of false-negative = 1
Threshold with minimum cost = 0.465 (accuracy = 93.4%)
Threshold with maximum accuracy = 0.465 (accuracy = 93.4%)
Sensitivity and specificity intersection = 0.059 (accuracy = 66.4%)

Figura @ref(fig:full-roc) reprezintă graficul caracteristicilor de funcționare a receptorului pentru datele de validare folosind modelul complet.

plot(full_roc)

Caracteristica de funcționare a receptorului (ROC) și curbele de precizie pentru modelul complet

Pentru a echilibra sensibilitatea și specificitatea, oferim o matrice de confuzie folosind intersecția acestor două curbe ca punct de tăiere pentru determinarea clasei de rezultat.

medley::confusion_matrix(
    observed = pisa_valid$Private,
    predicted = full_new_predictions > attr(full_roc, 'intersection')
)
              predicted             
  observed        FALSE         TRUE
     FALSE 649 (61.99%) 329 (31.42%)
      TRUE   23 (2.20%)   46 (4.39%)
Accuracy: 66.38%
Sensitivity: 66.36%
Specificity: 66.67%

Model stratificat

Acum să estimăm modelul stratificat.

stratified_model <- medley::stratified_glm(
    formula = Private ~ .,
    data = pisa_train,
    ratio = 1
)
stratified_new_predictions <- predict(stratified_model, newdata = pisa_valid)

Examinați caracteristicile de funcționare a receptorului pentru a determina punctul optim de tăiere. Figura @ref(fig:stratified-roc) prezintă rezultatele.

stratified_roc <- medley::calculate_roc(
    predictions = stratified_new_predictions,
    observed = pisa_valid$Private
)
summary(stratified_roc)
AUC = 0.745
Cost of false-positive = 1
Cost of false-negative = 1
Threshold with minimum cost = 1 (accuracy = 93.4%)
Threshold with maximum accuracy = 1 (accuracy = 93.4%)
Sensitivity and specificity intersection = 0.509 (accuracy = 68.6%)
plot(stratified_roc)

Caracteristica de funcționare a receptorului (ROC) și curbele de precizie pentru modelul stratificat

În cele din urmă, calculați matricea de confuzie folosind intersecția curbelor de sensibilitate și specificitate ca punct de tăiere pentru determinarea clasei prezise.

medley::confusion_matrix(
    observed = pisa_valid$Private,
    predicted = full_new_predictions > attr(stratified_roc, 'intersection')
)
              predicted          
  observed        FALSE      TRUE
     FALSE 975 (93.12%) 3 (0.29%)
      TRUE   68 (6.49%) 1 (0.10%)
Accuracy: 93.22%
Sensitivity: 99.69%
Specificity: 1.45%

Adesea, textele introductive pentru modelarea predictivă și regresia logistică sugerează utilizarea unui punct de tăiere de 0,5 pentru determinarea clasei. După cum se arată mai sus, acesta nu este punctul de tăiere optim atunci când există un dezechilibru semnificativ. Abordarea de modelare stratificată introdusă ne aduce mai aproape de acel punct de tăiere intuitiv din mijloc. Trebuie remarcat faptul că această abordare nu este mai bună sau mai proastă pentru a face predicții. Cu toate acestea, abordează problema micșorării valorilor ajustate și face ca valorile ajustate și prezise să fie mai interpretabile.

Concluzie

Abordarea de modelare stratificată oferă o abordare de modelare pentru regresia logistică în care interpretabilitatea valorilor ajustate sau prezise este semnificativă. Pentru modelarea predictivă, ajustarea punctului de tăiere pentru a face o predicție de clasă va oferi un rezultat similar. Cu toate acestea, această problemă a fost întâlnită inițial la efectuarea analizei scorului de înclinație (PSA). Regresia logistică este adesea folosită pentru a estima scorurile de înclinație, care sunt definite ca probabilitatea condiționată de a fi în tratament (Rosenbaum & Rubin, 1983). Când se utilizează regresia logistică, scorurile de propensiune sunt pur și simplu valorile ajustate din model. În acest context, având valori adaptate care acoperă întregul interval în care distribuția grupului de tratament (școli private în acest exemplu) este denaturată la dreapta și grupul de control (școli publice în acest exemplu) este denaturată la stânga. Pentru aceste situații, abordarea de modelare stratificată poate oferi o abordare rezonabilă pentru abordarea problemei scăderii valorilor ajustate din regresia logistică cu dezechilibru semnificativ.

Dominic Botezariu
Dominic Botezariuhttps://www.noobz.ro/
Creator de site și redactor-șef.

Cele mai noi știri

Pe același subiect

LĂSAȚI UN MESAJ

Vă rugăm să introduceți comentariul dvs.!
Introduceți aici numele dvs.