<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ho simulato tre set di dati di 20 milioni di punti ciascuno per testare LR con variabili di risposta binarie con eventi molto rari:
1) Due effetti continui: Beta0=12, beta1=1 e Beta2=1. X1 è Normale (-0.8, .25) e X2 è -ABS[Normale (0,5)]. (Ciascuna delle due variabili aumenta la probabilità dell'evento, a seconda del valore della variabile.) In questo caso ci sono circa 711.000 eventi positivi in 20 milioni di campioni. Eseguendo LR, ottengo stime abbastanza buone delle tre beta: b 0 = 12.003, b 1 =1.005, b 2 =0,99996. Rquadro(U)=0,623, AICc = 2.314.760 e BIC=2.314.804. ROC AUC=0,97835.
2) Il secondo set di dati ha un effetto continuo e uno categorico. Per questi dati, sostituisco la seconda variabile continua nel primo set di dati con una variabile binaria che si verifica con probabilità 0,05 e Beta2 = -2. Questi dati contengono solo 394 eventi su un totale di 20 milioni di campioni. Dopo aver eseguito LR, le stime sono: b 0 = 11,0988, b 1 =1.184, b 2 =-1.01. Rquadro(U)=0,0283, AICc = 9,068 e BIC=9,112. Il ROC con AUC = 0,68. Quindi, mentre le stime di Beta0 e Beta1 sono ragionevoli, la stima di Beta2 per la variabile nominale sembra essere la metà del valore reale .
3) Per generare il terzo set di dati utilizzo entrambi gli effetti come variabili binarie generate in modo binomiale. Sostituisco una variabile continua nel primo set di dati con una variabile binaria che si verifica con probabilità 0,05 e Beta2 = -2. Sostituisco la seconda variabile continua con un'altra variabile casuale generata in modo binomiale con probabilità 0,1 e Beta = -1. Questi dati contengono solo 165 eventi su un totale di 20 milioni di campioni. Dopo aver eseguito LR, i valori dei parametri stimati sono: b 0 = 10,582, b 1 = - 1,14, b 2 = - 0,512. Rquadro(U)=0,0384, AICc = 4,038 e BIC=4,082. ROC AUC=0,6756. Quindi, mentre la stima di Beta0 è ragionevole, le stime di Beta1 e Beta2 per entrambe le variabili nominali sembrano essere la metà del valore reale
Cosa mi manca qui? Perché le stime dei coefficienti delle variabili categoriali dovrebbero essere la metà dei loro valori reali?
I miei prossimi test riguarderanno il sottocampionamento dei non-eventi e quindi l'applicazione della correzione del sottocampionamento alla Beta0. Ma prima vorrei capire le stime generate da LR in JMP. Qualsiasi suggerimento o chiarimento sarebbe molto apprezzato.
Il problema è come codifica il fattore categorico, non il tipo di modello. Non che ci siano -1 nell'elenco.
Prova la codifica 1/0
ranjan@mitre.org Apr 14, 2014 10:44 AM
I coded the nominal variables as 0/1 as you recommend and then did not use them, and applied the appropriate betas in the P calculation.
Non so cosa significhi...
Puoi sempre provare a contattare il supporto tecnico, se non ricevi una risposta qui. Hanno persone più familiari con JMP.
Riza
Il collegamento che hai inviato si applica al modello lineare. Sto lavorando con Logistic Regression.
Ho codificato le variabili nominali come 0/1 come mi consigliate e poi non le ho usate, e ho applicato i beta appropriati nel calcolo P. Ora le stime dei tre beta sono: 10.52, 0.9848 e 0.6534. Quindi, la Beta1 e la Beta2 che corrispondono alle variabili nominali sembrano essere ancora circa la metà del valore vero, ma il segno è ora opposto a quello che dovrebbe essere. Il vero Beta1 di -2 viene stimato come 0,9848 e il vero Beta2 di -1 viene stimato come 0,6534. Allego una versione breve del file se può essere d'aiuto. (se hai tempo per eseguire LR in JMP, il file dovrà essere esteso un po' per ottenere un numero sufficiente di eventi. Uso un file di 20 milioni di righe.
Grazie
http://www.jmp.com/support/help/The_Factor_Models.shtml#65535
Codificalo come 0/1 e non includere nell'effetto nominale per vedere se ottieni i risultati desiderati.
Vedere il collegamento sopra per sapere come JMP categorizza le variabili nominali.
Codifico la variabile nominale come 0 e il valore Beta e quindi utilizzo questi valori (quello che sono ad ogni voce) nel calcolo P(evento) mediante l'espressione logistica (1/(1+exp(beta0+Beta1+Beta2 ))). Ho ipotizzato che la voce nella colonna degli effetti verrà utilizzata solo come "etichetta" quando quella colonna è designata come Effetto nominale. Stai suggerendo che il valore inserito nella colonna venga utilizzato in qualche modo, se 0/1 e 1/2 fa la differenza?
Non ho familiarità con JMP, ma ecco alcuni motivi per cui accade in SAS
1. Controlla come hai codificato la tua variabile binaria (0/1) è diversa da 1/2
2. Se hai utilizzato una sorta di categorie automatiche, controlla come è parametrizzato, ad esempio la codifica degli effetti o la codifica referenziale.