Modello misto REML: messaggio di errore "Impossibile allocare memoria sufficiente".CIAO,
Ricevo un messaggio di errore "Impossibile allocare memoria" durante il tentativo di eseguire REML (effetti casuali). Potresti per favore aiutarmi a capire cosa c'è che non va?
- Il mio set di dati ha una dimensione di 1,7 MB, con 27 K righe e 7 colonne.
- La mia macchina è Win 10, 12 GB di RAM e 88 GB di spazio libero su HDD.
- Anche il mio modello è piuttosto semplice (solo tre variabili).
- Sto usando JMP 13.2.1
La mia aspettativa era che questa capacità computazionale extra fosse più che sufficiente per questo compito relativamente piccolo. Sto pensando che ci deve essere qualcosa di sbagliato nelle mie impostazioni JMP.
Potresti per favore aiutarmi a capirlo?
Grazie in anticipo!
Re: modello misto REML: messaggio di errore "Impossibile allocare memoria sufficiente".Grazie. Questo è completamente nuovo per me. Tuttavia, ho controllato di nuovo la fattura e la stampa fine dice 32 bit. È stato un mio errore non averlo visto prima.
Penso che questo concluda la questione per me. Apprezzo sinceramente tutto l'aiuto che avete generosamente offerto.Solo sapere che non è stato un errore nella metodologia, fa molta differenza per il mio morale.
Anche se non sarò più in grado di utilizzare JMP per l'accelerazione della mia versione, avrò sempre la massima gratitudine per tutti voi.
Grazie.
Re: modello misto REML: messaggio di errore "Impossibile allocare memoria sufficiente".Hai la versione con licenza per utente singolo di JMP che è solo a 32 bit. La nostra versione con licenza annuale è l'unica disponibile a 64 bit.
Re: modello misto REML: messaggio di errore "Impossibile allocare memoria sufficiente".Probabilmente dovresti contattare il supporto tecnico di JMP. Durante l'installazione di JMP dovrebbe controllare automaticamente il "bitness" della tua macchina e installare la versione corretta. La tua copia di Windows 10 è a 64 bit? Forse è quello che viene controllato per determinare il "bitness" di JMP da installare.
Re: modello misto REML: messaggio di errore "Impossibile allocare memoria sufficiente".
@Dan_Obermiller
SÌ. Ci sei riuscito, grazie.JMP è stato installato come file .
Ho provato a disinstallare/reinstallare. Tuttavia, si pone ancora a 32 bit senza un'opzione per scegliere 64 bit. (disattivato nello screenshot qui sotto) . Qualsiasi suggerimento sarebbe molto apprezzato.

------
@ih
Non posso ringraziarti abbastanza. Al tuo punto, ho aperto Task Manager su un secondo schermo e l'ho osservato mentre eseguivo il modello. Non ha nemmeno catturato il 50% della memoria o dell'utilizzo della CPU. Tuttavia, stavo osservando le opzioni di espansione su Amazon e dicendo addio allo stipendio prima che sapessimo che è la cosa a 32 bit 
Re: modello misto REML: messaggio di errore "Impossibile allocare memoria sufficiente".Si spera che il problema sia a 32 bit, ma sembrano accadere cose divertenti quando ti avvicini al limite di memoria del tuo computer. Una volta ho aggiunto memoria a una macchina che non è stata in grado di completare un'analisi e dopo aver aggiornato l'analisi è stata completata utilizzando meno memoria di quella inizialmente installata.Forse JMP consuma momentaneamente più di 8 GB durante l'impostazione dell'analisi.
Per confermare che hai effettivamente esaurito la memoria, potresti provare ad aumentare gradualmente il numero di righe nella tabella dei dati e guardare Task Manager di Windows per vedere quanto ti avvicini al 100% di utilizzo della memoria fisica.
Se sei a corto di memoria non sei del tutto sfortunato, puoi fare la tua analisi su sottoinsiemi della tabella più grande, quindi fare la media dei risultati.Ogni iterazione potrebbe essere simile a questa:
dt = current data table();
//Make a list of store numbers
FilterStoreTabluate = dt << Tabulate(
Add Table( Row Table( Grouping Columns( :Store ) ) )
);
//Get store numbers as data table, close tablate
dtFilterStore = FilterStoreTabluate << Make Into Data Table;
FilterStoreTabluate << Close Window();
//Make a column with random numbers
dtFilterStore << New Column(
"Rank",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula( Random Uniform() )
);
//Select 2500 stores
dtFilterStore << New Column(
"Keep",
Numeric,
"Nominal",
Format( "Best", 12 ),
Formula( Col Rank( :Rank ) < 2500 ),
Set Selected
);
//Join the list to your original data table
dtSubsetWhole = dt << Join(
With( dtFilterStore ),
Select(
:Store,
:Time,
:Geo,
:Type of Management,
:Base Cost,
:Cost
),
SelectWith( :Keep ),
By Matching Columns( :Store = :Store ),
Drop multiples( 0, 0 ),
Include Nonmatches( 1, 0 ),
Preserve main table order( 1 )
);
//close the list of stores
dtFilterStore << Close Window();
//Select only stores selected to 'keep'
dtSubsetFilter = dtSubsetWhole << Data Filter(
Location( {938, 189} ),
Add Filter( columns( :Keep ), Where( :Keep == 1 ) )
);
//Make data table with only stores you want to keep. Simply excluding where Keep = 0 might work as well.
dtSubset = dtSubsetFilter << Show Subset;
//Run the fit modelRe: modello misto REML: messaggio di errore "Impossibile allocare memoria sufficiente".Hai fornito le specifiche della tua macchina, ma stai usando JMP a 64 bit? A volte le persone potrebbero utilizzare JMP a 32 bit. L'utilizzo solo di software a 32 bit può limitare la quantità di memoria a cui il computer è in grado di accedere, indipendentemente da quanta ne è installata.
Re: modello misto REML: messaggio di errore "Impossibile allocare memoria sufficiente".Sì. È proprio così. Devo dire che sono impressionato da come potresti ricrearlo con una sceneggiatura. Rispetta!
Ho eseguito il modello e ricevo di nuovo lo stesso messaggio di errore:

