Ig
−gtIg
Це дає вам оцінену дисперсію для цієї залежної змінної. Візьміть квадратний корінь, щоб отримати оцінене стандартне відхилення. то довірчі межі - це передбачуване значення + - два стандартних відхилення. Це стандартні ймовірні речі. для особливого випадку нелінійної регресії ви можете виправити ступеня свободи. У вас є 10 спостережень і 4 параметри, тому ви можете збільшити оцінку дисперсії в моделі, помноживши на 10/6. Кілька програмних пакетів зроблять це за вас. Я записав вашу модель в AD Model в AD Model Builder і підходив до неї і розраховував (немодифіковані) відхилення. Вони трохи відрізнятимуться від ваших, бо мені довелося трохи здогадатися про значення.
estimate std dev
10 pred_E -4.8495e+01 7.5100e-03
11 pred_E -4.8810e+01 7.9983e-03
12 pred_E -4.9028e+01 7.5675e-03
13 pred_E -4.9224e+01 6.4801e-03
14 pred_E -4.9303e+01 6.8034e-03
15 pred_E -4.9328e+01 7.1726e-03
16 pred_E -4.9329e+01 7.0249e-03
17 pred_E -4.9297e+01 7.1977e-03
18 pred_E -4.9252e+01 1.1615e-02
Це можна зробити для будь-якої залежної змінної в AD Model Builder. Один оголошує змінну у відповідному місці в такому коді
sdreport_number dep
і записує код для оцінки залежної змінної, як це
dep=sqrt(V0-cube(Bp0)/(1+2*max(V)));
Зауважимо, що це оцінюється за значенням незалежної змінної в 2 рази, ніж найбільше, що спостерігається в примірці моделі. Підходить модель і отримується стандартне відхилення для цієї залежної змінної
19 dep 7.2535e+00 1.0980e-01
Я змінив програму, щоб вона включала код для обчислення меж довіри для функції ентальпії-гучності Файл коду (TPL) виглядає як
DATA_SECTION
init_int nobs
init_matrix data(1,nobs,1,2)
vector E
vector V
number Vmean
LOC_CALCS
E=column(data,2);
V=column(data,1);
Vmean=mean(V);
PARAMETER_SECTION
init_number E0
init_number log_V0_coff(2)
init_number log_B0(3)
init_number log_Bp0(3)
init_bounded_number a(.9,1.1)
sdreport_number V0
sdreport_number B0
sdreport_number Bp0
sdreport_vector pred_E(1,nobs)
sdreport_vector P(1,nobs)
sdreport_vector H(1,nobs)
sdreport_number dep
objective_function_value f
PROCEDURE_SECTION
V0=exp(log_V0_coff)*Vmean;
B0=exp(log_B0);
Bp0=exp(log_Bp0);
if (current_phase()<4)
f+=square(log_V0_coff) +square(log_B0);
dvar_vector sv=pow(V0/V,0.66666667);
pred_E=E0 + 9*V0*B0*(cube(sv-1.0)*Bp0
+ elem_prod(square(sv-1.0),(6-4*sv)));
dvar_vector r2=square(E-pred_E);
dvariable vhat=sum(r2)/nobs;
dvariable v=a*vhat;
f=0.5*nobs*log(v)+sum(r2)/(2.0*v);
// code to calculate the enthalpy-volume function
double delta=1.e-4;
dvar_vector svp=pow(V0/(V+delta),0.66666667);
dvar_vector svm=pow(V0/(V-delta),0.66666667);
P = -((9*V0*B0*(cube(svp-1.0)*Bp0
+ elem_prod(square(svp-1.0),(6-4*svp))))
-(9*V0*B0*(cube(svm-1.0)*Bp0
+ elem_prod(square(svm-1.0),(6-4*svm)))))/(2.0*delta);
H=E+elem_prod(P,V);
dep=sqrt(V0-cube(Bp0)/(1+2*max(V)));
Тоді я перепрофілював модель, щоб отримати стандартні розробки для оцінок H.
29 H -3.9550e+01 5.9163e-01
30 H -4.1554e+01 2.8707e-01
31 H -4.3844e+01 1.2333e-01
32 H -4.5212e+01 1.5011e-01
33 H -4.6859e+01 1.5434e-01
34 H -4.7813e+01 1.2679e-01
35 H -4.8808e+01 1.1036e-01
36 H -4.9626e+01 1.8374e-01
37 H -5.0186e+01 2.8421e-01
38 H -5.0806e+01 4.3179e-01
Вони обчислюються для спостережуваних значень V, але їх можна легко обчислити для будь-якого значення В.
Було зазначено, що це фактично лінійна модель, для якої існує простий R код для оцінки параметрів через OLS. Це особливо привабливо для наївних користувачів. Однак, оскільки працю Хубера понад тридцять років тому ми знаємо або повинні знати, що, мабуть, майже завжди слід замінити OLS на помірно надійну альтернативу. Причина цього не робиться звичайно. Я вважаю, що надійні методи за своєю суттю нелінійні. З цієї точки зору прості привабливі методи OLS в R - це скоріше пастка, а не особливість. Недоліком підходу AD Model Builder є його підтримка нелінійного моделювання. Для зміни коду найменших квадратів на надійну звичайну суміш потрібно змінити лише один рядок коду. Лінія
f=0.5*nobs*log(v)+sum(r2)/(2.0*v);
змінено на
f=0.5*nobs*log(v)
-sum(log(0.95*exp(-0.5*r2/v) + 0.05/3.0*exp(-0.5*r2/(9.0*v))));
Кількість наддисперсії в моделях вимірюється параметром a. Якщо дорівнює 1,0, дисперсія така ж, як і для звичайної моделі. Якщо спостерігається інфляція дисперсії, що склалася, ми очікуємо, що a буде менше 1,0. Для цих даних оцінка a становить приблизно 0,23, так що дисперсія становить приблизно 1/4 дисперсії для звичайної моделі. Інтерпретація полягає в тому, що люди, які переживають люди, збільшили оцінку дисперсії приблизно в 4 рази. Ефектом цього є збільшення розміру меж довіри для параметрів для моделі OLS. Це означає втрату ефективності. Для моделі звичайної суміші оцінені стандартні відхилення для функції ентальпії-гучності є
29 H -3.9777e+01 3.3845e-01
30 H -4.1566e+01 1.6179e-01
31 H -4.3688e+01 7.6799e-02
32 H -4.5018e+01 9.4855e-02
33 H -4.6684e+01 9.5829e-02
34 H -4.7688e+01 7.7409e-02
35 H -4.8772e+01 6.2781e-02
36 H -4.9702e+01 1.0411e-01
37 H -5.0362e+01 1.6380e-01
38 H -5.1114e+01 2.5164e-01
Видно, що в точкових оцінках є невеликі зміни, тоді як межі довіри були зменшені до приблизно 60% від тих, які виробляються OLS.
Головне, що я хочу зробити, - це те, що всі змінені обчислення відбуваються автоматично, як тільки змінюється один рядок коду у файлі TPL.