odds_summary: Transformarea estimărilor probabilistice în perspective clare, pregătite pentru luarea unei decizii

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

Ajustarea și estimarea modelelor au evoluat de la extrapolare simplă la cadre de modelare probabilistică sofisticate. În știința datelor contemporane, factorii de decizie necesită mai mult decât estimări, nevoia de declarații clare despre probabilitate, risc și incertitudine sunt esențiale pentru luarea deciziilor corecte. Cu toate acestea, în ciuda progreselor în modelarea predictivă, există o limitare persistentă a luării de decizii rapide și robuste din probabilitățile estimate. Estimările nu sunt adesea interpretate în mod semnificativ. Aici funcția odds_summary devine importantă din punct de vedere strategic. Acesta convertește rezultatele probabilistice în rezumate structurate care susțin direct:

În termeni practici, transformă numerele în dovezi.

model Un obiect R al estimărilor din modelele acoperite. Deocamdată sunt acoperite doar modelele glm, multimon și polr.

Implementați funcția

library(Dyn4cast)
library(tidyverse)

Model logistic comandat

library(MASS)
options(contrasts = c("contr.treatment", "contr.poly"))
house.plr <- polr(Sat ~ Infl + Type + Cont, weights = Freq, data = housing)
modelsummary::datasummary_df(odds_summary(house.plr))

Variabile Coeficient Eroare std valoarea t valoarea p Coef Sig Rata_cote % Cote Sig CI_inferioară CI_sus
InflMedium 0,57 0,10 5.41 0,00 0,566*** 1,76 76.19 1.762*** 1.44 2.16
InflHigh 1.29 0,13 10.14 0,00 1.289*** 3,63 262,85 3.628*** 2,83 4,66
TipApartament -0,57 0,12 -4,80 0,00 -0,572*** 0,56 -43,58 0,564*** 0,45 0,71
TipAtriu -0,37 0,16 -2,36 0,02 -0,366* 0,69 -30,66 0,693* 0,51 0,94
TipTerase -1.09 0,15 -7.20 0,00 -1,091*** 0,34 -66,41 0,336*** 0,25 0,45
ContHigh 0,36 0,10 3,77 0,00 0,36*** 1.43 43,37 1.434*** 1.19 1,73
Scăzut|Mediu -0,50 0,12 -3,97 0,00 -0,496*** 0,61 -39.11 0,609*** -0,74 -0,25
Mediu|Ridicat 0,69 0,13 5.50 0,00 0,691*** 2.00 99,51 1.995*** 0,44 0,94

modele glm

counts <- c(18, 17, 15, 20, 10, 20, 25, 13, 12)
outcome <- gl(3, 1, 9)
treatment <- gl(3, 3)
ddc <- data.frame(treatment, outcome, counts) # showing data
glm.D93 <- glm(counts ~ ., data = ddc, family = poisson())
modelsummary::datasummary_df(odds_summary(glm.D93))

Variabile Coeficient Eroare std valoarea t valoarea p Coef Sig Rata_cote % Cote Sig CI_inferioară CI_sus
(Intercepta) 3.04 0,17 17.81 0,00 3.045*** 21.00 2000,00 21*** 14.82 28,98
tratament2 0,00 0,20 0,00 1.00 0 1.00 0,00 1 0,67 1.48
tratament3 0,00 0,20 0,00 1.00 0 1.00 0,00 1 0,67 1.48
rezultatul2 -0,45 0,20 -2,25 0,02 -0,454* 0,63 -36,51 0,635* 0,42 0,94
rezultatul3 -0,29 0,19 -1,52 0,13 -0,293 0,75 -25.40 0,746 0,51 1.09

anorex.1 <- glm(Postwt ~ Prewt + Treat + offset(Prewt),
family = gaussian, data = anorexia
)
modelsummary::datasummary_df(odds_summary(anorex.1))

Variabile Coeficient Eroare std valoarea t valoarea p Coef Sig Rata_cote % Cote Sig CI_inferioară CI_sus
(Intercepta) 49,77 13.39 3,72 0,00 49.771*** 4.123994e+21 4.123994e+23 4.12399379732274e+21*** 1.647835e+10 1.032101e+33
Prewt -0,57 0,16 -3,51 0,00 -0,566*** 5.700000e-01 -4.319000e+01 0,568*** 4.100000e-01 7.800000e-01
TreatCont -4.10 1,89 -2.16 0,03 -4.097* 2.000000e-02 -9,834000e+01 0,017* 0,000000e+00 6.800000e-01
TreatFT 4,56 2.13 2.14 0,04 4.563* 9.588000e+01 9.487670e+03 95.877* 1,460000e+00 6.274970e+03

clotting <- data.frame(
u = c(5, 10, 15, 20, 30, 40, 60, 80, 100),
lot1 = c(118, 58, 42, 35, 27, 25, 21, 19, 18),
lot2 = c(69, 35, 26, 21, 18, 16, 13, 12, 12)
)
lot1 <- glm(lot1 ~ log(u), data = clotting, family = Gamma)
modelsummary::datasummary_df(odds_summary(lot1))

