REML 혼합 모델: "충분한 메모리를 할당할 수 없습니다" 오류 메시지안녕,
REML(Random Effects)을 수행하는 동안 "메모리를 할당할 수 없습니다"라는 오류 메시지가 나타납니다. 무엇이 잘못되었는지 알아낼 수 있도록 도와 주시겠습니까?
- 내 데이터 세트는 크기가 1.7MB이고 27K 행과 7열입니다.
- 내 컴퓨터는 Win 10, 12GB RAM 및 88GB 여유 HDD 공간입니다.
- 내 모델도 매우 간단합니다(3개의 변수만 있음).
- JMP 13.2.1을 사용하고 있습니다.
내 기대는 이 추가 컴퓨팅 용량이 이 상대적으로 작은 작업에 충분할 것입니다. JMP 설정에 문제가 있는 것 같습니다.
이것을 알아낼 수 있도록 도와 주시겠습니까?
미리 감사드립니다!
Re: REML 혼합 모델: "충분한 메모리를 할당할 수 없습니다" 오류 메시지감사합니다. 이것은 나에게 완전히 새로운 것입니다. 그런데 인보이스를 다시 확인해보니 작은 글씨로 32비트라고 되어 있습니다. 이걸 일찍 못본게 내 잘못이다.
나는 이것이 나를 위해 문제를 결론 짓는다고 생각합니다. 아낌없이 베풀어 주신 모든 도움에 진심으로 감사드립니다.방법론상 실수가 아니었다는 사실을 아는 것만으로도 사기가 많이 달라집니다.
제 버전의 스로틀에 JMP를 더 이상 사용할 수는 없지만 항상 여러분 모두에게 최고의 감사를 드립니다.
감사합니다.
Re: REML 혼합 모델: "충분한 메모리를 할당할 수 없습니다" 오류 메시지32비트에 불과한 JMP의 단일 사용자 라이선스 버전이 있습니다. 연간 라이센스 버전은 64비트에서 사용할 수 있는 유일한 버전입니다.
Re: REML 혼합 모델: "충분한 메모리를 할당할 수 없습니다" 오류 메시지JMP 기술 지원에 문의해야 합니다. JMP를 설치할 때 자동으로 컴퓨터의 "비트"를 확인하고 적절한 버전을 설치해야 합니다. 사용 중인 Windows 10이 64비트입니까? 설치할 JMP의 "비트"를 결정하기 위해 확인하는 것일 수 있습니다.
Re: REML 혼합 모델: "충분한 메모리를 할당할 수 없습니다" 오류 메시지
@Dan_Obermiller
예. 수고하셨습니다. 감사합니다.JMP는 32비트로 설치되었습니다.
제거/재설치를 시도했습니다. 그러나 64비트를 선택할 수 있는 옵션 없이 여전히 32비트로 표시됩니다. (아래 스크린샷에서 회색으로 표시됨) . 어떤 제안이라도 대단히 감사하겠습니다.

------
@ih
충분히 감사할 수 없습니다. 요컨대, 두 번째 화면에서 작업 관리자를 열고 모델을 실행하면서 관찰했습니다. 메모리나 CPU 사용량의 50%도 잡지 못했습니다. 그래도 저는 Amazon에서 확장 옵션을 주시하고 32비트라는 것을 알기도 전에 월급에 작별을 고했습니다 
Re: REML 혼합 모델: "충분한 메모리를 할당할 수 없습니다" 오류 메시지다행히도 32비트가 문제지만 컴퓨터의 메모리 한계에 가까워지면 재미있는 일이 일어나는 것 같습니다. 분석을 완료할 수 없는 시스템에 메모리를 추가한 적이 있으며 업그레이드 후 처음 설치된 것보다 적은 메모리를 사용하여 분석이 완료되었습니다.JMP는 분석을 설정할 때 일시적으로 8GB 이상을 소비할 수 있습니다.
실제로 메모리가 부족하다는 것을 확인하려면 데이터 테이블의 행 수를 점진적으로 늘리고 Windows 작업 관리자를 살펴보고 물리적 메모리 사용량이 100%에 얼마나 근접하는지 확인할 수 있습니다.
메모리가 부족한 경우 완전히 운이 없는 것은 아닙니다. 더 큰 테이블의 하위 집합에 대한 분석을 수행한 다음 결과의 평균을 낼 수 있습니다.각 반복은 다음과 같을 수 있습니다.
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: REML 혼합 모델: "충분한 메모리를 할당할 수 없습니다" 오류 메시지컴퓨터 사양을 제공했지만 64비트 JMP를 사용하고 있습니까? 때때로 사람들은 32비트 JMP를 사용할 수 있습니다. 32비트 소프트웨어만 사용하면 설치된 메모리 양과 관계없이 컴퓨터에서 액세스할 수 있는 메모리 양이 제한될 수 있습니다.
Re: REML 혼합 모델: "충분한 메모리를 할당할 수 없습니다" 오류 메시지네. 그것과 아주 비슷합니다. 대본으로 어떻게 재현할 수 있는지 감명받았습니다. 인사!
모델을 실행했는데 동일한 오류 메시지가 다시 나타납니다.

