![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]()
Сообщение
#1
|
|
![]() Группа: Пользователи Сообщений: 1141 Регистрация: 10.04.2007 Пользователь №: 4040 ![]() |
При тестировании программы расчета критерия Коновера (двухвыборочного) возникло сомнение в правильности то ли формул, то ли составленной по ним программы. Формулы брались из известной монографии автора критерия. Результаты не должны сильно отличаться от эквивалентных тестов. А они отличаются. Просьба к уважаемым коллегам - указать источник с каким-либо примером расчета указанным критерием, включая исходные данные и результат. Иначе придется отложить программу до лучших времен.
Сообщение отредактировал Игорь - 27.01.2023 - 17:31 ![]() Ebsignasnan prei wissant Deiws ainat! As gijwans! Sta ast stas arwis!
|
|
![]() |
![]() |
![]()
Сообщение
#2
|
|
Группа: Пользователи Сообщений: 902 Регистрация: 23.08.2010 Пользователь №: 22694 ![]() |
Для дисперсионного комплекса InsectSprays (тестовый пример дисперсионного анализа в R, независимые выборки)
функция ConoverTest() из пакета {DescTools} выдает буквально следующее Код > library(DescTools) > ConoverTest(count~spray,InsectSprays,method="none") Conover's test of multiple comparisons : none mean.rank.diff pval B-A 2.6666667 0.5314 C-A -40.7083333 3.7e-14 *** D-A -26.5833333 3.1e-08 *** E-A -32.8333333 7.5e-11 *** F-A 3.4583333 0.4175 C-B -43.3750000 3.0e-15 *** D-B -29.2500000 2.4e-09 *** E-B -35.5000000 5.6e-12 *** F-B 0.7916667 0.8524 D-C 14.1250000 0.0014 ** E-C 7.8750000 0.0676 . F-C 44.1666667 1.4e-15 *** E-D -6.2500000 0.1451 F-D 30.0416667 1.1e-09 *** F-E 36.2916667 2.6e-12 *** --- Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 Результаты своих самоделок - процедуры DSCF (Dwass - Steel - Critchlow - Fligner) - Conover - Iman (1979) процедуры прикрепил в файле. В процедуре DSCF уверен. В процедуре Conover - Iman - уже нет. Но C - I дает согласованный c DSCF результат. Что касается Conover'а для связанных выборок (пост-хок для теста Фридмана), то там когда-то рассчитывал только критическое значение разности. Как считать достигнутый уровень значимости - до сих пор не знаю. Сообщение отредактировал 100$ - 27.01.2023 - 16:15
Прикрепленные файлы
|
|
![]() |
![]() |
![]()
Сообщение
#3
|
|
![]() Группа: Пользователи Сообщений: 1141 Регистрация: 10.04.2007 Пользователь №: 4040 ![]() |
Дико извиняюсь - возможно, неточно выразился. В данном случае интересует двухвыборочный критерий, представленный на с. 300 монографии Conover W.J. Practical nonparametric statistics. - New York, NY: John Wiley & Sons, 1999, под наименованием A test for equal variances. Автор пишет, что критерий реализован в StatXact, где называется Conover's test. В книге есть пример, и он в точности соответствует нашему расчету. Проблема в том, что с другими исходными данными результаты эквивалентных тестов сильно не бьются.
Хотя данные расчета, приведенные выше, пригодятся в дальнейшем тестировании. У меня многовыборочный критерий Коновера тоже проверять нужно. Спасибо. Добавление: в программе сейчас доступен критерий Шеффе. Результаты очень похожи. Сообщение отредактировал Игорь - 27.01.2023 - 17:35 ![]() Ebsignasnan prei wissant Deiws ainat! As gijwans! Sta ast stas arwis!
|
|
![]() |
![]() |
![]()
Сообщение
#4
|
|
Группа: Пользователи Сообщений: 902 Регистрация: 23.08.2010 Пользователь №: 22694 ![]() |
Дико извиняюсь - возможно, неточно выразился. В данном случае интересует двухвыборочный критерий, представленный на с. 300 монографии Conover W.J. Practical nonparametric statistics. - New York, NY: John Wiley & Sons, 1999, под наименованием A test for equal variances. Автор пишет, что критерий реализован в StatXact, где называется Conover's test. В книге есть пример, и он в точности соответствует нашему расчету. Проблема в том, что с другими исходными данными результаты эквивалентных тестов сильно не бьются. Да нет, это я,похоже, зациклился на пост-хоках. Вот сейчас пролистал ваш мануал MEcomMethod Guide и вот пож-ста 4.2.3.1.11 "Критерий Коновера". Что до формул, то привык доверять NCSS'овским мануалам. Вот ссылка Формулы похожи на ваши. А можно ваш тестовый пример? И что конкретно там "не бьется"? Клотц? Бартлетт? Левене? Браун - Форсайт? Что то еще, о чем я слыхом не слыхал? P.S. Имеющийся у меня путеводитель по StatXact'у (за авторством Меты и Пейтеля) упоминаний о критерии Коновера не содержит. Видимо, по причине своей ветхости. Сообщение отредактировал 100$ - 27.01.2023 - 23:32 |
|
![]() |
![]() |
![]()
Сообщение
#5
|
|
Группа: Пользователи Сообщений: 1219 Регистрация: 13.01.2008 Из: Челябинск Пользователь №: 4704 ![]() |
У меня есть архивы со StatXact (пиратка 6-ой версии и 30-дневный trial 8-ой версии). Могу установить и проверить нужные примеры именно в StatXact. На оф. сайте доступна trial 12-ой версии, требуется регистрация.
|
|
![]() |
![]() |
![]()
Сообщение
#6
|
|
![]() Группа: Пользователи Сообщений: 1141 Регистрация: 10.04.2007 Пользователь №: 4040 ![]() |
Вот пара примеров, где результаты "гуляют" относительно эквивалентных тестов. Хотя, может, и в их реализациях ошибки. Немного удручает такая ситуация. В источниках проходит мысль, что критерии для тестирования одних и тех же параметров должны показывать одинаковые выводы.
Код 23 21 18 28 17 32 25 30 22 41 19 24 31 35 26 34 29 27 22 39 36 Критерий Ансари-Бредли (рассеяние): t = 59, p = 0.417123 Критерий Зигеля-Тьюки (рассеяние): t = 113, p = 0.416345 Критерий Клотца (рассеяние): t = 0.606973, p = 0.456131 Критерий Коновера (рассеяние): t = 1284.5, p = 0.182109 *** Код 1.96 2.03 2.89 2.60 2.61 2.16 1.83 2.17 1.56 1.65 2.12 2.65 1.44 2.13 2.04 2.16 1.65 2.09 1.12 1.16 1.33 2.16 0.79 1.10 Критерий Ансари-Бредли (рассеяние): t = 77.5, p = 0.476818 Критерий Зигеля-Тьюки (рассеяние): t = 147.5, p = 0.442617 Критерий Клотца (рассеяние): t = 1.49046, p = 0.136103 Критерий Коновера (рассеяние): t = 2881, p = 0.16642 *** Пример из книги Коновера (у него вывод p < 0.01): Код 10.8 10.8 11.1 10.5 10.4 11.0 10.1 10.9 11.3 10.8 10.7 10.8 Критерий Ансари-Бредли (рассеяние): t = 11.5, p = 0.0228411 Критерий Зигеля-Тьюки (рассеяние): t = 20.5, p = 0.02566 Критерий Клотца (рассеяние): t = 3.52585, p = 0.000422126 Критерий Коновера (рассеяние): t = 462, p = 0.00997383 *** Сообщение отредактировал Игорь - 28.01.2023 - 14:08 ![]() Ebsignasnan prei wissant Deiws ainat! As gijwans! Sta ast stas arwis!
|
|
![]() |
![]() |
![]()
Сообщение
#7
|
|
Группа: Пользователи Сообщений: 902 Регистрация: 23.08.2010 Пользователь №: 22694 ![]() |
|
|
![]() |
![]() |
![]()
Сообщение
#8
|
|
![]() Группа: Пользователи Сообщений: 1141 Регистрация: 10.04.2007 Пользователь №: 4040 ![]() |
Вернее всего, так. Программы, скорее всего, считают правильно (тестировались как-никак), но нужно с выдачей разобраться. Не всегда понятно, что имели в виду авторы источников.
Тут вот такая мысль. Пусть сравниваем некоторые параметры. Назовем их А и В. 1. Предполагаем, что А > В. Пускай получаем p = 0,01. Т.е. действительно A > B. Это левое односторонне значение. 2. Другой случай, при том же предположении получаем p = 0,99. Оказывается, что на самом деле A < B. Наше предположение было неверным. И проверив гипотезу A < B, мы получили бы p = 0,01. Это правое односторонне значение. 3. Левое + правое = 0,02. Это двустороннее значение (т.е. проверяем A не равно B). В программе можно либо спросить пользователя, что он желает тестировать (так сделано в некоторых пакетах программ) и реализовать алгоритм, показанный выше, либо вычислить A и B и проверить все гипотезы. А можно сделать иначе. Вычислить p-значение формально из функции распределения статистики критерия, и объявить односторонним Min (p, 1 - p) (для симметричной функции распределения статистики критерия, для несимметричной* - вычислить правое и левое), а двусторонним - удвоенное одностороннее (сумму односторонних). Может быть, данный алгоритм необходимо реализовать при выводе результатов расчета, чтобы пользователь не гадал, что там на самом деле посчиталось? * Пример несимметричной - точный метод Фишера. Сообщение отредактировал Игорь - 31.01.2023 - 20:38 ![]() Ebsignasnan prei wissant Deiws ainat! As gijwans! Sta ast stas arwis!
|
|
![]() |
![]() |
![]()
Сообщение
#9
|
|
Группа: Пользователи Сообщений: 902 Регистрация: 23.08.2010 Пользователь №: 22694 ![]() |
Не всегда понятно, что имели в виду авторы источников. Ну, что касается многовыборочной проверки дисперсий, то тут как раз все понятно: H0: var1=var2=...=var(n) против альтернативы о том, что имеется хотя бы одна пара индексов i и j, для которых var(i) не равно var(j). Ссылка Цитата Тут вот такая мысль. Пусть сравниваем некоторые параметры. Назовем их А и В. 1. Предполагаем, что А > В. Пускай получаем p = 0,01. Т.е. действительно A > B. Это левое односторонне значение. 2. Другой случай, при том же предположении получаем p = 0,99. Оказывается, что на самом деле A < B. Наше предположение было неверным. И проверив гипотезу A < B, мы получили бы p = 0,01. Это правое односторонне значение. 3. Левое + правое = 0,02. Это двустороннее значение (т.е. проверяем A не равно B). Нет. Подобные рассуждения нахожу мелкобуржуазными и попросту вредными ![]() П.ч. p-value - это, вообще-то, вероятность, полученная из условного распределения статистики критерия. Условие: справедливость нулевой гипотезы. А нулевая гипотеза у нас формулируется консервативно: var1=var2. Для подавляющего большинства статистических критериев их распределение при альтернативе неизвестно. Ergo, из того что p<.05 вовсе не следует, что var1>var2, A < B, etc. Цитата В программе можно либо спросить пользователя, что он желает тестировать (так сделано в некоторых пакетах программ) и реализовать алгоритм, показанный выше, либо вычислить A и B и проверить все гипотезы. А можно сделать иначе. Вычислить p-значение формально из функции распределения статистики критерия, и объявить односторонним Min (p, 1 - p) (для симметричной функции распределения статистики критерия, для несимметричной* - вычислить правое и левое), а двусторонним - удвоенное одностороннее (сумму односторонних). Может быть, данный алгоритм необходимо реализовать при выводе результатов расчета, чтобы пользователь не гадал, что там на самом деле посчиталось? Я за то, чтобы проверить все гипотезы. По образу и подобию того, как это сделано здесь Сообщение отредактировал 100$ - 31.01.2023 - 23:30 |
|
![]() |
![]() |
![]()
Сообщение
#10
|
|
Группа: Пользователи Сообщений: 1219 Регистрация: 13.01.2008 Из: Челябинск Пользователь №: 4704 ![]() |
Критерий Коновера реализован исключительно точно, ну если для односторонней вероятности.... Я выставил максимум знаков в StatXact - 8, всё сошлось. По остальным статистика совпадает, а р не идентично, но близко. Клотц как-то иначе считается в StatXact.
Сообщение отредактировал nokh - 1.02.2023 - 00:33
Прикрепленные файлы
|
|
![]() |
![]() |
![]()
Сообщение
#11
|
|
![]() Группа: Пользователи Сообщений: 1141 Регистрация: 10.04.2007 Пользователь №: 4040 ![]() |
Спасибо большое. Без сравнения с другими программамаи не обошлось.
![]() Я за то, чтобы проверить все гипотезы. По образу и подобию того, как это сделано здесь Очень рад видеть это мнение. Как раз сегодня тоже осенило - действительно, нужно проверять ВСЕ гипотезы. Схема будет такая. Выводим значения параметров A и B , соответственно, выборок, X и Y, подлежащих проверке (среднее, дисперсия, медиана и т.д.). Пусть функция для тестирования называется FUNC и выдает одностороннее значение (кстати, оказалось, что все реализованные функции выдают одностороннее значение, а путаница понятна из следующего). 1. Проверяем гипотезу A > B. Вызываем FUNC (X,Y). Выводим одностороннее P-значение. Также вычисляем и сохраняем p1 = MIN(p,1 - p). 2. Проверяем гипотезу A < B. Вызываем FUNC (Y,X). Выводим одностороннее P-значение. Также вычисляем и сохраняем p2 = MIN(p,1 - p). 3. Проверяем гипотезу A != B. Ничего не вызываем. Выводим p1 + p2 под названием "двустороннее p-значение". Таким образом, каждый тест вызываем 2 раза, а пользователь получет исчерпывающую информацию и остается доволен простотой интерфейса. Обнаружилась проблема, имеющая отдаленное отношение к рассматриваемой теме, но имеющая. В программе есть несколько т.н. точных (перестановочных) критериев. При анализе выборок уже средней численности (до 12-13-14) резко увеличивается время счета, что для диалоговой программы неприемлемо. Придется ограничить использование перестановочных критериев численностью выборок. В принципе, данные критерии для малых выборок и нужны, когда плохо работают аппроксимации. Это заметно на критерии Вилкококсона, для которого есть и асимптотический, и точный вариант. Чем больше численность, тем более близки p-значения. Уже где-то с численности около 10 они различаются в 4 знаке после запятой. ![]() Ebsignasnan prei wissant Deiws ainat! As gijwans! Sta ast stas arwis!
|
|
![]() |
![]() |
![]()
Сообщение
#12
|
|
Группа: Пользователи Сообщений: 902 Регистрация: 23.08.2010 Пользователь №: 22694 ![]() |
Цитата Обнаружилась проблема, имеющая отдаленное отношение к рассматриваемой теме, но имеющая. Придется ограничить использование перестановочных критериев численностью выборок... Ну да. По образу и подобию того, как для критерия Макнемара считают точную биномиальную вероятность, если сумма элементов антидиагонали таблицы (b+c)<25. Если больше - пользуются хи-квадрат аппроксимацией. Игорь, а мы о какой программе говорим? StatAnt? А с какого ресурса вы ее раздаете? |
|
![]() |
![]() |
![]()
Сообщение
#13
|
|
Группа: Пользователи Сообщений: 902 Регистрация: 23.08.2010 Пользователь №: 22694 ![]() |
Пример из книги Коновера (у него вывод p < 0.01): Код 10.8 10.8 11.1 10.5 10.4 11.0 10.1 10.9 11.3 10.8 10.7 10.8 Критерий Ансари-Бредли (рассеяние): t = 11.5, p = 0.0228411 Критерий Зигеля-Тьюки (рассеяние): t = 20.5, p = 0.02566 Критерий Клотца (рассеяние): t = 3.52585, p = 0.000422126 Критерий Коновера (рассеяние): t = 462, p = 0.00997383 *** Не нравицца мне что-то ваш Клотц... Зато очень нравится мой (см. ручной счет в файле) Давайте "сверим часы". P.S. У Айвазяна ошибки, у Кобзаря ошибки, у Лемешко ошибки (потому как списали у Кобзаря), из оригинальной статьи Клотца (1962) вообще ничего не понятно... Как жить дальше? Сообщение отредактировал 100$ - 1.02.2023 - 16:32
Прикрепленные файлы
|
|
![]() |
![]() |
![]()
Сообщение
#14
|
|
![]() Группа: Пользователи Сообщений: 1141 Регистрация: 10.04.2007 Пользователь №: 4040 ![]() |
Сделал, как планировал. Вот результаты для тех же данных Коновера. Теперь нравится больше.
Критерий Ансари-Бредли (масштаб): левостороннее t = 30.5, p = 0.977159 правостороннее t = 11.5, p = 0.0228411 двустороннее p = 0.0456821 Критерий Зигеля-Тьюки (масштаб): левостороннее t = 57.5, p = 0.97434 правостороннее t = 20.5, p = 0.02566 двустороннее p = 0.0513199 Критерий Клотца (масштаб): левостороннее t = 6.1485, p = 0.999789 правостороннее t = 1.58914, p = 0.0386933 двустороннее p = 0.0389044 Критерий Коновера (масштаб): левостороннее t = 462, p = 0.990026 правостороннее t = 186, p = 0.00997383 двустороннее p = 0.0199477 Опубликованные формулы некоторых других критериев дают двухстороннее значение. Не знаю, пересчитывать ли из них левое и правое или так оставить ... Программа раздается с ресурса https://sourceforge.net/projects/statant/. Пока не нужно скачивать, т.к. последние исправления еще не внесены. Нужно еще переводы изменений сделать (базовый - английский + еще 6). Посмотрел, откуда брал формулы для Клотца: Hajek J., Sidak Z., Sen P.K. Theory of rank tests. - New York, NY: Academic Press, 1999. (есть русский перевод более раннего издания) и Conover W.J. Practical nonparametric statistics. - New York, NY: John Wiley & Sons, 1999. Формулы для Зигеля-Тьюки с поправками на объединение рангов брал в книге Петрович М.Л., Давидович М.И. Статистическое оценивание и проверка гипотез на ЭВМ. - М.: Финансы и статистика, 1989 (там есть ссылка на Холлендера). Сообщение отредактировал Игорь - 3.02.2023 - 22:17 ![]() Ebsignasnan prei wissant Deiws ainat! As gijwans! Sta ast stas arwis!
|
|
![]() |
![]() |
![]()
Сообщение
#15
|
|
Группа: Пользователи Сообщений: 902 Регистрация: 23.08.2010 Пользователь №: 22694 ![]() |
Сделал, как планировал. Вот результаты для тех же данных Коновера. Теперь нравится больше. Критерий Клотца (масштаб): левостороннее t = 6.1485, p = 0.999789 правостороннее t = 1.58914, p = 0.0386933 двустороннее p = 0.0389044 Не-а. ![]() У меня получилось: 1) t=6.1485 p=.011635 2) t=1.58914 p=.0077357 Итого 2-tailed p=.0193703. Что хоть немного напоминает результаты StatXact: asympt p=.02098 А вот, что дает пакет {coin} из R Код >library(coin) > x<-c(10.8,11.1,10.4,10.1,11.3,10.8,10.5,11,10.9,10.8,10.7,10.8) > gr<-factor(c(rep(1,5),rep(2,7))) > set<-data.frame(x,gr) > klotz_test(x ~ gr, data = set) Asymptotic Two-Sample Klotz Test data: x by gr (1, 2) Z = 2.2877, p-value = 0.02216 alternative hypothesis: true ratio of scales is not equal to 1 Точное распределение > pvalue(klotz_test(x ~ gr, data = set,distribution='exact')) [1] 0.01515152 Застрелицца можно. Цитата Посмотрел, откуда брал формулы для Клотца: Hajek J., Sidak Z., Sen P.K. Theory of rank tests. - New York, NY: Academic Press, 1999. (есть русский перевод более раннего издания) и Conover W.J. Practical nonparametric statistics. - New York, NY: John Wiley & Sons, 1999. Да, в старом издании формулы тоже правильные. Я их и программировал, да только уже и забыл. Сообщение отредактировал 100$ - 2.02.2023 - 01:36 |
|
![]() |
![]() |
![]()
Сообщение
#16
|
|
![]() Группа: Пользователи Сообщений: 1141 Регистрация: 10.04.2007 Пользователь №: 4040 ![]() |
Это круто - пять вариантов, и все разные.
Нашел у себя ошибку (при суммировании не добавлялась 1 к счетчику цикла). Результат получился, как у Вас. Формулы из Гаека (в переводном и английском изданиях совпадают). Критерий Клотца (масштаб): левостороннее t = 6.1485, p = 0.988365 правостороннее t = 1.58914, p = 0.00773574 двустороннее p = 0.0193703 А теперь возьмем формулы со с. 401 монографии Коновера (для вычислении среднего и дисперсии берется не номер, как у Гаека, а ранг). P-значение совпадает с асимптотическим вариантом из R. Критерий Клотца (масштаб): левостороннее t = 6.1485, p = 0.988922 правостороннее t = 1.58914, p = 0.0110785 двустороннее p = 0.022157 Казалось бы, какая разница, если суммирование по всему объединенному массиву? Предположу, что разница образуется при совпадающих вариантах выборок (= равных рангах). Отличие от StatXact, предположительно, может зависеть от способа ранжирования. Что делать будем? ![]() Сообщение отредактировал Игорь - 3.02.2023 - 10:15 ![]() Ebsignasnan prei wissant Deiws ainat! As gijwans! Sta ast stas arwis!
|
|
![]() |
![]() |
![]()
Сообщение
#17
|
|
Группа: Пользователи Сообщений: 902 Регистрация: 23.08.2010 Пользователь №: 22694 ![]() |
Нашел у себя ошибку (при суммировании не добавлялась 1 к счетчику цикла). Результат получился, как у Вас. Формулы из Гаека (в переводном и английском изданиях совпадают). Критерий Клотца (масштаб): левостороннее t = 6.1485, p = 0.988365 правостороннее t = 1.58914, p = 0.00773574 двустороннее p = 0.0193703 Браво, маэстро! (Бурные продолжительные аплодисменты, местами переходящие в овацию) Цитата Что делать будем? ![]() Поскольку в оригинальной статье Клотц работает с номерами и на их основе вычисляет соответствующие нормальные метки (см. ф-лу (2.3) и табл.3). то... Правильно: оставим себе Гаека - Шидака, а R-ное - R-щикам. Цитата Отличие от от StatXact, предположительно, может зависеть от способа ранжирования. Что касается exact распределения, то: 1) для объединенной выборки объемом 12 вариант существует 792 способа разбросать их по группам n1=5 и n2=7. 2) если парни из StaXact 8 раз наблюдали превышение пермутированного значения статистики критерия над эмпирическим, то их оценка 2-tailed p-value=8/792=.01010101... 3) если парни из R наблюдали то же самое 12 раз, то у них 2-tailed p-value=12/792=.015151515... И разница 12-8 являет собой связку длины 4. P.S. Но это был Клотц. А что не так с Коновером? У меня по NCSS'овским формулам с аппроксимацией хи-квадрат 2-sided p=.019947656. Точь-в-точь, как у корифеев. И все 4 критерия вроде бы рапортуют согласованно (p~.02, нулевая гипотеза отвергается на 5%-ном уровне и не отвергается на 1%-ном). Сообщение отредактировал 100$ - 2.02.2023 - 23:02 |
|
![]() |
![]() |
![]()
Сообщение
#18
|
|
![]() Группа: Пользователи Сообщений: 1141 Регистрация: 10.04.2007 Пользователь №: 4040 ![]() |
Браво, маэстро! (Бурные продолжительные аплодисменты, местами переходящие в овацию) Для того и затевалось обсуждение - дать народу правильно считающее ПО, при этом бесплатное и с открытыми исходниками. А тут еще импортозамещение в научных и образовательных учреждениях ... Нужно закрывать проблему (как было в свое время с AtteStat).P.S. Но это был Клотц. А что не так с Коновером? С Коновером все нормально. Это про его монографию речь была.Сейчас смотрю остальные методы проверки гипотез (Стьюдент, Вилкоксон и другие, методы на основе сравнения распределений). Нужно протестировать. Благодарность коллегам за помощь и идеи, появившиеся в результате обсуждения проблемы. От меня и от пользователей программ. Если можно, для следующей проблемы, более важной для пользователей, о том, что на самом деле тестируют статистические методы, сделаю другую тему. Сообщение отредактировал Игорь - 4.02.2023 - 09:04 ![]() Ebsignasnan prei wissant Deiws ainat! As gijwans! Sta ast stas arwis!
|
|
![]() |
![]() |
![]()
Сообщение
#19
|
|
Группа: Пользователи Сообщений: 902 Регистрация: 23.08.2010 Пользователь №: 22694 ![]() |
|
|
![]() |
![]() |
![]() ![]() |