看板 Statistics 關於我們 聯絡資訊
------------------------------------------------------------------------ [軟體程式類別]: SAS [程式問題]: nlp跑很多次,大概10000次以上就無法繼續,不過到底幾次不行,則沒有一定 [軟體熟悉度]: 低(1~3個月) [問題敘述]: 72筆資料跑一個maxlikelihood,大概要跑九萬多次,除卻無法收斂的問題,我還把 log和out檔輸出,而且我把result視窗也關掉了(在偏好設定裡的result全部取消勾勾), 且我用9.0,9.2,9.3也下去跑了,我的筆電是2.4雙核,6G記憶體,絕對夠用阿! 好奇怪,以下我po我覺得可能有問題的log檔,請大家協助我......身邊沒有人可以解決 我的問題,拜託大家!!!!BTW如果我只跑10000次以內的話,就可以完成他= =好奇怪 1. 這是我覺得有問題的nlp的log NOTE: Your code contains 3 program statements. NOTE: Gradient is computed using analytic formulas. NOTE: Hessian is computed using analytic formulas. WARNING: No output destinations active. NOTE: Initial value of parameter ALPHA is set randomly to 0.5391736806. NOTE: Initial value of parameter DELTA is set randomly to 0.3148269641. NOTE: Initial value of parameter ETA is set randomly to 0.0348223769. NOTE: Initial value of parameter MU is set randomly to 0.6781410708. ERROR: Execution Errors for _OBS_= 1 : ERROR: There are references to missing variables when the program code is executed for _OBS_= 1 WARNING: Your program statements cannot be executed completely. WARNING: In a total of 1 calls an error occurred during execution of the program statements. NLP attempted to recover by using a shorter step size. NOTE: The above message was for the following by-group: lastdt=1546763399 NOTE: There were 72 observations read from the data set WORK.NULL. NOTE: The data set WORK.PIN1136 has 0 observations and 4 variables. NOTE: PROCEDURE NLP used (Total process time): real time 0.07 seconds cpu time 0.03 seconds 2.這是算到nlp無法再繼續時的那一行,此時已經跑了一萬多次的nlp NOTE: Your code contains 3 program statements. NOTE: Gradient is computed using analytic formulas. NOTE: Hessian is computed using analytic formulas. WARNING: No output destinations active. NOTE: Initial value of parameter ALPHA is set randomly to 0.5802082902. NOTE: Initial value of parameter DELTA is set randomly to 0.2293911456. NOTE: Initial value of parameter ETA is set randomly to 0.1702876772. NOTE: Initial value of parameter MU is set randomly to 0.5281594463. WARNING: Your program statements cannot be executed completely. ERROR: Signal caught by CMP from PROC. ERROR: Floating Point Overflow. ERROR: Termination due to Floating Point Exception NOTE: The SAS System stopped processing this step because of errors. NOTE: There were 72 observations read from the data set WORK.NULL. WARNING: The data set WORK.PIN11160 may be incomplete. When this step was stopped there were 0 observations and 4 variables. NOTE: PROCEDURE NLP used (Total process time): real time 0.04 seconds cpu time 0.03 seconds [程式範例]: %macro mov(obs,winlong);/*enter this data _n_ and howmany deal to a pin*/ %let k=&obs-&winlong+1;/*how many window*/ %let label=tail/100; %do i=1 %to &k; data null; set eur; if _n_>&i+&winlong-1 then delete; if _n_<&i then delete; num=&i+&winlong-1; data temp; set null(rename=(dt=lastdt)); by num; if last.num then output; data null; merge null temp; by num; proc nlp data=null noprint out=pin&i. (keep =lastdt ALPHA ETA MU); by lastdt; max loglik; decvar ALPHA, DELTA, ETA, MU; M = min(bidv,askv) + max(bidv,askv) / 2.0 ; x = eta / (mu + eta) ; bounds 0.0 < eta mu, 0.0 <= alpha delta <= 1.0 ; loglik = -2.0 * eta + M * log(x) + (bidv + askv) * log(mu + eta) + log( alpha * (1.0 - delta) * exp(-1.0 * mu) * (x ** (askv - M )) + alpha * delta * exp(-1.0 * mu) * (x ** (bidv - M)) + (1.0 - alpha) * (x ** (bidv + askv - M)) ) ;run; data pin&i; set pin&i; by lastdt; if last.lastdt; %end; data pinall; set %do i=1 %to &k; pin&i %end; ;by lastdt; %mend; ----------------------------------------------------------------------------- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.115.160.90