Начало работы 1. Загрузите новый скрипт (Файл – Новый скрипт) 2. Записывайте команды в окне для скрипта 3. Для активации команды установите курсор на строке с нужной командой и нажмите Ctrl+R 4. Помните, что в названиях переменных, как и в названиях команд важен регистр! Реализация метода Монте – Карло Генерирование случайной выборки: из нормального закона: rnorm(n, EX, DX ), где n – объем выборки, EX – популяционное среднее (мат.ожидание), DX – популяционное стандартное отклонение 1 из показательного закона: rexp(n, ), где n – объем выборки, EX – EX популяционное среднее (мат.ожидание) из распределения Пуассона: rpois (n, EX), где n – объем выборки, EX – популяционное среднее (мат.ожидание) из биномиального закона: rbinom(n, N, p), где n – объем выборки, N – число испытаний в серии испытаний Бернулли, p – вероятность успеха в одном испытании Бернулли. Вычисления: сложение + вычитание – умножение * деление / возведение в степень ^ (например, x2 – это x^2) извлечение квадратного корня sqrt(x), где x – это число (или вектор), из которого нужно извлечь квадратный корень. В случае вектора корень извлекается из каждой компоненты вектора Подсчет числа наблюдений в массиве данных: Поскольку получаемый массив данных воспринимается оболочкой R как вектор или матрица, то для подсчета числа наблюдений, нужно подсчитать, сколько компонент содержит соответствующий вектор. Для этого нужно набрать команду length(x), где x – это соответствующий вектор. Порождение последовательности чисел: Для генерирования последовательности натуральных чисел от 1 до 10 наберите 1:10 либо seq(1,10) Для генерирования последовательности натуральных чисел от 1 до 10 с шагом в 2 единицы наберите seq(1,10, 2) Вычисление простейших описательных статистик: среднее: mean(x), где x – название Вашего массива данных дисперсия: var(x), где x – название Вашего массива данных стандартное отклонение: sd(x), где x – название Вашего массива данных 1 медиана: median(x), где x – название Вашего массива данных квартили: quantile(x), где x – название Вашего массива данных межквартильный размах: IQR(x), где x – название Вашего массива данных Порождение матриц: 1 2 3 Если Вы хотите руками ввести некоторую матрицу А, такую что A 4 5 6 , 7 8 9 нужно набрать команду A <– matrix(c(1,2,3,4,5,6,7,8,9), nrow=3, byrow=T). Объект c(1,2,3,4,5,6,7,8,9) указывает тот вектор значений, который будет преобразован в матрицу. nrow=3 указывает число строк (nrow – это number of rows) В записи byrow=T выражение byrow означает, что заполнять матрицу нужно по строкам, а символ T – это сокращение от True. Т.е. Вы подтверждаете, что заполнение матрицы должно производиться по строкам. 1 4 7 Если Вы хотите руками ввести некоторую матрицу B, такую что B 2 5 8 , то 3 6 9 можно: o либо написать: B <– matrix(c(1,2,3,4,5,6,7,8,9), nrow=3, byrow=F), где F означает False (т.е. заполнение матрицы не должно происходить по строкам) o либо написать: B <– matrix(c(1,2,3,4,5,6,7,8,9), 3, 3), где первая тройка после объекта c(1,2,3,4,5,6,7,8,9) означает число строк, а вторая тройка – число столбцов Если Вам нужно создать пустую матрицу с n строками и k столбцами, то нужно набрать команду matrix(NA, n, k), где NA (Not Available) означает, что массив данных изначально отсутствует. Выделение конкретных наблюдений в массиве данных: Если ваш массив, имеющий название dannie, является матрицей, то для выделения наблюдения, стоящего в первой строке и втором столбце наберите dannie[1,2] Для выделения всей первой строки в массиве данных, имеющем название dannie, наберите dannie[1,] Для выделения всего второго столбца в массиве данных, имеющем название dannie, наберите dannie[,2] Написание функций: Написать программу в оболочке R значит написать некоторую функцию (алгоритм). Пусть Вы хотите написать некоторую функцию F. Тогда Вы пишете: F <– function(x) { } F(data) Между фигурными скобками указывается последовательность команд, которые будут выполняться компьютером при запуске программы (напомню, что для запуска потребуется нажать Ctrl+R на каждой строке скрипта, содержащей команды, относящиеся к создаваемой программе). Скобка } обозначает окончание написания программы. Следующая строка указывает, какой именно массив данных должен быть подвергнут анализу в соответствии с написанной программе. В данном примере анализируемый массив данных носит название 2 data; компьютер возьмет этот массив данных из оперативной памяти и последовательно подставит его вместо x во все команды алгоритма. Перед закрывающей скобкой } должна быть указана команда return(y), где y – это тот объект, который необходимо вывести на монитор в качестве результата работы алгоритма. Написание циклической команды: Нижеприведенная команда позволяет многократно (циклически) производить один и тот же набор операций: for (i in 1:x) { } В содержании команды должно учитываться, что нижним индексом, пробегающим значения от 1 до x , является индекс i. Что касается икса, то им может быть конкретное число, указанное сразу; либо это может быть тот x, для которого пишется вся программа и который будет указан позднее. Домашнее задание Дать приблизительный ответ на вопрос о том, насколько исследователь может ошибаться, строя 95%-ные нормальные доверительные интервалы для среднего из ненормальной генеральной совокупности. Для ответа на вопрос использовать схему многократного сэмплинга путем реализации метода Монте – Карло. В качестве ненормальных законов, из которых извлекаются выборки, использовать показательное, биномиальное распределения и распределение Пуассона. В случае биномиального распределения параметр N не должен превышать 50 (чтобы избежать большого сходства биномиального и нормального распределений).1 По аналогичной причине в распределении Пуассона не использовать среднее, превышающее 7.2 Реализовать сэмплинг как из показательного распределения, так и из биномиального и распределения Пуассона. Использовать выборки объемом 1000 наблюдений. Извлекать по 100 выборок. Домашнее задание должно быть выполнено в Microsoft Word. Оно должно содержать четыре раздела: «Доверительные интервалы для среднего из показательного распределения», «Доверительные интервалы для среднего из биномиального распределения», «Доверительные интервалы для среднего из распределения Пуассона», «Приложение». В каждом разделе должна быть описана схема сэмплинга, указаны параметры заданного распределения, указано число 95%-ных доверительных интервалов, содержащих истинное значение математического ожидания. В Приложении должен быть приведен полный текст выдачи пакета R из окна R Console. Для переноса текста из пакета R в Microsoft Word используйте обычное выделение и «копи-паст». Приложение должно быть «раскрашено» так же, как в окне R Console (т.е. команды – красным цветом; результат – синим). NB! Не выводите на монитор сами случайные выборки!! Enjoy computing! 1 Правило для нормальной аппроксимации биномиального распределения таково: N должно быть больше 100. 2 Нормальную аппроксимацию распределения Пуассона на практике рекомендуется использовать при среднем, превышающем 9 (см.: Тюрин, Макаров, Симонова, стр. 155). 3