분석을 시작하기 전에 내 컴퓨터에는 약 8GB의 여유 RAM이 있었습니다. 동일한 실험에서 사용자 쪽에서 6GB만 사용했다면 JMP가 여기에 그러한 오류 메시지를 반환하는 이유는 무엇입니까?계속 주시해야 할 또 다른 메모리 측정이 있습니까?
감사합니다!
Re: REML 혼합 모델: "충분한 메모리를 할당할 수 없습니다" 오류 메시지저보다 변수가 하나 더 있지만 6GB가 조금 넘는 메모리로 12분 만에 비슷한 분석이라고 생각되는 작업을 완료했습니다.이 테이블이 지금 당신의 테이블처럼 보이나요?
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 )
)
)
)
);그렇다면 이것은 귀하가 수행한 것과 동일한 분석이어야 합니다.
//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: REML 혼합 모델: "충분한 메모리를 할당할 수 없습니다" 오류 메시지감사합니다! 스크립트는 여기에서 매우 원활하게 실행됩니다. 나는 감동!
그러나 내 데이터는 5400개의 저장소이고 각각 5개의 관찰이 있는 27K 행이라는 점을 지적할 수 있습니다. 나는 그것이 어떻게 보이는지에 대한 예를 첨부하고 있습니다 (처음 몇 가지 obs).각 기간마다 점포의 경영 형태에 주목합니다.이제 5개 기간 동안 비용을 응답 변수로 모델링하고 관리 유형을 예측 변수로 모델링하려고 합니다. 위에서 언급했듯이 우리는 5400개의 매장을 보유하고 있으므로 27K obs입니다. 제가 이해하는 것은 이것은 반복적인 조치의 경우라는 것입니다.
이것이 내가 GUI를 통해 수행하는 방법입니다.

본격적인 데이터를 사용할 때 표시되는 오류 메시지는 다음과 같습니다.

귀하의 시간과 도움에 다시 한 번 감사드립니다.
Re: REML 혼합 모델: "충분한 메모리를 할당할 수 없습니다" 오류 메시지아래 스크립트는 매장 수가 적은 경우를 제외하고 분석을 다시 생성합니까?Windows에서 JMP는 5.6GB의 메모리를 사용했고 60,000개의 행(600개 저장소)을 분석하는 데 한 프로세서에서 6분 11초가 걸렸습니다.
| 행 | 사용된 메모리(MB) |
| 10,000 | 650 |
| 20,000 | 1,272 |
| 30,000 | 2,294 |
| 40,000 | 3,775 |
| 50,000 | 5,592 |
| 60,000 | 6,662 |
스크립트:
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: REML 혼합 모델: "충분한 메모리를 할당할 수 없습니다" 오류 메시지안녕,
매우 감사합니다! 답변이 늦어진 점 사과드립니다. 이 문제를 해결하는 심연에서 길을 잃고 희망을 잃기 직전입니다.
모델과 데이터는 다음과 유사합니다. 이 하나 JMP에서 제공합니다.예제의 세부 사항에 따라 내 데이터에는 5400개가 조금 넘는 매장이 있으며 각 매장에는 5개의 관찰(시간)이 있습니다.
예에서와 같이 내 예측 변수와 무작위 효과는 위치(1, 2)에 대한 다른 범주형 변수에 중첩된 범주형(1, 2)입니다. 시간은 5개 간격입니다(따라서 대상당 5개의 관찰).
JMP 예제와 동일한 단계를 따랐지만 항상 오류 메시지가 나타납니다. 중첩하지 않고 시도했는데 오류가 다시 발생합니다.
다시 한번 감사합니다!
Re: REML 혼합 모델: "충분한 메모리를 할당할 수 없습니다" 오류 메시지피팅하고 있는 모델에 대해 더 자세히 말씀해 주시겠습니까? 무작위 효과로 범주형 변수가 있습니까? 그렇다면 몇 단계입니까?
필