Variabile Coeficient Eroare std valoarea t valoarea p Coef Sig Rata_cote % Cote Sig CI_inferioară CI_sus
(Intercepta) -0,02 0,00 -17,85 0,00 -0,017*** 0,98 -1,64 0,984*** 0,98 0,99
log(u) 0,02 0,00 36,97 0,00 0,015*** 1.02 1,55 1.015*** 1.01 1.02

lot2 <- glm(lot2 ~ log(u), data = clotting, family = Gamma)
modelsummary::datasummary_df(odds_summary(lot2))

Variabile Coeficient Eroare std valoarea t valoarea p Coef Sig Rata_cote % Cote Sig CI_inferioară CI_sus
(Intercepta) -0,02 0,00 -18.02 0,00 -0,024*** 0,98 -2,36 0,976*** 0,97 0,98
log(u) 0,02 0,00 40,92 0,00 0,024*** 1.02 2.39 1.024*** 1.02 1.03

x <- rnorm(100)
y <- rpois(100, exp(1 + x))
lm2 <- glm(y ~ x, family = quasi(variance = "mu", link = "log"))
modelsummary::datasummary_df(odds_summary(lm2))

Variabile Coeficient Eroare std valoarea t valoarea p Coef Sig Rata_cote % Cote Sig CI_inferioară CI_sus
(Intercepta) 0,92 0,06 14.45 0,00 0,915*** 2.50 149,71 2.497*** 2.20 2,82
x 1.05 0,04 29.75 0,00 1,053*** 2,87 186,74 2.867*** 2,67 3.07

lm3 <- glm(y ~ x, family = poisson)
modelsummary::datasummary_df(odds_summary(lm3))

Variabile Coeficient Eroare std valoarea t valoarea p Coef Sig Rata_cote % Cote Sig CI_inferioară CI_sus
(Intercepta) 0,92 0,07 13.56 0,00 0,915*** 2.50 149,71 2.497*** 2.18 2,84
x 1.05 0,04 27.92 0,00 1,053*** 2,87 186,74 2.867*** 2,66 3.09

Model logistic multinomial

Pentru regresia logistică multinomială, fiecare măsură este un data.frame, deci rezumatul este o listă de cadre de date. Rezumatul este pentru fiecare dintre nivelurile variabilei dependente.

library(nnet)
tinom <- multinom(Species ~ Petal.Length + Petal.Width + Sepal.Length
+ Sepal.Width, trace = FALSE, data = iris)
odds_summary(tinom)
$coefficient
Variables versicolor virginica
1 (Intercept) 18.690374 -23.836276
2 Petal.Length 14.244770 23.659779
3 Petal.Width -3.097684 15.135301
4 Sepal.Length -5.458424 -7.923634
5 Sepal.Width -8.707401 -15.370769
$t_value
versicolor virginica
1 0.53445109 -0.66644166
2 0.23665670 0.39128070
3 -0.06809815 0.32950063
4 -0.06072192 -0.08812701
5 -0.05544649 -0.09782845
$Odds_ratio
Variables versicolor virginica
1 (Intercept) 1.309563e+08 4.446690e-11
2 Petal.Length 1.536120e+06 1.885001e+10
3 Petal.Width 4.515366e-02 3.742635e+06
4 Sepal.Length 4.260265e-03 3.620841e-04
5 Sepal.Width 1.653575e-04 2.111348e-07
$Percent_odds
Variables versicolor virginica
1 (Intercept) 1.309563e+10 -1.000000e+02
2 Petal.Length 1.536119e+08 1.885001e+12
3 Petal.Width -9.548463e+01 3.742634e+08
4 Sepal.Length -9.957397e+01 -9.996379e+01
5 Sepal.Width -9.998346e+01 -9.999998e+01
$Coef_sig
versicolor virginica
1 18.69 -23.836
2 14.245 23.66
3 -3.098 15.135
4 -5.458 -7.924
5 -8.707 -15.371
$Odds_sig
versicolor virginica
1 130956302.531 0
2 1536119.713 18850009278.36
3 0.045 3742635.304
4 0.004 0
5 0 0
$p_value
versicolor virginica
1 0.5930295 0.5051288
2 0.8129231 0.6955898
3 0.9457075 0.7417773
4 0.9515807 0.9297757
5 0.9557828 0.9220685
$Confident_interval
Variables Lower versicolor Upper versicolor Lower virginica
1 (Intercept) -49.85184 87.23259 -93.93730
2 Petal.Length -103.72880 132.21834 -94.85441
3 Petal.Width -92.25354 86.05818 -74.89380
4 Sepal.Length -181.64381 170.72696 -184.14699
5 Sepal.Width -316.50312 299.08832 -323.31956
Upper virginica
1 46.26475
2 142.17397
3 105.16440
4 168.29972
5 292.57802
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.