Prima di iniziare l'analisi, il mio computer aveva circa 8 GB di RAM libera. Se lo stesso esperimento ha consumato solo 6 GB da parte tua, perché JMP restituisce questo messaggio di errore qui?C'è un'altra misura della memoria che dovrei tenere d'occhio?
Grazie molto!
Re: modello misto REML: messaggio di errore "Impossibile allocare memoria sufficiente".Hai una variabile in più rispetto a me, ma ho comunque completato quella che credo sia un'analisi simile in 12 minuti con poco più di 6 GB di memoria.Questo tavolo sembra il tuo adesso?
Random Reset(123);
//Make some data
dt = New Table( "RandomEffect Example",
Add Rows( 27000 ), //Set the number of rows here
New Column(
"Store",
Character,
"Nominal",
Format( "Best", 12 ),
Formula( Char( Sequence( 1, 5500, 1, 5 ) ) )
),
New Column(
"Time",
Numeric,
"Ordinal",
Format( "Best", 12 ),
Formula( Sequence( 1, 5, 1, 1 ) )
),
New Column(
"Geo",
Numeric,
"Nominal",
Format( "Best", 12 ),
Formula( If( Random Normal() > 0, 1, 2 ) )
),
New Column(
"Type of Management",
Numeric,
"Nominal",
Format( "Best", 12 ),
Formula( If( Random Normal() > 0, 1, 2 ) )
),
New Column(
"Base Cost",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula(
If( Row() == 1 | :Store != Lag( :Store, 1 ),
Round( Random Uniform( 1000, 2000 ), 0 ),
Lag( :Base Cost, 1 )
)
)
),
New Column(
"Cost",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula(
Round(
:Base Cost + If( :Type of Management == 1,
50 + 50 * :Time,
-50 * :Time
) + If( :Geo == 1,
500 + 10 * :Time,
-10 * :Time
) + Random Normal( 0, 200 )
)
)
)
);In tal caso, questa dovrebbe essere la stessa analisi che hai fatto:
//Analysis
dt << Fit Model(
Y( :Cost ),
Effects( :Time, :Type of Management, :Time * :Type of Management ),
Random Effects( :Store[:Geo] ),
NoBounds( 1 ),
Personality( "Standard Least Squares" ),
Method( "REML" ),
Emphasis( "Minimal Report" ),
Run(
:Cost << {Summary of Fit( 1 ), Analysis of Variance( 0 ),
Parameter Estimates( 1 ), Lack of Fit( 0 ), Plot Actual by Predicted( 0 ),
Plot Regression( 0 ), Plot Residual by Predicted( 0 ),
Plot Effect Leverage( 0 )}
)
);Re: modello misto REML: messaggio di errore "Impossibile allocare memoria sufficiente".Grazie molto! Lo script funziona abbastanza bene qui. Sono impressionato!
Tuttavia, consentitemi di sottolineare che i miei dati sono 5400 negozi, ciascuno con 5 osservazioni, ovvero 27.000 righe. Allego un esempio di come appare (i primi pochi obs).In ogni periodo prendiamo nota del tipo di gestione che ha avuto quel punto vendita.Ora voglio modellare il costo come variabile di risposta, mentre il tipo di gestione come predittore, nei cinque periodi di tempo. Come accennato in precedenza, abbiamo 5400 di questi negozi, quindi 27K obs. La mia comprensione è che questo è un caso di misure ripetute.
Ecco come lo sto facendo attraverso la GUI.

