GAA писал(а):
Приведите, пожалуйста, точную формулировку модели, о которой Вы говорите.
Я моделировал так:
генерируется вектор
длиной
из нормального распределения с центром
и стандартом 0.01
генерируется вектор
стандартных отклонений из распределения Пирсона
генерируется корреляционная матрица такая, что последний столбец и последняя строка нулевые.
из этой корреляционной матрицы и вектора дисперсий считается ковариационная матрица
.
Эти все операции только для того, чтобы рандомизировать данные.
генерируется несколько (
) случайных векторов из многомерного нормального распределения с вектором центров
и ковариационной матрицей
- это и есть исходные данные.
Далее считаем регрессию и статистику.
Считаем статистику много раз, смотрим ее закон распределения.
(вот код в математике)
n = 10;
m = 4
mid = 0;
s2 = 1;
Needs["MultivariateStatistics`"]
Needs["LinearRegression`"]
var = Array[a, m - 1];
mm = m - 1;
(*генератор валидной корреляционной матрицы*)
corrmatr :=
Block[{corr, det}, det = -1;
While[det <= 0, corr = RandomReal[{-1, 1}, {m, m}];
Do[corr[[i, j]] = corr[[j, i]], {i, 1, m}, {j, i, m}];
Do[corr[[m, i]] = 0; corr[[i, m]] = 0;
corr[[i, i]] = 1, {i, 1, m}]; det = Det[corr]]; corr]
corrmatr // MatrixForm
Det[corrmatr]
(*функция, генерирующая данные, считающая регрессию и статистику*)
fuu := Block[{},
mean = RandomReal[NormalDistribution[mid, 0.01], m];
dispr = Sqrt[RandomReal[ChiSquareDistribution[m], m]*s2/m];
cor = corrmatr;
covar = Table[cor[[i, j]]*dispr[[i]]*dispr[[j]], {i, m}, {j, m}];
XY = RandomReal[MultinormalDistribution[mean, covar], n];
regr = BestFitParameters /. Regress[XY, var, var, IncludeConstant -> False, RegressionReport ->BestFitParameters];
F = Table[XY[[i, j]], {i, n}, {j, m - 1}].regr;
Y = Table[XY[[i, m]], {i, n}];
delta = Y - F;
meanY = Total[Y]/n;
meanF = Total[F]/n;
SStot = (Y - 0).(Y - 0);
SSres = delta.delta;
f = ((SStot - SSres)/mm)/(SSres/(n - mm))]
fuu
(*считаем много статистик, строим графики*)
l = 10000;
ff = Table[fuu, {l}];
sff = Sort[ff];
Y = Table[i/l, {i, 1, l}];
rr = Transpose[{sff, Y}];
gr1 = ListPlot[rr];
gr2 = Plot[CDF[FRatioDistribution[mm, n - mm], x], {x, 0, sff[[l]]}, PlotRange -> All, PlotStyle -> Hue[1]];
gr3 = Plot[ CDF[NoncentralFRatioDistribution[mm - 1, n - mm, 0], x], {x, 0, sff[[l]]}, PlotRange -> All, PlotStyle -> Hue[0.3]];
Show[gr1, gr2, gr3]
GAA писал(а):
И укажите, пожалуйста, основную гипотезу, подлежащую проверке.
Вот тут самая большая проблема. Как правильно сформулировать гипотезу для того, чтобы ответить на вопрос: хорошая модель построена, или плохая? Вроде бы есть
, но он исключительно качественный и закон его распределения все равно следует из дисперсионного анализа.