E questo è il messaggio di errore che viene visualizzato quando si utilizzano i dati in piena regola:

Vi ringrazio ancora per il vostro tempo e aiuto.
Re: modello misto REML: messaggio di errore "Impossibile allocare memoria sufficiente".Lo script seguente ricrea la tua analisi tranne che con un numero inferiore di negozi?Su Windows, JMP ha consumato 5,6 GB di memoria e ha impiegato 6 minuti e 11 secondi su un processore per analizzare 60.000 righe (600 negozi).
| Righe | Memoria consumata (MB) |
| 10.000 | 650 |
| 20.000 | 1.272 |
| 30.000 | 2.294 |
| 40.000 | 3.775 |
| 50.000 | 5.592 |
| 60.000 | 6.662 |
Sceneggiatura:
Random Reset(123);
//Make some data
dt = New Table( "RandomEffect Example",
Add Rows( 5400 ), //Set the number of rows here
New Column(
"Store",
Numeric,
"Nominal",
Format( "Best", 12 ),
Formula( Sequence( 1, 5500, 1, 10 ) )
),
New Column(
"Type",
Numeric,
"Nominal",
Format( "Best", 12 ),
Formula( Sequence( 0, 1, 1, 5 ) )
),
New Column(
"Time",
Numeric,
"Ordinal",
Format( "Best", 12 ),
Formula( Sequence( 1, 5, 1, 1 ) )
),
New Column(
"Base Sales",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula(
If( Row() == 1 | :Store != Lag( :Store, 1 ),
Round( Random Uniform( 1000, 2000 ), 0 ),
Lag( :Base Sales, 1 )
)
)
),
New Column(
"Sales",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula(
Round(
:Base Sales + If( :Type == 1,
50 + 50 * :Time,
-50 * :Time
) + Random Normal( 0, 200 )
)
)
)
);
//Analysis
dt << Fit Model(
Y( :Sales ),
Effects( :Type, :Time, :Type * :Time ),
Random Effects( :Store[:Type] ),
NoBounds( 1 ),
Personality( "Standard Least Squares" ),
Method( "REML" ),
Emphasis( "Minimal Report" ),
Run(
:Sales << {Summary of Fit( 1 ), Analysis of Variance( 0 ),
Parameter Estimates( 1 ), Lack of Fit( 0 ), Plot Actual by Predicted( 0 ),
Plot Regression( 0 ), Plot Residual by Predicted( 0 ),
Plot Effect Leverage( 0 ), {:Type * :Time << {LSMeans Plot( 1 )}}}
)
);
Re: modello misto REML: messaggio di errore "Impossibile allocare memoria sufficiente".CIAO,
Grazie mille! Mi scuso per il ritardo nella risposta. Perso nell'abisso di risolvere questa cosa e sul punto di perdere la speranza.
Il modello e i dati sono simili a Questo offerto da JMP .Seguendo le specifiche dell'esempio, i miei dati hanno poco più di 5400 negozi, ciascuno con 5 osservazioni (per tempo).
Come nell'esempio, la mia variabile predittore e l'effetto casuale sono categorici (1, 2) nidificati in un'altra variabile categoriale per la posizione (1, 2). Il tempo è in cinque intervalli (da qui le cinque osservazioni per soggetto).
Ho seguito gli stessi passaggi dell'esempio JMP, ma ottengo sempre il messaggio di errore. Ho anche provato senza l'annidamento e l'errore si ripresenta.
Grazie ancora!
Re: modello misto REML: messaggio di errore "Impossibile allocare memoria sufficiente".Puoi dire di più sul modello che stai montando? Hai una variabile categoriale come effetto casuale? Se sì, quanti livelli ha?
Fil