vault backup: 2026-05-14 10:49:10

This commit is contained in:
Dmitry
2026-05-14 10:49:10 +03:00
parent 4bbc91d147
commit 7f34f1d9f5
217 changed files with 62 additions and 62 deletions
+45
View File
@@ -0,0 +1,45 @@
---
status: stable
type: lab
tags:
- admin
- network
created: 2025-12-17
updated: 2026-05-07
title: CA И NGINX
---
# CA И NGINX
При запросе в локальный центр сертификации Microsoft, он выдает два файла:
1. certnew.cer - сертификат
2. certnew.p7b - цепочка сертификатов 
Для работы в Nginx необходимо их перевернуть в pem-формат.
Если экспортированы они в base64, то cer уже в нужном формате, а p7b надо разделить на блоки:
```text
openssl pkcs7 -print_certs -in certnew.p7b -out chain.pem
```
И надо объединить их в одну цепочку сертификатов:
```text
cat certnew.cer chain.pem > fullchain.pem
```
Далее в конфигурации Nginx:
```text
...
server {
ssl_certificate /path/to/fullchain.pem
ssl_certificate_key /path/to/server.key
}
...
```
## Связанные заметки
- [[VPN]] — ассиметричное шифрование (открытый/закрытый ключ) из VPN-ноты — это и есть PKI, на котором строится TLS-сертификат от CA
- [[Docker Swarm]] — встроенный mTLS между нодами Swarm использует ту же инфраструктуру CA и сертификатов
@@ -0,0 +1,46 @@
---
status: stable
type: concept
tags:
- devops
- ansible
created: 2026-02-13
updated: 2026-05-07
title: Ansible - Основы
---
# Ansible - Основы
**Ansible** - инструмент автоматизации развертывания и оркестрации инфраструктуры.
**Характеристики**
- **Безагентский**: не требует установки ПО на управляемых хостах (использует SSH).
- Язык описания задач — YAML: декларативный и простой в чтении (формат playbook).
- **Idempotency**: повторное выполнение не меняет результат, если всё уже настроено.
## Основные Понятия
|Term|Def|
|---|---|
|Playbook|Декларативное описание инфраструктуры, с которой работает в декларативном ключе|
|Inventory|Файл инвентаризации, призван отслеживать хосты, к которым мы <br>применяем свои команды и сценарии|
|Include|Конструкция, позволяющая переиспользовать уже написанные структуры кода (tasks, playbooks, handlers, vars)|
|Task|Единица работы, которая описывается в плейбуке и выполняется <br>во время запуска на исполнение|
|Handlers|Обработчики, которые позволяют выполнить некоторую описанную <br>задачу после выполнения другой задачи (вызов через _**notify**_)|
|Tags|Механизм тегирования (присвоения меток) задачам (Tasks) и ролям <br>(Roles), позволяющий запускать в плейбуке только те задачи и роли, которые <br>помечены определенной меткой (тегом)|
|Vars|Переменные могут быть заданы во время сбора фактов при запуске плейбука <br>или указаны вручную.|
|Role|Сборник плейбуков|
|Module|Минимальная единица действия - набор действий, встроенных в Ansible|
|Facts|Автоматически собираемая с машин информация|
## В этом разделе
- [[Playbooks - Ansible]] — структура плейбуков, синтаксис задач
- [[Inventory - Ansible]] — описание хостов и групп
- [[Modules - Ansible]] — встроенные модули
- [[Loops - Ansuble]] — циклы в задачах
- [[Fail2Ban - Ansible]] — пример роли для Fail2Ban
## Контекст
- [[IaC - основы]] — Ansible в контексте Infrastructure as Code
- [[DevOps - основы]] — место Ansible в DevOps-практиках
@@ -0,0 +1,57 @@
---
status: stable
type: concept
tags:
- devops
- ansible
created: 2025-12-17
updated: 2026-05-07
title: Fail2Ban - Ansible
---
# Fail2Ban - Ansible
**Fail2ban** — это система защиты от brute-force атак (например, перебора паролей по SSH, FTP, веб-панелям). Она анализирует лог-файлы и временно блокирует IP-адреса, с которых замечена подозрительная активность.
## Установка С Помощью Средств Ansible
Образец конфига `jail.local`
```text
[sshd]
enabled = true
port = ssh
logpath = /var/log/auth.log
maxretry = 5
bantime = 3600
findtime = 600
```
```text
- name: Установка и настройка Fail2ban
hosts: all
become: true
tasks:
- name: Установить fail2ban
apt:
name: fail2ban
state: present
- name: Копировать конфиг jail.local
template:
src: jail.local.j2
dest: /etc/fail2ban/jail.local
owner: root
group: root
mode: 0644
- name: Перезапустить fail2ban
service:
name: fail2ban
state: restarted
enabled: true
```
## Связанные заметки
- [[DHCP-snooping]] — defence-in-depth: Fail2Ban блокирует атаки на L7 (SSH brute-force), DHCP Snooping — на L2 (rogue DHCP); разные уровни одной стратегии защиты
- [[Super-user]] — `become: true` в Ansible использует sudo для установки и управления Fail2Ban
@@ -0,0 +1,88 @@
---
status: stable
type: concept
tags:
- devops
- ansible
created: 2025-12-17
updated: 2026-05-07
title: Inventory - Ansible
---
# Inventory - Ansible
Особенности Ansible:
1. Подключение по SSH
2. Agentless - нет программ на клиентах
Структура файла `hosts.ini`
```text-xml
192.168.0.1
192.168.0.2
[web] # группа серверов
192.168.0.3
192.168.0.4
```
Можно использовать псевдонимы, вместо ip
```text
app ansible_host=ip_server1
db ansible_host=ip_server2
web ansible_host=ip_server3
```
Другие полезные параметры **inventory**:
- `ansible_connection: ssh/winrm/local/docker` - тип подключения к серверу
- `ansible_port: 22/5986` - порт подключения
- `ansible_user: root` - логин для входа по ssh (или др.)
- `ansible_ssh_pass: password` или `ansible_password: password` - пароль для входа по ssh.
Группы для объединения групп:
```text
[mail_internal]
mail1.serv
[mail_external]
mail2.serv
[mail_all:children]
mail_internal
mail_external
```
Помимо `ini`-формата, можно использовать YAML-файлы:
```yaml
all:
children:
webservers:
hosts:
web1.example.com:
ansible_host: 192.168.1.10
ansible_user: admin
web2.example.com:
ansible_host: 192.168.1.11
vars:
ansible_port: 22
ansible_python_interpreter: /usr/bin/python3
databases:
hosts:
db1.example.com:
db2.example.com:
production:
children:
webservers:
databases:
```
## Связанные заметки
- [[DHCP]] — если хосты получают IP динамически через DHCP, inventory должен использовать имена (DNS), а не IP-адреса
- [[DNS]] — `ansible_host: web1.example.com` требует DNS-резолвинга; `/etc/resolv.conf` определяет, где искать
@@ -0,0 +1,75 @@
---
status: stable
type: concept
tags:
- devops
- ansible
created: 2025-12-17
updated: 2026-05-07
title: Loops - Ansuble
---
# Loops - Ansuble
Для перебора значений в модулях Ansbible используются две конструкции:
1. `loop` - универсален, используется, когда перебираемые значения - это строки в словаре (`user = { name: Boris; age: 22 }`)
2. Директива `with_*` - где `*` - обозначение конкретного итератора
## Loop
```text
-
name: Цикл
hosts: all
tasks:
-
name: Цикл loop для создания пользователя
user:
name: '{{ item.name }}'
age: '{{ item.age }}'
uid: '{{ item.uid }}'
loop:
- name: Boris
age: 22
uid: 1011
- name: Anna
age: 23
uid: 1012
...
```
## with_
```text
-
name: Цикл
hosts: all
tasks:
-
name: Цикл with для создания пользователя
user:
name: '{{ item }}'
age: '{{ item }}'
uid: '{{ item }}'
with_items:
- name: Boris
- name: Anna
...
```
```text
-
name: 'Print list of fruits'
hosts: localhost
vars:
fruits:
- Apple
- Banana
- Grapes
- Orange
tasks:
-
command: 'echo "{{ item }}"'
with_items: '{{ fruits }}'
```
@@ -0,0 +1,94 @@
---
status: stable
type: concept
tags:
- devops
- ansible
created: 2025-12-17
updated: 2026-05-07
title: Modules - Ansible
---
# Modules - Ansible
## Module Command
Выполнение команды на удаленном узле.
```yaml
- name: Display home directory
command: ls ~/
```
У самих команд могут быть параметры, например
```yaml
command: cat resolv.conf chdir=/etc # ansible сначала убедится, что мы в директории /etc или перейдет в неё, а затем выполнит команду cat
command: mkdir /folder creates=/folder # ansible создаст папку только в том случае, если её не существует
```
# Module Script
Выполняет скрипт, находящийся на хост-контроллере
```yaml
-
name: Тестовый плейбук со скриптом
hosts: all
tasks:
- name: Запуск скрипта с хоста
script: /root/script.sh -arg1 -arg2
```
## Module LineInFile
Записывает указанную строку в конец указанного файла _если точнее, ansible убеждается в наличии такой строки, но если её нет, то записывает в конец_
```yaml
-
name: Тестовый плейбук
hosts: all
tasks:
- lineinfile:
path: /etc/resolv.conf
line: 'nameserver 10.1.250.10'
```
## Module Service
Работает с сервисами сервера (systemd)
```yaml
-
name: 'Execute a script on all web server nodes'
hosts: web_nodes
tasks:
-
name: 'Start httpd service on web server nodes'
service:
state: started
```
## User
> ansible.builtin.user
Работа с пользователями системы (linux)
```yaml
-
name: 'Create new user'
hosts: all
tasks:
-
name: 'Create user John'
user:
name: John
uid: 1040
group: dev
```
## Связанные заметки
- [[File Permissions]] — модуль `user` управляет uid/gid пользователей Linux; `lineinfile` редактирует системные файлы; все это работает поверх Linux-прав доступа
- [[Super-user]] — `become: true` использует sudo; модуль `user` создаёт пользователей без root-прав для следующих задач
@@ -0,0 +1,52 @@
---
status: stable
type: concept
tags:
- devops
- ansible
created: 2025-12-17
updated: 2026-05-07
title: Playbooks - Ansible
---
# Playbooks - Ansible
- Playbook - отдельный yml файл.
_Module_ - любое атомарное действие в Ansible.
Запуск playbook:
```text
ansible-playbook playbook.yml
```
Существует возможность запуска каких-то модулей без использования playbook Например, можно провести `ping` какой-то машины с хоста с помощью команды:
```text
ansible node1 -m ping
```
В общем случае, для любого модуля:
```text
ansible <hosts> -m <module>
```
Также можно на узле выполнить команду:
```text
ansible <hosts> -a <command>
```
Например
```text
ansible all -a "/sbin/reboot"
```
Если необходимо отладить сценарий можно добавить к команде `-vv`
```text
ansible-playbook playbook.yml -vv
```
@@ -0,0 +1,66 @@
---
status: stable
type: concept
tags:
- devops
created: 2025-12-17
updated: 2026-05-07
title: DevOps - основы
---
# DevOps - Основы
Конспект урока: [Devops вводный 1 урок. Что такое Devops и история его развития.pdf](#root/4yWHzaG6M7iE/SWLwobVesSih/pRoFr75wb413/O6DeMoaS4kWb)
## Возникновение DevOps
**DevOps** - _методология взаимодействия_ специалистов по разработке с экспертами по информационно-технологическому обслуживанию, а также взаимная интеграция их рабочих процессов для обеспечения высокого качества продукта.
### Инфраструктура Как Код (IaC)
Подход к развертыванию, работе и настройке инфраструктуры в виде файлов конфигурации и систем управления конфигурацией.
DevOps-инженер управляет инфраструктурой и конфигурацией с помощью декларативных подходов.
- Управление инфраструктурой 
- Стандартизация образов
- Использование инструментов для декларативного управления инфраструктурой, конфигурацией и сервисами (Ansible, Terraform).
[[IaC - основы]]
### Непрерывная Сборки И Доставка (развертывание) (CI/CD)
Методология разработки и деплоя, подразумевающая автоматическую сборку, тестирование и развертывание программного кода.
- Технологии контейнеризации (Docker, Podman)
- Микросервисная архитектура
- Обеспечение непрерывной доставки продукта
- Обеспечение безопасности контейнеров и микросервисов
### Мониторинг, Логирование, Аудит, Трассировка
- Принципы работы систем мониторинга
- Инструменты логирования и аудита
- Сбор и обработка логов приложений и инфраструктуры
- Трассировка приложений в контексте взаимодействия с командами разработки
### Контейнерная Оркестрация
- Оркестрация контейнерных и неконтейнерных нагрузок
- Обеспечение ИБ контейнеров и оркестраторов
- Развертывание и администрирование высоконагруженных кластеров
- Интеграция оркестраторов с инструментами CI/CD
## Инструментарий
1. Системы контроля версий (Git, SVC)
2. CI/CD (**Gitlab Ci**, Jenkins, Teamcity)
3. Контейнеризация (**Docker**, Podman, Cri-o)
4. Оркестрация (**Kubernetes**, Swarm, Nomad, Mesos)
5. Управление конфигурацией (**Ansible**, Chef, Puppet)
6. Управление инфраструктурой (**Terraform**, Cloudformation)
7. Мониторинг (Prometheus, Loki, Grafana, …)
8. Безопасность (Trivy, Clair, Falco, Kube-hunter, …)
9. DevSecOps-анализ (SAST, SCA, DAST, IAST, RASP)
![](DevOps_image.png)
+85
View File
@@ -0,0 +1,85 @@
---
status: seed
type: concept
tags:
- devops
- git
- vcs
created: 2025-12-17
updated: 2026-05-07
title: Git
---
# Git
**Git** — распределённая система контроля версий, разработанная Линусом Торвальдсом в 2005 году.
Git используется для управления историей изменений исходного кода, командной разработки и организации процессов доставки ПО. В [[DevOps - основы]] Git относится к базовым инструментам контроля версий.
## Зачем нужен Git
- хранит историю изменений проекта;
- позволяет работать с ветками и объединять изменения;
- поддерживает распределённую модель разработки;
- помогает проводить code review и восстановление предыдущих состояний кода;
- интегрируется с платформами вроде [[Gitlab]] и CI/CD.
## Преимущества
### Производительность
Git оптимизирован для локальных операций: большинство действий выполняется без обращения к удалённому серверу. История проекта хранится как набор объектов, связанных с содержимым файлов и метаданными версий.
### Безопасность
Git использует хеширование объектов, что помогает контролировать целостность истории изменений. Это защищает проект от незаметной подмены данных в истории.
### Гибкость
Git поддерживает разные модели разработки: от простой работы в одной ветке до сложных процессов с релизными, функциональными и hotfix-ветками.
## Базовые сущности
- **commit** — зафиксированное состояние изменений;
- **branch** — ветка разработки;
- **merge** — объединение веток;
- **diff** — сравнение изменений между состояниями проекта.
Практические команды вынесены в заметку [[Основные команды git]].
## GitFlow
**GitFlow** — модель ветвления, где используются основные ветки и временные ветки для разработки функциональности.
Основные ветки:
- `main` — официальная история релизов;
- `release` — подготовка готового функционала к выпуску;
- `develop` — основная ветка разработки;
- `feature` — разработка отдельной функциональности.
Когда в `develop` накоплен достаточный объём изменений, создаётся `release`-ветка. После тестирования она сливается в `main` и обратно в `develop`.
![[Pasted image 20260430152221.png|597]]
Недостатки GitFlow:
- не всегда хорошо сочетается с CI/CD;
- избыточен для проектов с частыми релизами;
- может усложнять историю слияний.
## Trunk Based Development
**Trunk Based Development (TBD)** — модель разработки, где основная работа ведётся вокруг одной главной ветки, называемой `trunk`.
Идея TBD: чаще интегрировать изменения в основную ветку, уменьшать долгоживущие ветки и поддерживать возможность выпуска релиза в любой момент.
![[Pasted image 20260430153712.png]]
TBD лучше сочетается с CI/CD-процессами, потому что уменьшает риск крупных конфликтов слияния и ускоряет обратную связь от сборок и тестов.
## Связанные заметки
- [[Основные команды git]]
- [[Gitlab]]
- [[DevOps - основы]]
+54
View File
@@ -0,0 +1,54 @@
---
status: seed
type: concept
tags:
- devops
- git
- cicd
- gitlab
created: 2025-12-17
updated: 2026-05-07
title: Gitlab
---
# Gitlab
**Gitlab** — веб-платформа для управления репозиториями, командной разработкой и CI/CD-процессами поверх [[Git]].
Gitlab можно использовать как облачный сервис или развернуть на собственном сервере.
## Возможности
Gitlab позволяет:
- создавать, изменять и удалять репозитории;
- управлять пользователями и правами доступа;
- проводить code review;
- настраивать проверки качества кода;
- автоматизировать сборку, тестирование и доставку через CI/CD;
- отслеживать задачи, релизы, метрики и состояние приложений.
## Gitlab в DevOps
В [[DevOps - основы]] Gitlab относится к инструментам CI/CD и командной разработки.
Gitlab помогает связать несколько процессов:
- управление исходным кодом через [[Git]];
- review изменений;
- автоматическое тестирование;
- релизный цикл;
- проверки безопасности;
- наблюдаемость и сбор метрик.
## Работа с кодом
Gitlab поддерживает разные модели управления исходным кодом: GitFlow, Trunk Based Development и другие.
Основная работа ведётся через проекты, репозитории, ветки, коммиты и merge request. Практические операции с локальным репозиторием описаны в [[Основные команды git]].
## Связанные заметки
- [[Git]]
- [[Основные команды git]]
- [[DevOps - основы]]
@@ -0,0 +1,52 @@
---
status: stable
type: concept
tags:
- devops
created: 2026-02-13
updated: 2026-05-07
title: IaC - Основы
---
# IaC - Основы
*Infrastructure-as-Code (Инфраструктура как код)* 
Основными инструментами выступают Terraform и Ansible
## Terraform
- ПО, разработанное компанией HashiCorp, призванное управлять инфрой в декларативном ключе.
Для работы с инфрой через terraform необходимо лишь описать желаемое состояние (конфигурацию), в которой в декларативном формате изложена желаемая инфраструктура.
> Декларативный подход - пишем не "как" надо сделать, а "какое" **состояние** мы хотим увидеть 
Описывается в файле `main.ttf`:
![](1_IaC%20-%20основы_image.png)
Terraform-провайдер
- Это обязательное звено - это интерпретатор, который обрабатывает наш конфиг и вызывает нужные API для работы непосредственно с вендором.
![](IaC%20-%20основы_изображение.png)
Поддерживаемые в terraform типы ресурсов (CRUD):
- аккаунты и ресурсные группы
- ВМ, контейнеры
- виртуальные сетевые сегменты
- диски и образы
- оркестраторы контейнерных и неконтейнерных нагрузок
- и т.д. …
## Ansible
- ПО, от компании Red Hat, изначально созданное для управления конфигурацией. 
Использует также декларативный язык
![](IaC%20-%20основы_image.png)
[[Ansible - основы]]
@@ -0,0 +1,120 @@
---
status: processing
type: concept
tags:
- devops
- kubernetes
created: 2025-12-17
updated: 2026-05-07
title: Control Plane - Плоскость управления
---
# Control Plane - Плоскость управления
В k8s плоскостью управления выступают master-узлы, они контролируют работу worker-узлов и следят за здоровьем системы, в целом.
К основным компонентам Control plane относятся:
1) Etcd
2) Kube-api-server
3) Kube-scheduler
4) Kube-controller-manager
5) Cloud-controller-manager
![[Pasted image 20260429090040.png|400]]
## Etcd
**Etcd** — Opensource *key-value* хранилище, использующее алгоритм консенсуса [[Алгоритм консенсуса raft|raft]] для обеспечения надежного способа хранения данных.
- Рекомендуемое Kubernetes хранилище конфигурации кластера.
- Единственный *Stateful*-компонент кластера Kubernetes.
- Инсталлируется на каждую Master node.
- Для выбора лидера используется алгоритм Raft.
## Kube-api-server
**Kube-api-server** — основной компонент для взаимодействия с кластером и обязательный посредник между всеми компонентами Kubernetes в Data и Control plane.
- Использует REST API интерфейс.
- Является точкой входа в кластер.
- Обязательный участник любого взаимодействия между компонентами кластера.
- Обеспечивает разграничение прав доступа к содержимому кластера (авторизация и аутентификация).
- *Stateless*-компонент.
- Инсталлируется на *каждую* Master node.
- Выбор лидера происходит по алгоритму [[Алгоритм выбора лидера Lease|lease]].
## Kube-controller-manager
**Kube-controller-manager** — компонент, ответственный за работу множества kube-controllers.
- Является *связующим* звеном при взаимодействии Kube-controllers и отвечает за их работу.
- Отвечает за *сборку мусора* (Garbage collecting) в кластере Kubernetes.
- *Stateless*-компонент.
- Инсталлируется на каждую Master node.
- Выбор лидера происходит по алгоритму [[Алгоритм выбора лидера Lease|lease]].
### Распространенные kube-controllers
- **Node-controller** (поддерживает связь с узлами кластера Kubernetes, инициирует перенаправление рабочих нагрузок с вышедших из строя узлов.
- **Replicaset-controller** (инициирует процедуру создания и функционирования сущности Replicaset).
- **Endpoint-controller** (выполняет создание endpoint - связи между Pod и его Service).
- **Token-controller** (обеспечивает создание и работу токенов для доступа к API кластера Kubernetes).
- **Account-controller** (обеспечивает функциональность учетных записей в Kubernetes).
### Garbage collecting
Обязанности за сборку мусора (Garbage collecting) в кластере Kubernetes также возложены на компонент *Kube-controller-manager*.
Примером сборки мусора может выступать отслеживание и удаление старых версий наборов репликаций развертываний (Replicaset).
Если в кластере превышен лимит старых ревизий Replicaset — наиболее старая ревизия становится *мусором* и ее нужно удалить.
## Cloud-controller-manadger
**Cloud-controller-manager** — компонент, ответственный за работу множества Cloud-controllers.
> Не реализован в Kubernetes по умолчанию. Самостоятельная реализация привлекательна для вендоров, желающих предоставлять Kubernetes как облачную услугу.
- Является связующим звеном при взаимодействии Cloud-controllers и отвечает за их работу.
- Cloud-controller-manager, как и сами Cloud-controllers не реализованы по умолчанию.
## Kube-scheduler
**Kube-scheduler** — компонент, ответственный за выбор подходящих узлов Data plane для запуска рабочих нагрузок.
При принятии решения руководствуется следующими факторами: *Requests/Limits*, *QoS*, *Affinity/Anti-affinity rules*, *Priority class/Preemption policy*
- Отвечает за распределение рабочих нагрузок на узлы Data plane с учетом *определенных факторов*.
- *Stateless*-компонент.
- Инсталлируется на каждую Master node.
- Выбор лидера происходит по алгоритму [[Алгоритм выбора лидера Lease|lease]].
Kube-scheduler принимает к сведению имеющиеся у развертываний указания по минимальным и максимальным требованиям к вычислительным ресурсам (*Requests* и *Limits*).
**Requests:** Минимальный объем вычислительной мощности (Cpu, Ram), необходимый для функционирования рабочей нагрузки.
**Limits:** Максимальный объем вычислительных ресурсов, выделяемый рабочей нагрузке.
![[Pasted image 20260429090719.png|200]]
Kube-scheduler руководствуется присвоенным рабочей нагрузке значением QoS (Quality of Service).
**В зависимости от указанных в развертывании Requests и Limits,** **уровень обслуживания (QoS) может принимать следующие** **значения:**
- *BestEffort* (Requests и Limits не указаны вовсе).
- *Burstable* (хотя бы для одного контейнера в Pod указаны requests по Cpu или Ram).
- *Guaranteed* (все контейнеры в Pod имеют одинаковые Requests и Limits).
**Affinity/Anti-affinity rules:**
Kube-scheduler также руководствуется применяемыми к рабочей нагрузке Affinity/Anti-affinity rules.
Правила Affinity и Anti-affinity описываются в спецификации развертывания и позволяют влиять на решение Kube-scheduler о направлении рабочих нагрузок на узлы кластера за счет расширения типов возможных ограничений.
![[Pasted image 20260429090816.png|400]]
**Политика вытеснения:**
В критических ситуациях Kube-scheduler может прибегнуть к процедуре вынужденного *выселения* (*переселения*) рабочих нагрузок с низким приоритетом (Priority class) в пользу рабочих нагрузок с *высоким* приоритетом, руководствуясь "*политикой вытеснения*" (Preemption policy).
Данное поведение характерно для ситуаций, при которых узел с рабочей нагрузкой высокого приоритета выходит из строя — в таком случае, во избежание Downtime *высокоприоритетного* развертывания, оно будет отправлено на узел, имеющий низко приоритетную нагрузку (и она будет выселена принудительно).
![[Pasted image 20260429090930.png]]
@@ -0,0 +1,46 @@
---
status: processing
type: concept
tags:
- devops
- kubernetes
created: 2025-12-17
updated: 2026-05-07
title: Data Plane - Плоскость данных
---
# Data Plane - Плоскость данных
К плоскости данных (Data plane) кластера Kubernetes относят рабочие узлы (Workers), на которых запускаются рабочие нагрузки.
Компоненты Kubelet и Kube-proxy устанавливаются как на узлы управления (Masters), так и на рабочие узлы (Workers), обеспечивая работоспособность рабочих нагрузок в Data-plane и отвечая за их связь с плоскостью управления (Control plane).
![[Pasted image 20260429085656.png]]
## Kubelet
**kubelet** - агент на *каждом* узле кластера.
- Работает как процесс системы, а не контейнер;
- поддержка *любой* k8s-совместимой системы оркестрации (CRI - docker, podman);
- запускает контейнеры с *рабочими* нагрузками;
- обеспечение проверок (**startup**, **readines**, **liveness probes**).
Т.е. это агент k8s непосредственно на клиенте (как zabbix-agent, например), он взаимодействует с системой worker-node (и master, тоже)
## Проверки kubelet
1) **startup probe** - применяется первой для определения факта запуска контейнера;
![[Pasted image 20260428175708.png|200]]
2) **readiness probe** - проверка готовности развернутого в контейнере приложения принимать и обрабатывать рабочую нагрузку;
![[Pasted image 20260428175716.png|200]]
3) **liveness probe** - периодическая проверка запущенного приложения.
![[Pasted image 20260428175720.png|200]]
## Kube-proxy
**kube-proxy** - компонент, отвечающий за *сетевое проксирование* и обеспечивающий *базовые* сетевые правила на узлах управления (Masters) и узлах данных (Workers).
- Управляет основными сетевыми правилами на узлах кластера Kubernetes
- Запускается в контейнере.
- Может делегировать часть своих функций сетевым плагинам (CNI).
### Интерфейсы универсального взаимодействия (плагины)
1) **CRI (Container Runtime Interface)** — интерфейс *коммуникации* между компонентом *Kubelet* и используемой kubernetes-совместимой *системой контейнеризации*.
2) **CNI (Container Network Interface)** — интерфейс для выполнения сетевых функций кластера Kubernetes-совместимыми сетевыми плагинами (Network plugins).
3) **CSI (Container Storage Interface)** — интерфейс обеспечения необходимых действий над персистентным хранением данных рабочих нагрузок кластера kubernetes-совместимыми Volume-drivers.
@@ -0,0 +1,57 @@
---
status: stable
type: concept
tags:
- devops
- kubernetes
- container
created: 2025-12-17
updated: 2026-05-07
title: Deployment и ReplicaSet
---
# Deployment и ReplicaSet
Два ключевых контроллера k8s, отвечающих за развёртывание приложений.
## Deployment
**Deployment-controller** управляет декларативным описанием приложения для его развёртывания и обновления.
Способен создать Deployment из образа или из готового манифеста:
```sh
kubectl create deployment mariadb --image=mariadb:4.0
kubectl apply -f nginx-deployment-manifest.yaml
```
Deployment работает только с **Pods** и **ReplicaSets**.
## ReplicaSet
**ReplicaSet** — сущность k8s, обеспечивающая поддержку стабильного набора реплик Pod в любой момент времени.
Приложение = Pod (объединение контейнеров). ReplicaSet управляет множеством таких Pod.
## Service
Для связи Pod с другими Pod и внешним миром используется **Service**.
Pod связывается с Service через **Endpoint** (управляет Endpoint-controller).
Создание Service:
```bash
kubectl expose deployment mariadb --port=8080
kubectl apply -f nginx-service-manifest.yaml
```
## Возможности связки Deployment + ReplicaSet
| Операция | Описание |
|---|---|
| Rolling update | Обновление без downtime |
| Rollback | Откат текущего обновления |
| Revision | Просмотр истории обновлений |
| Rollback to revision | Откат до конкретной ревизии |
| Scaling | Масштабирование приложения |
@@ -0,0 +1,42 @@
---
status: stable
type: moc
tags:
- devops
- container
- kubernetes
created: 2026-02-13
updated: 2026-05-07
title: Kubernetes
---
# Kubernetes
K8s — система оркестрации контейнеров. Кластер состоит из двух плоскостей:
- **[[Control Plane - Плоскость управления]]** — master-узлы: etcd, kube-api-server, kube-scheduler, kube-controller-manager, cloud-controller-manager
- **[[Data Plane - Плоскость данных]]** — worker-узлы: kubelet, kube-proxy, CRI/CNI/CSI
![[Pasted image 20260429091836.png]]
## Рабочие нагрузки
- [[Deployment и ReplicaSet]] — развёртывание, rolling update, rollback, scaling
## Хранение данных
- [[PV, PVC]] — персистентное хранилище: Persistent Volume и Persistent Volume Claim
## Альтернативные решения
- [[Docker Swarm]]
- [[Apache Mesos]]
- [[HashiCorp Nomad]]
## Источники
[[Devops вводный 9 урок. Введение в Kubernetes. Компоненты control и Data plane.pdf]]
## Связанные заметки
- [[Шаблонизатор Helm]]
@@ -0,0 +1,37 @@
---
status: stable
type: concept
tags:
- devops
- kubernetes
- storage
created: 2025-12-17
updated: 2026-05-07
title: PV, PVC
---
# PV, PVC
Сущности k8s для персистентного хранения данных.
## Persistent Volume (PV)
**PV** — отражение реального раздела на диске в терминах k8s. Такой же ресурс кластера, как Master или Worker node.
- Не зависит от namespace
- Создаётся вручную (Manifest) или автоматически (Provisioning)
## Persistent Volume Claim (PVC)
**PVC** — запрос приложения на подключение к PV.
- Зависит от namespace
- Описывает требования к хранилищу (размер, класс, режим доступа)
## Схема подключения
```
Pod → PVC → PV → физический диск
```
**Deployment** может содержать ссылку на PVC — тогда при развёртывании Pod автоматически получает доступ к нужному хранилищу.
@@ -0,0 +1,19 @@
---
status: stable
type: concept
tags:
- k8s
- devops
- kubernetes
created: 2025-12-17
updated: 2026-05-07
title: Алгоритм выбора лидера Lease
---
# Алгоритм выбора лидера Lease
Алгоритм выбора лидирующего узла в распределнных системах, позволяющий сохранять консистентность данных
**Суть проста**: узел, который первым запишет себя в хранилище конфигурации кластера, как лидер, тот и станет лидером
Если лидер перестал выполнять свои функции, то борьба за место лидера по **такому же принципу**.
@@ -0,0 +1,28 @@
---
status: stable
type: concept
tags:
- devops
- kubernetes
created: 2025-12-17
updated: 2026-05-07
title: Алгоритм консенсуса raft
---
# Алгоритм консенсуса raft
**Raft** — алгоритм консенсуса, применяющийся в распределенных системах, и обеспечивающий безопасную и согласованную репликацию данных между всеми участниками.
Состоит из двух фаз:
1) Выбор лидера (**leader election**)
2) Репликация данных (**log replication**)
Каждый участник в любой момент времени находится только в одном состоянии:
1) Лидер (**leader**) - только один;
2) Кандидаты в лидеры (**candidate**);
3) Ведомый (**follower**).
*Raft* в фазе выбора лидера опирается на понятие кворума (**quorum**) - большинства.
Из-за этого, в частности, есть рекомендация: *количество master-node должно быть нечетным*.
Визуализация алгоритма консенсуса Raft: http://thesecretlivesofdata.com/raft/
@@ -0,0 +1,92 @@
---
status: seed
type: guide
tags:
- devops
- kubernetes
- helm
created: 2025-12-17
updated: 2026-05-07
title: Шаблонизатор Helm
---
# Шаблонизатор Helm
**Helm** — менеджер пакетов и шаблонизатор для развёртывания приложений в [[Kubernetes]].
Helm помогает описывать, устанавливать, обновлять и удалять приложения через готовые или собственные Helm charts.
## Зачем нужен Helm
Helm позволяет:
- искать готовые charts;
- устанавливать приложения в Kubernetes;
- обновлять релизы;
- удалять приложения;
- переиспользовать шаблоны манифестов;
- параметризовать установку через values.
## Helm chart
**Helm chart** — пакет с шаблонами Kubernetes-манифестов, значениями по умолчанию и метаданными приложения.
Chart можно:
- найти в публичном chart-репозитории;
- создать самостоятельно под своё приложение.
## Базовый workflow
Добавить chart-репозиторий:
```sh
helm repo add bitnami https://charts.bitnami.com/bitnami
```
Обновить индекс репозиториев:
```sh
helm repo update
```
Найти chart:
```sh
helm search repo bitnami
```
Установить приложение:
```sh
helm install my-mysql bitnami/mysql
```
Посмотреть доступные параметры:
```sh
helm show values istio/base
```
Установить или обновить значения через `--set`:
```sh
helm install istiod istio/istiod --set requests.cpu=300m
```
Посмотреть установленные релизы:
```sh
helm list
```
Обновить релиз:
```sh
helm upgrade istiod istio/istiod --set requests.cpu=600m
```
## Связанные заметки
- [[Kubernetes]]
- [[DevOps - основы]]
+35
View File
@@ -0,0 +1,35 @@
---
status: stable
type: concept
tags:
- devops
- terraform
created: 2026-02-13
updated: 2026-05-07
title: Terraform
---
# Terraform
[Devops вводный 3 урок. Работа с IaC через terraform и ansible.pdf](#root/LjCayegQsEBv/vJCtNA7LSLFA/ARzmNd1EFrgt)
Terraform - ПО, разработанное HashiCorp для централизованного управления инфраструктурой по методологии [[IaC - основы|IaC]].
Использует в своей работе сущности:
1. `main.tf` - основной файл с декларативным описанием желаемого состояния инфраструктуры.
2. `terraform.d/` -директория, в которой хранится terraform-провайдер (api для взаимодействия с конкретной платформой) после его загрузки.
3. `.terraform/` - директория, в которой хранятся файлы, в том числе и файлы провайдера.
4. `terraform.lock.hcl` - файл блокировки для кэша `.terraform/`.
5. `terraform.tfstate` - файл, для регистрации состояния инфраструктуры
Команды, используемые в работе с Terraform:
1. `terraform init` - инициализация рабочей директории, содержащей файлы tf.
2. `terraform plan` - команда для предварительного просмотра изменений без фактического применения.
3. `terraform apply` - применение изменений на инфре.
4. `terraform refresh` -
## Связанные заметки
- [[NAT]] — NAT-шлюзы, пулы IP-адресов и сетевые сегменты — типовые ресурсы, которые Terraform декларативно управляет в облачной инфраструктуре
- [[IaC - основы]] — методология, которую реализует Terraform
@@ -0,0 +1,46 @@
---
status: stable
type: concept
tags:
- devops
- containerization
created: 2026-02-13
updated: 2026-05-07
title: Apache Mesos
---
# Apache Mesos
- инструмент менеджмента кластерных решений по оркестрации контейнерных и не-контейнерных нагрузок.
Архитектура основана на трех составляющих:
![Picture background|200](Apache%20Mesos_mesos.png)
1. Узлы управления (master node)
2. Рабочие узлы (agent)
3. Фреймворки (framework)
Одновременно могут использоваться несколько фреймворки - именно они запускают рабочие нагрузки.
Фреймворки состоят из:
1. Планировщик фреймворка (scheduler)
2. Исполнитель фреймворка (executor)
Планировки устанавливается на всех узлах, а исполнитель выполняет задачи на рабочих узлах.
Master-узлы предоставляют ресурсы используемым фреймворкам, а Scheduler фреймворка выбирает, на каких ресурсах agent-узлов Executor будет выполнять рабочее задание.
Популярные фреймворки:
1. Marathon (оркестрация контейнерных нагрузок) 
2. Apache Aurora (оркестрация рабочих cron-заданий) - deprecated*
3. Mesosphere dc/os (операционная система на базе Apache mesos и Marathon. 
Имеется community и enterprise-версии. ) - deprecated
4. Mesosphere dc/os 2.0 (Kubernetes-совместимый фреймворк - nobest (не готово)
Другие решения:
[[Docker Swarm]]
[[Kubernetes]]
[[HashiCorp Nomad]]
@@ -0,0 +1,59 @@
---
status: stable
type: concept
tags:
- devops
- containerization
- docker
created: 2026-02-13
updated: 2026-05-07
title: Docker Swarm
---
# Docker Swarm
- встроенное в docker решение по обеспечению оркестрации контейнеров
- оркестрирует только контейнеры и причем только docker
- но весь прост в освоении
![Picture background|200](Docker%20Swarm_daf199465f470.jpg)
Архитектура делится на:
1. Узлы управления (master)
2. Рабочие узлы (worker)
Docker Swarm не поддерживает шаблонизацию
---
Swarm поддерживает следующие типы сетей:
- bridge
- overlay
- ingress (overlay с возможностью балансировки трафика)
В Swarm есть поддержка **service-discovering** (обнаружение сервисов)
Работа с персистентным хранением решается через Volumes.
Нет автоскейлинга (масштабирования)
Зато есть поддержка паттерна **rolling update** (постепенное обновление сервисов без downtime)
Docker Swarm хорошо интегрируется с инструментами мониторинга.
Существует встроенное хранилище секретами - docker secrets.
Есть mTLS
Сетевые политики (network policy) не поддерживаются.
Другие решения:
[[Apache Mesos]]
[[Kubernetes]]
[[HashiCorp Nomad]]
## Связанные заметки
- [[Сегментация сети]] — network policy в Swarm (не поддерживается нативно) решает ту же задачу изоляции трафика, что VLAN в физической сети
- [[CA и NGINX]] — встроенный mTLS между нодами Swarm использует ту же PKI-инфраструктуру, что и SSL-сертификаты в NGINX
@@ -0,0 +1,40 @@
---
status: stable
type: concept
tags:
- devops
- containerization
- docker
created: 2025-12-17
updated: 2026-05-07
title: Docker - Дополнительные Знания
---
# Docker - Дополнительные Знания
## Запуск Контейнера С Непривилегированным Пользователем
Рассмотрим пример работы с непривилегированным пользователем:
- не использовать root внутри контейнера и не запускать его с повышенными привелегиями
- создать пользователя можно сразу создать в Dockerfile
- переключить пользователя можно с помощью директивы **USER** в Dockerfile
```dockerfile
FROM mariadb
USER 999
```
## Rootless-mode - Podman
Docker решил предпринять попытки отказаться от docker daemon и docker socket с root привилегиями и разрабатывает концепцию rootless-mode
- Идея нетривиальна в реализации, так как возникают особенности установки бинарников и запуска скриптов.
- Логичной заменой есть Podman, написанный на golang, она уже rootless и daemonless по умолчанию.
- Podman обратно совместим в docker (в т.ч. собирает свои образы из Dockerfile)
- Существует podman builder, позволяющий описывать образы с помощью **bash**.
- Практически все команды докера существуют в подмане.
## Связанные заметки
- [[Super-user]] — "не использовать root внутри контейнера" — прямое применение принципа наименьших привилегий из Linux; rootless Podman реализует его на уровне демона
- [[Проблемы дистрибутивов]] — реальный кейс: запуск Rails в контейнере как решение проблемы OpenSSL на Arch Linux
@@ -0,0 +1,91 @@
---
status: stable
type: concept
tags:
- devops
- containerization
- docker
created: 2025-12-17
updated: 2026-05-07
title: Images, Dockerfile - Docker
---
# Images, Dockerfile - Docker
Запуск контейнеров происходит на основе images (образов). Образы собираются с помощью Dockerfile.
Основные инструкции в Dockerfile:
- **FROM** - использование базового образа 
- **RUN** - выполнение команд и создание слоя образа
- **COPY** - копирование в контейнер файлов и папок
- **ADD** - аналогично COPY, но с распаковкой архивов
Дополнительные:
- _LABEL_ - описание метаданных
- _ENV_ - задание переменных среды
- _CMD_ - описание команд с аргументами для выполнения при запуске контейнера
- _WORKDIR_ - задание рабочей директории для следующей инструкции
- _ARG_ - задание переменных для передачи во время сборки
- _ENTRYPOINT_ - предоставление команды с аргументами для вызова во время выполнения контейнера
- _VOLUME_ - создание точки монтирования для работы с docker volume
- _EXPOSE_ - открытие порта в контейнере
> Все эти команды создают отдельный слой (layer) для сборки контейнера
## Оптимизация Образа
```dockerfile
FROM ubuntu
RUN apt update
RUN apt install python3 -y
RUN apt install python3-dev -y
```
- Сокращение инструкций **RUN** (уменьшение количества слоев)
```dockerfile
FROM ubuntu
RUN apt update
RUN apt install python3 python3-dev -y
```
> Docker будет пересобирать только те слои, которые были изменены
```dockerfile
FROM ubuntu
RUN apt update && \
apt install python3 python3-dev -y
```
- Удаление кеша пакетных менеджеров
```dockerfile
RUN apt update && \
apt install python3 python3-dev -y \
rm -rf /var/lib/apt/lists/*
```
- Удаление файлов в той же инструкции, где их создавали
- Инструкции, которые предположительно будут часто изменяться, ставить ниже остальных
- Сокращение количество инструкций **COPY**
```dockerfile
RUN apt update && \
apt install python3 python3-dev -y \
rm -rf /var/lib/apt/lists/*
COPY file1 file2 file3 ./dir
```
- Использование легковесных базовых образов, где есть такая возможность
![](Images,%20Dockerfile%20-%20Docke.png)
## Связанные заметки
- [[Environment Variables]] — инструкция `ENV` в Dockerfile устанавливает переменные окружения внутри контейнера; это расширение того же механизма Linux env vars
- [[Volume - Docker]] — инструкция `VOLUME` в Dockerfile объявляет точки монтирования для Docker Volumes
@@ -0,0 +1,31 @@
---
status: stable
type: concept
tags:
- devops
- containerization
- docker
created: 2025-12-17
updated: 2026-05-07
title: Multistaging - Docker
---
# Multistaging - Docker
При сборке docker-образов мы можем использовать механизм многоэтапной сборки - Multistaging.
При использовании multistaging мы разделяем процедуру сборки на несколько этапов, обозначая их метками.
![](Multistaging%20-%20Docker_imag.png)
**Использование механизма Multistaging позволяет:**
- Собирать легковесные образы.
- Сократить время сборки образов и запуска на основе контейнеров.
- Повысить производительность работы контейнеров.
- Переиспользовать вспомогательные образы из промежуточных этапов.
- Сократить поверхность атаки на наши контейнеры для потенциального
злоумышленника.
## Связанные заметки
- [[Основы - Docker]]
@@ -0,0 +1,83 @@
---
status: stable
type: concept
tags:
- devops
- containerization
- docker
created: 2025-12-17
updated: 2026-05-07
title: Network Drivers - Docker
---
# Network Drivers - Docker
При работе с docker возникает необходимость обеспечить работу контейнеров в сети:
- настройка правил маршрутизации (iptables)
- формирование пакетов
- инкапсуляция пакетов
- шифрование и безопасность
Для этого используются Network Drivers
Сетевых драйверов поддерживаются несколько вариаций, каждый из них способен обеспечить все основные функции:
- bridge (мост)
- host
- overlay
- macvlan
- none
- 3rd-party plugins
**Bridge**
Объединение контейнеров в bridge-сеть:
- контейнеры обьеденены в сеть
- контейнеры в сети имеют связь друг с другом
- контейнеры из другой сети не имеют сетевой связности
- используется в docker **по умолчанию**
**Host**
Использует сеть хоста (удаляется сетевая изоляция)
- удаляет сетевую изоляцию между контейнером и хостом
- возможны проблемы с занятым портов, сетевыми ограничениями хостовой сети (поддерживается только в Linux)
**Overlay**
Создание сети для объединения контейнеров на разных хостах путем создания оверлейной сети
- не поддерживает шифрование на win-хостах
**MacVLAN**
Работа с контейнерами, как с физическими устройствами
- присваивает каждому контейнеру в сети физический MAC-адрес
- позволяет обращаться к контейнеру как к настоящему устройству
- поддерживается только в Linux
**None**
Отключение всех сетей в контейнере
- может быть использован для изоляции контейнера
## Работа С Bridge-сетями
Docker по умолчанию использует bridge-сеть, так как он позволяет добиться большей изоляции от внешних сетей хоста.
Контейнеры внутри одного "бриджа" не имеют доступа к другим из других бридж сетей.
Если нам нужна гибкая настройка сети внутри самого контейнера, потребуются доп. **capabilities** (например, **CAP_NET_ADMIN**)
В качестве альтернативы можно рассмотреть CNI-плагины (сторонние - 3rd-party)
## Связанные заметки
- [[Модель OSI]] — bridge/overlay/macvlan реализуют концепции L2/L3 из модели OSI; iptables работает на L3/L4
- [[VLAN - Base]] — bridge-изоляция контейнеров ≈ VLAN-изоляция устройств: разные бриджи не видят друг друга, как разные VLAN
- [[VPN]] — overlay-сеть реализует принцип VPN: инкапсуляция трафика одной сети поверх другой
- [[Сегментация сети]] — изоляция контейнеров по bridge-сетям = программная сегментация сети
@@ -0,0 +1,60 @@
---
status: stable
type: concept
tags:
- devops
- containerization
- docker
created: 2025-12-17
updated: 2026-05-07
title: Storage Drivers - Docker
---
# Storage Drivers - Docker
Для работы с данными в контейнере имеется специальный контейнерный слой (**container layer**). Он появляется только в момент запуска контейнера, для работы с данными.
![](1_Storage%20Drivers%20-%20Docker_i.png)
Для работы с данными в контейнерном слое и работы со слоями образа _docker_ задействует _**драйверы хранилища**_ **(storage drivers).**
Доступны в Docker 6 SD:
![](Storage%20Drivers%20-%20Docker_i.png)
## Block Level (блочные хранилища)
- распределяют данные на блоки одинакового размеры по оборудованию
- не зависит от пути к данным
- быстрое получение
Примеры: ZFS, DeviceMapper
## File Level (файловые хранилища)
- данные хранятся единым фрагментов
- присутсвует иерархия директорий
- доступ к файлу зависит от единственного пути
- наиболее распространенный способ хранения данных
Примеры: AUFS, Overlay, **Overlay2** (по умолчанию)
## Object Level (объектно-ориентированные хранилища)
- данные распределяются по оборудованию по частям
- связывает объекты данных с их метадатой
- объекты могут быть только перезаписаны (изменять нельзя)
- для доступа требуется реализация API интерфейса
По умолчанию, в Docker используется Overlay2, изменить это можно в `/etc/docker/daemon.json`
**Backing Filesystem**
Резервная файловая система, в которой расположен `/var/lib/docker`
Для работы storage driver требуется **совместимая** backing filesystem.
![](2_Storage%20Drivers%20-%20Docker_i.png)
## Связанные заметки
- [[Основы - Docker]]
@@ -0,0 +1,62 @@
---
status: stable
type: concept
tags:
- devops
- containerization
- docker
created: 2025-12-17
updated: 2026-05-07
title: Volume - Docker
---
# Volume - Docker
**Некоторые данные стоит хранить независимо от контейнера, для этого существует понятие Volume.**
Стоит так хранить: БД, логи, конфиги, артефакты, настройки, …
Для постоянного или персистентного хранения используются Docker Volume. Это буквально монтирование хостовой директории внутрь контейнера, для работы с данными контейнера напрямую.
Возможности Docker Volumes:
1. Выгрузка данных контейнера на постоянное хранение
2. Работа в подмонтированных каталогах с интенсивной записью данных
3. Совместное использование данных несколькими контейнерами
Docker volumes создают тома, которые монтируются в контейнер.
По умолчанию тома docker volumes создаются в каталоге `/var/lib/docker/volumes/`
![](Volume%20-%20Docker_image.png)
## Типы Volumes
1. **Host** DV:
`docker run -v /home/mount/data:/var/lib/mysql/data`
При запуске контейнера, мы пробрасываем конкретный каталог на хосте в конкретный каталог в контейнере
(есть опция флагов, для редактирования прав доступа)
2. **Anonymous** DV:
`docker run -v /var/lib/mysql/data`
При таком подходе, Volume создастся в `/var/lib/docker/volumes`
3. **Names** DV:
`docker run -v name:/var/lib/mysql/data`
Аналогично второму варианту, Volume создается в директории по умолчанию, но ему присваивается метка `name`, которую можно переиспользовать.
## Организация Доступа К Файлам В Docker Volumes
По умолчанию, uid/gid внутри контейнера и на хосте идентичны, поэтому владелец/группа и права доступа внутри смонтированного каталога будут эквиванлентны.
Изменить данные поведение поможет фича под названием "userns-remap" - она позволит соотнести uid/gid контейнера к другим uid/gid хоста
Проблема в том, что по умолчанию, в volume владелец root - что не очень хорошо.
Для управления этой фичей, нужно отредактировать конфигурацию по пути `/etc/docker/daemon.json` 
```bash
{
"userns-remap": "<username>"
}
```
## Связанные заметки
- [[File Permissions]] — uid/gid маппинг в Docker Volumes напрямую зависит от Linux-прав доступа; проблема "владелец root по умолчанию" решается через chmod/chown
- [[Active Storage]] — Active Storage в Rails хранит файлы вне БД; в Docker-деплое они должны персистироваться через Volume, иначе теряются при перезапуске контейнера
@@ -0,0 +1,21 @@
---
status: stable
type: concept
tags:
- devops
- containerization
- docker
created: 2025-12-17
updated: 2026-05-07
title: Основы - Docker
---
# Основы - Docker
## Виртуализация
**Виртуализация** - это набор вычислительных ресурсов, обеспечивающих логическую изоляцию процессов, выполняющихся на одном физ.хосте.
## Связанные заметки
- [[Storage Drivers - Docker]]
- [[Multistaging - Docker]]
@@ -0,0 +1,51 @@
---
status: stable
type: concept
tags:
- devops
- containerization
created: 2026-02-13
updated: 2026-05-07
title: HashiCorp Nomad
---
# HashiCorp Nomad
**nomad** - фреймворк для построения кластерных решений, поддерживает не только контейнерные нагрузки, но и не-контейнерные. Существуют платные и бесплатные версии продукта.
![Picture background|200](HashiCorp%20Nomad_nomad.svg)
Существует возможность установки расширений:
- consul (service-discovering)
- vault (secret management)
- prometheus, grafana, ELK (monitoring, logging, etc)
- и т.д.
Установка nomad проста, но с увеличением расширений _сложность администрирования возрастает_.
Архитектура представляет собой совокупность управляющих (server) и управляемых (clients) узлов.
В Nomad используется концепция "job-tasks", где task - это атомарная единица работы, выполняемая выполняемая тем или иным драйвером:
- docker 
- qemu
- java
- etc
---
Nomad не поддерживает использование шаблонизаторов.
Для работы с манифестами nomad использует проприетарный язык HCL с ограниченной возможностью двусторонней конвертации HCL в json и yml.
Nomad поддерживает использование CNI-плагинов, и имеется поддержка CSI (Container Storage Interface)
Nomad поддерживает горизонтальное и вертикальное скалирование:
1. Горизонтальное - создание новых инстансов для балансировки нагрузки.
2. Вертикальное - увеличение ресурсов у уже существующих инстансов.
3. Кластерное скалирование - увеличение рабочих и управляющих узлов.
Другие решения:
[[Docker Swarm]]
[[Kubernetes]]
[[Apache Mesos]]
@@ -0,0 +1,72 @@
---
status: seed
type: guide
tags:
- devops
- git
- cli
created: 2025-12-17
updated: 2026-05-07
title: Основные команды git
---
# Основные команды git
Эта заметка — краткий справочник по базовым командам [[Git]].
## Создание и получение репозитория
- `git init` — создать новый Git-репозиторий в текущем проекте.
- `git clone` — создать локальную копию удалённого репозитория.
## Работа с ветками
- `git branch` — показать, создать или удалить ветки.
- `git checkout` — переключиться на ветку, файл или коммит.
- `git merge` — слить одну ветку в другую.
- `git rebase` — перебазировать ветку поверх другой ветки.
## Работа с изменениями
- `git status` — показать состояние рабочего каталога.
- `git add` — добавить изменения в индекс.
- `git commit` — зафиксировать проиндексированные изменения.
- `git restore` — откатить изменения или убрать их из индекса.
- `git revert` — создать новый коммит, отменяющий выбранный старый коммит без переписывания истории.
## Работа с удалённым репозиторием
- `git push` — отправить локальные коммиты в удалённый репозиторий.
- `git pull` — получить изменения из удалённого репозитория и сразу объединить их с локальной веткой.
Платформы вроде [[Gitlab]] используют эти операции как основу для командной разработки, merge request и CI/CD.
## Merge и rebase
`git merge` и `git rebase` решают одну задачу: переносят изменения из одной ветки в другую. Разница в том, как они меняют историю.
### Merge
`git merge` создаёт слияние веток без переписывания уже существующих коммитов. Это безопасный вариант для публичных веток.
![](https://legacy.merionet.ru/images/devops/images/3756/img_04.png)
### Rebase
`git rebase` переносит коммиты текущей ветки поверх другой ветки и помогает получить более линейную историю.
![](https://legacy.merionet.ru/images/devops/images/3756/img_03.png)
> [!important] Золотое правило rebase
> Не выполнять `git rebase` над публичной веткой, если её уже используют другие разработчики.
## Когда выбирать merge или rebase
- Если нужно сохранить полную историю и не переписывать публичные коммиты — использовать `git merge`.
- Если нужна чистая линейная история в локальной или личной ветке — использовать `git rebase`.
## Связанные заметки
- [[Git]]
- [[Gitlab]]
- [[DevOps - основы]]
@@ -0,0 +1,21 @@
---
status: stable
type: concept
tags:
- math
- mephi
- ml
- statistics
- time-series
created: 2026-01-21
updated: 2026-05-07
title: TS И DS Ряды
---
# TS И DS Ряды
> **Тренд или основная тенденция (Т)** - плавно меняющаяся линейная или нелинейная компонента, описывающая чистое влияние долговременных факторов на динамику изучаемого процесса.
Нестационарные временные ряды, которые после выделения детерминированного тренда с помощью МНК (Метод Наименьших Квадратов) приводятся к стационарному ряду остатков, называются **стационарными относительно детерминированного тренда (TS - trend stationary time series)** или **TS-рядами.** Таким образом, ряд $X$ называется стационарным относительно детерминированного тренда (линейного, экспоненциального, полиномиального, …), если ряд $X_{t} - f(t,\beta)$ является стационарным.
Временные ряды, которые можно привести к стационарному виду с помощью операции "дифференцирования", т.е. путем взятия конечных разностей определенного порядка, называются **стационарными относительно взятия разностей** **(DS - difference stationary time series)** или интегрированными временными рядами **(integrated time series)**.
@@ -0,0 +1,43 @@
---
status: processing
type: concept
tags:
- math
- mephi
- statistics
- time-series
- autocorrelation
created: 2026-02-13
updated: 2026-05-07
title: Автокорреляционная (ACF) И Частная Автокорреляционная (PACF) Функции
---
# Автокорреляционная (ACF) И Частная Автокорреляционная (PACF) Функции
Пусть $x_{t}$ - стационарный ВР.
Степень тесноты статистических связей между случайными величинами $x_{t}$ и $x_{t-k}$, отстающими друг от друга на лаг $k$, может быть измерена **парным коэффициентом корреляции**:
$$\rho_{k}=\rho(k)=Corr(x_{t},x_{t-k})=\frac{Cov(x_{t},x_{t-k})}{\sqrt{D(x_{t})D(x_{t-k})}} = \frac{\phi(k)}{\phi(o)}$$
т.к. для *стационарного* ряда: $D(x_{t})=D(x_{t-k})=\phi(o)$
**<u>Временной лаг $k$</u>** - величина сдвига между наблюдениями, используемый при расчете коэффициента $\rho_{k}$
**Величина $k$** определяет **порядок коэффициента автокорреляции**.
При анализе автокорреляции $\rho_{k}$ в зависимости от $k$ её называют **автокорреляционной функцией** (АКФ), т.к. речь идет об изучении корреляции уровней ряда друг с другом, то коэффициенты называются ***автокорреляцией***.
Оценкой коэффициента автокорреляции порядка $k$ является выборочный коэффициент автокорреляции порядка $k$:
$$r_{k}=r(k) = r(x_{t},x_{t-k})=\frac{\overline{x_{t}x_{t-k}}-\overline{x_{t}}*\overline{x_{t-k}}}{\sqrt{D_{в}(x_{t})D_{в}(x_{t-k})}}$$
Зависимость $r_{k}$ от $k (k = 1, \alpha,...)$ называют **выборочной** АКФ, а график этой зависимости - ***коррелограммой***.
Если при расчете показателей корреляции уровней ВР в зависимости от лага $k$ использовать частные коэффициенты корреляции, характеризующие "*очищенную*" взаимосвязь, то получим **ЧАКФ $\rho_{k}^{ч}$**
С помощью Частной Автокорреляционной Функции (ЧАКФ) измеряется корреляция между уровнями ряда $x_{t}$ и $x_{t-k}$, разделенными $k$ временными моментами, при исключении влияния на эту взаимосвязь всех промежуточных уровней ряда $x_{t-1},x_{t-2},\dots,x_{t-k+1}$, при этом, очевидно, что $\rho_{1}^{ч}=\rho_{1}$
ЧАКФ - зависимость частных коэффициентов автокорреляции от лага.
ЧАКФ показывает автокорреляцию между $x_{t}$ и $x_{t-k}$, очищенную от влияния значений между ними.
## Связанные заметки
- [[Автокорреляционная функция (АКФ)]] — расширенное изложение АКФ
- [[Частная автокорреляционная функция]] — расширенное изложение ЧАКФ
- [[Определение порядков АР и СС]] — практическое применение АКФ/ЧАКФ для выбора p и q
- [[Стационарность - ВР]] — АКФ/ЧАКФ определены для стационарных рядов
@@ -0,0 +1,39 @@
---
status: stable
type: concept
tags:
- math
- ml
- mephi
- statistics
- time-series
- autocorrelation
created: 2026-02-13
updated: 2026-05-07
title: Автокорреляционная Функция (АКФ)
---
# Автокорреляционная Функция (АКФ)
Пусть $x_t$ - стационарный ВР. Степени тесноты статической связи между случайными величинами $x_t\ и\ x_{t-k}$, отстающими друг от друга на лаг $k$, измеряется парным коэффициентом корреляции.
***АКФ:*** $\rho_k = corr(x_t, x_{t-k}) = \frac{cov(x_t, x_{t-k})}{\sqrt{D(x_t)*D(x_{t-k}})} = ]D(x_t) =D(x_{t-k})=\phi(0)[_{\text{ввиду стационарности}}=\frac{\phi(k)}{\phi(0)},$
где $x_{t-k}$ - сдвинутая переменная,
$\frac{cov(x_t, x_{t-k})}{\sqrt{D(x_t)*D(x_{t-k})}}$ - формула корреляции,
$k$ - величина временного лага.
Величина временного лага $k$ определяет порядок коэффициента автокорреляции.
$p$ - коэффициент для автокорреляции
$q$ - коэффициент для скользящего среднего
Оценка коэффициента автокорреляции порядка $k$ - выборочный коэффициент автокорреляции порядка $k$.
Выборочная АКФ (ВАКФ): $r_k = r(x_t, x_{t-k}) = \frac{\overline{x_t*x_{t-k}}-\overline{x_t*x_{t-k}}}{\sqrt{D(x_t)*D(x_{t-k})}}$. График ВАКФ называется **коррелограммой**.
## Связанные заметки
- [[Частная автокорреляционная функция]] — ЧАКФ дополняет АКФ, очищая связь от влияния промежуточных лагов
- [[Автокорреляционная (ACF) и частная автокорреляционная (PACF) функции]] — объединённое изложение обеих функций
- [[Определение порядков АР и СС]] — АКФ и ЧАКФ применяются для определения порядков моделей AR/MA
@@ -0,0 +1,60 @@
---
status: seed
type: concept
tags:
- mephi
- math
- statistics
- time-series
created: 2026-01-21
updated: 2026-05-07
title: Авторегрессия AR
---
# Авторегрессия AR
## Авторегрессия Первого Порядка
$AR(I)$ - процесс авторегрессии 1-го порядка (зависимость текущего значения ВР от предыдущего)
$x_{t}=\mu+a_{i}x_{t-1}+\epsilon_{t},\quad |a|<1\ (\epsilon - \text{процесс белого шума})$
$|a|<1$ - Необходимое условие стационарности $AR(I)$
Докажем, что $M=\frac{\mu}{1-a_{1}}$; $\quad \gamma_{0}=\frac{\sigma^{2}}{1-a_{1}^{2}}$; $\quad \gamma_{k}=a_{1}^{k}\frac{\sigma^{2}}{1-a_{1}^{2}}$
Из того, что $\rho_{k}=a_{1}^{2}$ следует, что АКФ для $AR(I)$ экпоненциально (монотонно) убывает с ростом $k$ - при $a_{1}>0$, либо осциллирующе затухает (экспоненциально затухающие синусоидальные волны) при $a_{1}<0$
По определению АКФ(1) = ЧАКФ(1)
Для $k>1$ ЧАКФ процесса $AR(I)$ равна 0.
> [!note] Характеристическое свойство $AR(I)$
> Только первое значение ВЧАКФ для $AR(I)$ выходит за пределы доверительной трубки
## Авторегрессия Второго Порядка
$AR(II)$ - процесс авторегресии 2-го порядка.
$x_{t}=a_{1}*x_{t-1}+a_{2}*x_{t-2}+\epsilon_{t}$
Условие стационарности: $|\lambda_{1}|<1,\ |\lambda_{\alpha}|<1$
При выполнении условия стационарности АКФ процесса $AR(II)$ убывает экспоненциально, **когда корни действительны.**
Не затухает с осцилляцией (изменяется по синусоиде с экспоненциально убывающей амплитудой), **если корни комплексные.**
ЧАКФ процесса $AR(II)$ равна 0, если $k>2$.
> [!note] Характеристическое свойство $AR(II)$$
> Только первые два значения ВЧАКФ для $AR(II)$ выходят за пределы доверительной области
## Авторегрессия Порядка $p$
$$x_{t} = \mu + a_{1}x_{t-1}+\dots+a_{p}x_{t-p}+\epsilon_{t}$$
с использованием [[Лаговый оператор|лагового оператора]]:
$$x_{t}=\mu+a_{1}Lx_{t}+\dots+a_{p}L^{p}x_{t}+\epsilon_{t}$$
$$(1-a_{1}L-\dots-a_{p}L^{p})x_{t}=\mu+\epsilon_{t}$$
Характ. уравнение 1: $1-a_{1}z-\dots-a_{p}z^{p}=0$
Характ. уравнение 2: $\lambda^{p}-a_{1}\lambda^{p-1}-\dots-a_{p}\lambda^{0}=0$
### Условие Стационарности
1) все корни Х.У. 1 по модулю $> 1$ $(|z_{j}|>1)$
2) все корни Х.У. 2 по модулю $< 1$ $(|\lambda_{j}|<1)$
АКФ при **отсутствии кратных корней** соотв. Х.У. будет экспоненциально затухать;
**если корни вещественные**, то просто затухает;
**если комплексные**, то затухание с осцилляцией.
ЧАКФ теоретическое $= 0$ для всех значений $k>p$.
Для ВЧАКФ только первые $p$ компонент выходят за Д.И.
@@ -0,0 +1,34 @@
---
status: seed
type: concept
tags:
- mephi
- math
- statistics
- time-series
created: 2026-01-21
updated: 2026-05-07
title: Белый Шум
---
# Белый Шум
**<u>Одномерные модели ВР</u>** - те, в которых текущее значение данного ВР зависит только от его предыстории (и не зависит от других ВР).
**<u>Процесс белого шума</u>** - последовательность независимых и одинаково распределенных случайных величин с нулевыми $M\ и\ \sigma^{2}$:
$\Sigma_{1},\Sigma_{2},\dots,\Sigma_{t-1}, \Sigma_{t}$
**<u>Белый шум</u>** - стационарный случайны процесс $\epsilon(t)$, для которого:
$M(\epsilon_{t})=0$
$D(\epsilon_{t})=\sigma^{2}>0$
$\rho_{k}=\rho(k)=Corr(\epsilon_{t},\epsilon_{t-k})=0\ при\ k \neq 0$
Если процесс $\epsilon(t)$ Гауссовый, то это Гауссовый Белый Шум.
Процесс "выбеливания" ВР - это исключение из него
тренда, цикличности, сезонно и прочих компонент так, чтобы остаток не отличался от процесса белого шума.
Белый шум нужен для оценки качества построенной модели.
Если удалось выделить белый шум из ВР, то моделирование проведено хорошо.
Значения АКФ и ЧАКФ полностью попадают в доверительный интервал.
@@ -0,0 +1,74 @@
---
status: stable
type: concept
tags:
- math
- ml
- mephi
- statistics
- time-series
created: 2026-02-13
updated: 2026-05-07
title: ВР - Основы
---
# ВР - Основы
**Временной ряд (ВР)** - это последовательность измерений или наблюдений за каким-либо показателем, упорядоченная во времени. Он отражает эволюцию явления и позволяет выявлять закономерности (тренд, сезонность, цикличность), а также делать прогнозы.
**Стационарность временного ряда** - это свойство ряда, при котором его основные статистические характеристики (среднее значение, дисперсия, автокорреляция) не меняются со временем.
![](ВР%20-%20основы_image.png)
Стационарность Временного Ряда
## Компоненты ВР
**Тренд или основная тенденция (Т)** - плавно меняющаяся линейная или нелинейная компонента, описывающая чистое влияние долговременных факторов на динамику изучаемого процесса. 
Факторы в отдельности могут оказать разнонаправленное воздействие, однако в совокупности их влияние определяет общее направление развития ВР.
**Сезонная компонента (S)** - отражает повторяемость экономических процессов в течении периода времени, **не превышающего года (год, квартал, месяц, неделя, сутки).** 
Чаще всего причиной их возникновения считаются природно-климатические условия сезонов и ритмы человеческой активности.
Пример: увеличение закупок в предпраздничный период, увеличение платежей в конце квартала.
![](1_ВР%20-%20основы_image.png)
**Циклическая компонента (C)** - отражает периодические колебания, выходящие за рамки одного года. Часто связан с изменением экономической активности.
Примеры: Инвестиционные циклы (7 - 11 лет), циклы обновления оборотных средств (3 - 5 лет).
Если из ВР удалить все вышеперечисленные компоненты, то останется случайная или "нерегулярная" компонента.
**Случайная компонента (**$\epsilon$**)** - случайный шум, который _нерегулярно_ действует на ряд. Эта компонента отражает влияние неподдающихся учету и регистрации случайных факторов.
![](2_ВР%20-%20основы_image.png)
---
Отдельный уровень ВР может быть представлен в виде функции от основных компонент: $x_t = f(T_t, S_t, C_t) + \epsilon_t = f(t,\beta)$ - детерминированный тренд, т.е. неслучайная функция времени, заданная с точностью до неизвестных параметров $\beta$.
**Основная задача экономического анализа ВР**
Выявление и придание количественного выражения каждой из компонент, чтобы использовать полученную интепретацию для прогнозирования будущих значений ряда или при построении модели взаимосвязи двух и более ВР.
**Аддитивная модель** - представление ВР в виде суммы составляющих его компонент. $x_t = T_t + S_t + C_t + \epsilon_t$
**Мультипликативная модель** - представление ВР в виде произведения составляющих его компонент. $x_t = T_t * S_t * C_t * \epsilon_t$
**Стационарность ВР**
Означает **неизменность** основных вероятностных характеристик во времени, т.е. сходство с поведением в прошлом (с помощью чего можем строить прогнозы).
---
Нестационарные временные ряды, которые после выделения детерминированного тренда с помощью МНК (Метод Наименьших Квадратов) приводятся к стационарному ряду остатков, называются **стационарными относительно детерминированного тренда (TS - trend stationary time series)** или **TS-рядами.** Таким образом, ряд $X$ называется стационарным относительно детерминированного тренда (линейного, экспоненциального, полиномиального, …), если ряд $X_{t} - f(t,\beta)$ является стационарным.
Временные ряды, которые можно привести к стационарному виду с помощью операции "дифференцирования", т.е. путем взятия конечных разностей определенного порядка, называются **стационарными относительно взятия разностей** **(DS - difference stationary time series)** или интегрированными временными рядами **(integrated time series)**.
Ссылки:
- [[Стационарность - ВР]]
- [[Линейные модели]] — AR-модель — это линейная регрессия на лаговых значениях; параметры оцениваются МНК
- [[Функции налогов и экономические циклы]] — циклическая компонента ВР (C) — математическая модель тех самых экономических циклов (7-11, 50-60 лет)
## Связанные заметки
- [[Временные ряды]]
@@ -0,0 +1,42 @@
---
status: stable
type: moc
tags:
- math
- statistics
- time-series
created: 2026-02-13
updated: 2026-05-07
title: Временные Ряды
---
# Временные Ряды
%% Begin Waypoint %%
- [[Автокорреляционная (ACF) и частная автокорреляционная (PACF) функции]]
- [[Автокорреляционная функция (АКФ)]]
- [[Авторегрессия AR]]
- [[Белый шум]]
- [[ВР - основы]]
- [[Лаговый оператор]]
- [[Модели АРПСС. Методология Бокса-Дженкинса]]
- [[Модели скользящего среднего]]
- [[Моделирование временных рядов]]
- [[Общая схема методологии Бокса-Дженкинса]]
- [[Определение временного ряда, виды и особенности]]
- [[Определение порядков АР и СС]]
- [[Переход к стационарным разностям]]
- [[Порядок интегрированности ряда]]
- [[Проверка адекватности и выбор модели]]
- [[Процедура Доладо — Дженкинса — Сосвилла — Ривера]]
- [[Процесс ARIMA]]
- [[Разложение Вольда]]
- [[Скользящее среднее MA]]
- [[Случайное блуждание]]
- [[Смешанные модели (ARMA)]]
- [[Стационарность - ВР]]
- [[Стационарность. Строгая и слабая стационарность]]
- [[Тесты на единичный корень и Дики-Фуллер]]
- [[Частная автокорреляционная функция]]
- [[TS и DS ряды]]
%% End Waypoint %%
@@ -0,0 +1,23 @@
---
status: processing
type: concept
tags:
- math
- mephi
- statistics
- time-series
created: 2026-01-21
updated: 2026-05-07
title: Лаговый Оператор
---
# Лаговый Оператор
$x_{t}$ - значение переменной $x$ в период $t$.
Выборка: $x_{1},\dots,x_{T}$, $T$ наблюдений случайной переменной $x_{t}$.
**Первый лаг** переменной $x_{t}$ - значение этой переменной в предыдущий период времени $y_{t-1}$
**$k$-ый лаг** переменной $x_{t}$ - это $x_{t-k}$
**<u>Лаговый оператор</u>**:
По определению: $L(x_{t})=x_{t-1}$
@@ -0,0 +1,69 @@
---
status: stable
type: concept
tags:
- math
- ml
- mephi
- statistics
- time-series
created: 2026-02-13
updated: 2026-05-07
title: Модели АРПСС. Методология Бокса-Дженкинса
---
# Модели АРПСС. Методология Бокса-Дженкинса
## Модели АРПСС (ARIMA)
Модели Бокса-Дженкинса относятся к классу одномерных моделей, где текущее значение ряда зависит только от его собственной предыстории.
**Процесс АРПСС (**$p, d, q$**)** — это **интегрированный процесс авторегрессии со скользящим средним в остатках**.
- Если ряд является интегрированным $d$-го порядка, и его $d$-я разность описывается процессом ARMA($p, q$), то исходный процесс — ARIMA($p, d, q$).
### Базовые Компоненты Модели
1. **Авторегрессия (**$AR(p)$**):** Текущее значение ряда зависит от его **прошлых** $p$ **значений** ($x_{t-1}, \dots, x_{t-p}$).
- **Условие стационарности AR:** Все корни характеристического уравнения должны лежать **вне** единичного круга по модулю ($|z_j|>1$).
2. **Скользящее среднее (**$MA(q)$**):** Текущее значение ряда зависит от **текущего и прошлых** $q$ **случайных ошибок** ($\epsilon_t, \dots, \epsilon_{t-q}$).
- **Условие стационарности MA:** Процесс $MA(q)$ стационарен при любых значениях параметров $\beta_i$.
3. **Белый шум (**$\epsilon_t$**):** Случайный шум, который является остатками, не имеющими автокорреляции ($\rho_k = 0$ при $k \neq 0$) и имеющими постоянную дисперсию ($\sigma^2_{\epsilon} > 0$).
## III. Методология Бокса-Дженкинса (4 этапа)
Методология представляет собой процедуру подбора оптимальной модели $ARIMA(p, d, q)$.
### 1. Этап 1: Идентификация Модели (Определение $d, P, q$)
Цель — определить структуру модели.
- **Шаг 1. Определение** $d$ **(Порядка интегрированности):**
- Сначала проверяется стационарность ряда (визуально или с помощью тестов, таких как **расширенный критерий Дики-Фуллера (ADF)** или **KPSS-тест**).
- Если ряд нестационарен, берутся разности ($\Delta x_t$), и процесс повторяется до получения стационарного ряда. $d$ — это количество взятых разностей.
- **Шаг 2. Определение порядков** $p$ **и** $q$**:**
- Анализируются графики **автокорреляционной функции (АКФ)** и **частной автокорреляционной функции (ЧАКФ)** для стационарных разностей ряда.
- Порядок **АР (**$p$**):** определяется по **обрыву** ЧАКФ (PACF). Обрыв — когда коэффициент незначимо отличается от нуля ($<\pm 1.96/\sqrt{T}$).
- Порядок **СС (**$q$**):** определяется по **обрыву** АКФ (ACF).
- Для смешанных моделей (АРСС) АКФ и ЧАКФ затухают (бесконечно убывающие).
### 2. Этап 2: Оценивание Модели
- Параметры выбранных моделей-кандидатов оцениваются (обычно с использованием точного или условного **метода максимального правдоподобия (ММП)**).
### 3. Этап 3: Проверка Адекватности Модели (Диагностика)
Проверка того, что остатки модели соответствуют белому шуму. Если модель неадекватна, возвращаются к Этапу 1 или 2.
- **Критерии проверки:**
1. **Значимость коэффициентов**.
2. **Анализ остатков:** Остатки должны быть нормально распределены, некоррелированы (проверяется с помощью АКФ/ЧАКФ остатков или **Q-статистик Бокса-Пирса/Бокса-Льюнга**) и иметь постоянную дисперсию (проверяется **тестом на ARCH-эффект**).
- **Выбор лучшей модели:** Если несколько моделей адекватны, выбирается та, которой соответствует **минимальное значение информационных критериев**:
- Критерий Акаике (AIC).
- Критерий Шварца (BIC).
- Критерий Хеннана-Куинна (HQ).
### 4. Этап 4: Прогнозирование
- Лучшая модель используется для прогнозирования будущих значений ($x_{T+h}$).
- Наилучшим является прогноз, который минимизирует среднеквадратическую ошибку прогноза, что достигается использованием **условного математического ожидания** $E(x_{T+h} | x_T, x_{T-1}, \dots)$.
- На практике также могут быть построены доверительные интервалы для прогноза, и может быть сформирован **обобщенный прогноз** (портфель моделей).
@@ -0,0 +1,25 @@
---
status: seed
type: concept
tags:
- mephi
- math
- statistics
- time-series
created: 2026-01-18
updated: 2026-05-07
title: Модели Скользящего Среднего
---
# Модели Скользящего Среднего
Теорема Вольда: $x_{t}-\mu = \Sigma_{T=0}^{\infty}\ \psi_{T}\ \epsilon_{t-T}$, где $\psi_{T}$ - весовые коэффициенты, $\epsilon_{t-T}$ - белый шум.
- $\Sigma_{T=0}^{\infty}\ \psi_{T} < \infty$
- Т.к. реализации <u>белого шума ненаблюдаемы</u>, то весовые коэффициенты определены с точностью до множителя, поэтому $\psi_{0}=0$
Процесс скользящего среднего порядка $q$ - стохастический процесс, в разложении *Вольда* которого присутствует только $q$ слагаемых, где $q$ - число параметров Скользящего Среднего.
1) $MA(1):x_{t}=[\psi_{0}=1]*\epsilon_{t}+\beta_{1}\epsilon_{t-1}$
Характеристики: $\begin{matrix} M=0 && \gamma_{1}=\beta_{1}\sigma^{2} \\ \gamma_{0}=(1+\beta_{1}^{2})\sigma^{2} && \gamma_{2}=\gamma_{3} = \dots = 0 \end{matrix}$ $\ \ \gamma_{0}\ и\ \gamma_{1} \neq 0$
$\rho_{1}=\frac{\beta_{1}}{1+\beta_{1}^{2}};\ \rho_{2}=\rho_{3}=\dots=0$ - значение автокорреляционной функции.
2) $MA(2):x_{t}=\epsilon_{t}+\beta_{1}\epsilon_{t-1}+\beta_{2}\epsilon_{t-2}$
@@ -0,0 +1,92 @@
---
status: stable
type: concept
tags:
- math
- ml
- mephi
- statistics
- time-series
created: 2026-02-13
updated: 2026-05-07
title: Моделирование Временных Рядов
---
# Моделирование Временных Рядов
## Модели Авторегрессии
Одномерные случайные процессы:
### I. $AR(1)$ Процесс Авторегрессии 1-го Порядка
$x_t = \mu + \alpha_1 x_{t-1} + \epsilon_t$, где $|\alpha_1| < 1$ - **необходимое** условие стационарности.
$M = \frac{\mu}{1-\alpha_1}$
$\gamma_0 = \frac{\sigma^2}{1-\alpha_1^2}$, где $\rho_k = \alpha_1^k$
$\gamma_k = \alpha_1^k * \frac{\sigma^2}{1-\alpha_1^2}$
Значит, АКФ для $AR(1)$:
1. Экспоненциально убывает с ростом лага $k$ при $\alpha_1 > 0$
2. Осцилирующе затухает при $\alpha_1 < 0$
По определению АКФ(1) = ЧАКФ(1). ЧАКФ процесса $AR(1)$ равна нулю при значениях $k>1$.
**Характеристическое свойство** $AR(1)$
Только первое значение ВЧАКФ для $AR(1)$ процесса выходит за пределы доверительной трубки
### II. $AR(2)$ Процесс Авторегреcсии 2-го Порядка
$$\large x_t = \mu + \alpha_1 x_{t-1} + \alpha_2 x_{t-2} + \epsilon_t$$
Характеристическое уравнение: $\lambda^2 - \alpha_1\lambda-\alpha_2 = 0$, где $|\alpha_1| < 1\ и\ |\alpha_2| < 1$ - **необходимые условия стационарности**.
При выполнении условий стационарности АКФ процесса $AR(2)$:
1. Экспоненциально убывает, если корни дейтвительны
2. Осцилирующе затухает, если корни комплексные
ЧАКФ процесса AR(2) равна нулю, при $k>2$
**Характеристическое свойство** $AR(2)$
Только первые два значения ВЧАКФ для $AR(2)$ процесса выходят за пределы доверительной трубки.
Лаговый оператор (для $AR(3)$): $\begin{matrix} L(x_t) = x_{t-1} \\ L^2(x_t) = L(L(x_t)) = L(x_{t-1}) = x_{t-2} \end{matrix}$
### III. $AR(p)$ Процесс Авторегрессии $p$-го Порядка
$$x_t = \mu + \alpha_1 x_{t-1} + \dots + \alpha_p x_{t-p} + \epsilon_t = \mu + \alpha_1 L(x_t) + \dots + \alpha_p L^p (x_t) + \epsilon_t$$
$$x_t - \alpha_1 L(x_t) + \dots + \alpha_p L^p(x_t) = \mu + \epsilon_t$$
$$(1 - \alpha_1L + \dots + \alpha_p L^p) * x_t = \mu + \epsilon_t$$
Характеристическое уравнение: $\begin{matrix} 1 - \alpha_1 z + \dots + \alpha_p z^p = 0, \text{где}\ |z_j| > 1 \\ \lambda - \alpha_1 \lambda^{p-1} - \dots - \alpha_p \lambda^0 = 0, \text{где}\ |\lambda_j| < 1 \end{matrix}$
## Модели Скользящего Среднего (СС)
Скользящее среднее - Moving Average
Теорема Вольда: $x_t - \mu = \sum_{T=0}^{\infin} \psi_T \epsilon_{t-T}$, где $\psi_{T}$ - весовые коэффициенты, $\epsilon_{t-T}$ - белый шум.
- $\sum_{T=0}^{\infin} \psi_T < \infin$
- Т.к. реалзации **белого шума ненаблюдаемы,** то весовые коэффиенты определены с точностью до множителя, поэтому $\psi_0 = 1$.
Процесс скользящего среднего порядка $q$ - стохастический процесс, в разложении **Вольда** которого присутствует только $q$ слагаемых, где $q$ - число параметров СС.
1. $MA(1): x_t = \epsilon_t + \beta_1 \epsilon_{t-1}$
Характеристики: $\begin{matrix} M = 0 & \gamma_1 = \beta_1 \sigma^2 \\ \\ \gamma_0 = (1+\beta_1^2) \sigma^2 & \gamma_2 = \gamma_3 = \dots = 0 \\ \\ \gamma_0\ и\ \gamma_1 \neq 0 & p_1 = \frac{\beta_1}{1+ \beta_1^2};\ p_2 = p_3 = \dots = 0 \end{matrix}$
2. $MA(2): x_t = \epsilon_t + \beta_1 \epsilon_{t-1} + \beta_2 \epsilon_{t-2}$
3. $MA(q): x_t = \epsilon_t + \beta+1 \epsilon_{t-1} + \beta_2 \epsilon_{t-2} + \dots + \beta_q \epsilon_{t-q} =$
$= \epsilon_t + \beta_1 L^1(\epsilon_t) + \beta_2 L^2(\epsilon_t) + \dots + \beta_q L^q(\epsilon_t) = (1 + \beta_1 L^1(\epsilon_t) + \dots + \beta_q L^q(\epsilon_t))\epsilon_t$
Процесс стационарен при любых значениях $\beta_1, \dots, \beta_q$.
$1 + \beta_1 L^1(\epsilon_t) + \dots + \beta_q L^q(\epsilon_t)$ == 1 + лин.комбинация лаговых операторов
$\forall\ \text{процесс СС. стационарен при}\ \forall \beta \\ x\ \text{зависит только от белых шумов}$
@@ -0,0 +1,24 @@
---
status: seed
type: concept
tags:
- math
- mephi
- statistics
- time-series
created: 2026-01-21
updated: 2026-05-07
title: Общая Схема Методологии Бокса-Дженкинса
---
# Общая Схема Методологии Бокса-Дженкинса
Для ВР $x_{1},\dots,x_{T}$ необходимо подобрать $ARIMA(p,d,q)$ модель, которая описывает динамику этого временного ряда.
**<u>Этап 1</u>**: Идентификация
**Шаг 1**: Определение порядка интегрированности ряда $d$ и переход к стационарным разностям
**Шаг 2**: Определение порядков АР и СС: $p$ и $q$
**<u>Этап 2</u>**: Оценивание модели
**<u>Этап 3</u>**: Проверка адекватности модели. Выбор модели.
**<u>Этап 4</u>**: Прогнозирование. Формирование обобщенного прогноза.
@@ -0,0 +1,65 @@
---
status: processing
type: concept
tags:
- math
- mephi
- statistics
- time-series
created: 2026-01-21
updated: 2026-05-07
title: Определение Временного Ряда, Виды И Особенности
---
# Определение Временного Ряда, Виды И Особенности
**<u>Временной ряд (ВР)</u>** - это последовательность измерений или наблюдений за каким-либо показателем, упорядоченная во времени. Он отражает эволюцию явления и позволяет выявлять закономерности (тренд, сезонность, цикличность), а также делать прогнозы.
## Отличия ВР От СВ
**ВР** - реализация набора зависимых случайных величин с различными (меняющимся во времени) распределением.
**СВ** (Случайная Выборка) - реализация набора независимых, одинаково распределенных случайных величин.
**Отдельные наблюдения** - уровни временного ряда ($x_{t}, t=\overline{1,n}$, $n$ - число уровней)
Бывают **одномерные** (1 параметр) и **многомерные** ВР.
ВР бывают **детерминированными** (определены какой-то четкой функцией) и **случайными** (реализация последовательности случайных величин)
## Компоненты ВР
- **Тренд или основная тенденция (Т)** - плавно меняющаяся линейная или нелинейная компонента, описывающая чистое влияние долговременных факторов на динамику изучаемого процесса. 
Факторы в отдельности могут оказать разнонаправленное воздействие, однако в совокупности их влияние определяет общее направление развития ВР.
- **Сезонная компонента (S)** - отражает повторяемость экономических процессов в течении периода времени, **не превышающего года (год, квартал, месяц, неделя, сутки).** 
Чаще всего причиной их возникновения считаются природно-климатические условия сезонов и ритмы человеческой активности.
Пример: увеличение закупок в предпраздничный период, увеличение платежей в конце квартала.
![](1_ВР%20-%20основы_image.png)
- **Циклическая компонента (C)** - отражает периодические колебания, выходящие за рамки одного года. Часто связан с изменением экономической активности.
Примеры: Инвестиционные циклы (7 - 11 лет), циклы обновления оборотных средств (3 - 5 лет).
Если из ВР удалить все вышеперечисленные компоненты, то останется случайная или "нерегулярная" компонента.
- **Случайная компонента (**$\epsilon$**)** - случайный шум, который _нерегулярно_ действует на ряд. Эта компонента отражает влияние неподдающихся учету и регистрации случайных факторов.
![](2_ВР%20-%20основы_image.png)
---
Отдельный уровень ВР может быть представлен в виде функции от основных компонент: $x_t = f(T_t, S_t, C_t) + \epsilon_t = f(t,\beta)$ - детерминированный тренд, т.е. неслучайная функция времени, заданная с точностью до неизвестных параметров $\beta$.
**Основная задача экономического анализа ВР**
Выявление и придание количественного выражения каждой из компонент, чтобы использовать полученную интерпретацию для прогнозирования будущих значений ряда или при построении модели взаимосвязи двух и более ВР.
**Аддитивная модель** - представление ВР в виде суммы составляющих его компонент. $x_t = T_t + S_t + C_t + \epsilon_t$
**Мультипликативная модель** - представление ВР в виде произведения составляющих его компонент. $x_t = T_t * S_t * C_t * \epsilon_t$
**Стационарность ВР**
Означает **неизменность** основных вероятностных характеристик во времени, т.е. сходство с поведением в прошлом (с помощью чего можем строить прогнозы).
---
Нестационарные временные ряды, которые после выделения детерминированного тренда с помощью МНК (Метод Наименьших Квадратов) приводятся к стационарному ряду остатков, называются **стационарными относительно детерминированного тренда (TS - trend stationary time series)** или **TS-рядами.** Таким образом, ряд $X$ называется стационарным относительно детерминированного тренда (линейного, экспоненциального, полиномиального, …), если ряд $X_{t} - f(t,\beta)$ является стационарным.
Временные ряды, которые можно привести к стационарному виду с помощью операции "дифференцирования", т.е. путем взятия конечных разностей определенного порядка, называются **стационарными относительно взятия разностей** **(DS - difference stationary time series)** или интегрированными временными рядами **(integrated time series)**.
@@ -0,0 +1,34 @@
---
status: seed
type: concept
tags:
- mephi
- math
- statistics
- time-series
created: 2026-01-21
updated: 2026-05-07
title: Определение Порядков АР И СС
---
# Определение Порядков АР И СС
Определение порядков AR и MA относится к этапу идентификации и выполняется после:
- определения порядка $d$
- перехода к стационарным разностям
Строятся и анализируются АКФ и ЧАКФ.
По их виду делаются предварительные выводы о типе модели и порядках $p$ и $q$.
## Процесс $AR(p)$
Если АКФ бесконечно убывает (только при $k \to \infty$ сходится к $0$), и ЧАКФ равна (или близка) нулю для лагов больших $p$, то порядок определятся по ЧАКФ.
## Процесс $MA(q)$
Если АКФ равна (или близка) нулю для лагов больших $q$, и ЧАКФ бесконечно убывает, то порядок $q$ определяется по АКФ.
## Процесс $ARMA(p,q)$
Если АКФ и ЧАКФ бесконечно убывают, то оценка $p$ по ЧАКФ, оценка $q$ по АКФ.
## Вывод
1) АКФ и ЧАКФ не обязаны точно совпадать с теоремами, но должны быть похожи.
2) Коррелограммы дают предварительную идентификацию, которая затем уточняется при оценивании и проверке адекватности.
3) На практике рекомендуется использовать экономичные модели $p+q \leq 3$ (при отсутствии сезонности)
@@ -0,0 +1,26 @@
---
status: seed
type: concept
tags:
- mephi
- math
- statistics
- time-series
created: 2026-01-21
updated: 2026-05-07
title: Переход К Стационарным Разностям
---
# Переход К Стационарным Разностям
**Цель**: подобрать модель $ARIMA(p,d,q)$, адекватно описывающую динамику ВР.
## Определение Порядка Интегрированности $d$
1) Приводим ряд к стационарному виду
Если ряд нестационарен, то переходят к разностям:
$\Delta x_{t}= x_{t}-x_{t-1},\ \Delta^{\alpha} x_{t}=\Delta x_{t}-\Delta x_{t-\alpha}$
Порядок $d$-число разностей, необходимых для достижения стационарности.
2) Ориентируясь по графику ВР
- если график близок к прямой, то достаточно $d=1$
- иначе, $d \geq 2$
1) Определить количетсво единичных корней
2) Анализ АКФ ряда первых, вторых и более высоких разностей и взятие в качестве $d$: $\min$ порядок, при котором АКФ быстро затухает.
@@ -0,0 +1,21 @@
---
status: processing
type: concept
tags:
- math
- mephi
- statistics
- time-series
created: 2026-01-21
updated: 2026-05-07
title: Порядок Интегрированности Ряда
---
# Порядок Интегрированности Ряда
Если процесс **стационарен**, то он называется процессом, интегрированным **нулевого порядка**: $I(0)$
Если процесс не стационарен, а его первые разности **стационарны**, то он называется процессом, **интегрированным 1-го порядка**: $I(1)$
Если $x_{t}$ не стационарен, его первые разности $\Delta x_{t}$ тоже не стационарны, но стационарны вторые разности \[$\Delta^{2} x_{t} = (\Delta x_{t} - \Delta x_{t-1})$\], то процесс называется **интегрированным 2-го порядка**: $I(2)$
И аналогично для $I(k)$
@@ -0,0 +1,55 @@
---
status: seed
type: concept
tags:
- math
- statistics
- time-series
created: 2026-01-21
updated: 2026-05-07
title: Проверка Адекватности И Выбор Модели
---
# Проверка Адекватности И Выбор Модели
## Проверка Адекватности
Модель считается адекватной, если:
1) Коэффициенты модели статистически значимы
2) Остатки - белый шум
- нулевое мат. ожидание и нет автокорреляции
### Анализ Остатков Модели
1) Проверка отдельных коэффициентов автокорреляции
$H_{0}: \rho_{k}=0$
$H_{1}: \rho_{k} \neq 0$
$\hat{\rho_{k}}\sim N(1,\frac{1}{T}); H_{0}$ при уровне значимости $5\%$, и если $|\hat{\rho_{k}}|<1.96/\sqrt{T}$ ***принимается***
2) Тестирование отсутствия автокорреляции остатков
- $Q$ статистика Бокса-Пирса
$H_{0}: \rho_{1}=\dots=\rho_{k}=0$
$H_{1}: \exists i:\rho_{i} \neq 0$
$Q = T\sum\limits_{i=1}^{k}\hat{\rho_{i}}^{2}$;
При истинности $H_{0}: Q|_{H_{0}}\sim \chi^{2}(K-p-q)$
- Тест Льюинга-Бокса
$H_{0}: \rho_{1}=\dots=\rho_{k}=0$
$H_{1}: \exists i: \rho_{i} \neq 0$
$\large Q=T(T+\alpha)\sum\limits_{i=1}^{k}\frac{\hat{\rho_{i}}^{2}}{T-i};$
При истинности $H_{0}: Q|_{H_{0}} \sim \chi^{2}(K-p-q)$
## Выбор Модели
Если адекватны несколько моделей, используют информационные критерии (выбор падает на min значение)
1) **Шварца**
$BIC = \ln(\hat{\sigma}^{2})+\frac{p+q}{T}*\ln{T}$, где:
$\hat{\sigma}^{2}=\frac{\sum\limits e_{t}^{2}}{T}$ - оценка остаточной дисперсии
$p,q$ - количество оцениваемых параметров АР и СС (если есть константа, то $p+q+1$)
$T$ - длина ВР
Для других моделей: $BIC=\ln{\hat{\sigma}^{2}}+k/t \ln{T}$
1) Акаике
$AIC = \ln{\hat{\sigma}^{2}}+2 \frac{p+q}{T},\ \sigma^{2}=\frac{\Sigma e_{t}^{2}}{T}$
2) Хеннана-Куинна
$HQ = \ln{\hat{\sigma}^{2}}+\frac{p+q}{T}\ln{(\ln{T})}$
## Прогнозирование
![[Pasted image 20260122094429.png]]
## Обобщенный Прогноз
![[Pasted image 20260122094459.png]]
@@ -0,0 +1,47 @@
---
status: seed
type: concept
tags:
- mephi
- math
- statistics
- time-series
created: 2026-01-21
updated: 2026-05-07
title: Процедура Доладо — Дженкинса — Сосвилла — Ривера
---
# Процедура Доладо — Дженкинса — Сосвилла — Ривера
При добавлении излишних регрессоров, мощность критерия снижается. Поэтому используют процедуру Доладо — Дженкинса — Сосвилла — Ривера (ДДСР) для определения состава регрессоров.
**<u>Шаг 1</u>**:
Оценка модели с константой и линейным трендом
$H_{0}: \gamma=0$
$H_{1}:\gamma<0$
Если нулевая гипотеза отвергается, то ряд класса $TS$.
Если нулевая гипотеза принимается, то прежде чем относить к $DS$, надо удостовериться, что тренд был правильно включен.
- Оценка модели без регрессора $y_{t-1}$.
- Проверка значимости коэффициента при тренде.
1) Если он значим, то тренд включен правильно -> ряд $DS$
2) Иначе его зря включили, значит, надо оценивать модель с константой.
**<u>Шаг 2</u>**:
Оценка модели с константой
$H_{0}:\gamma=0$
$H_{1}:\gamma<0$
Если нулевая гипотеза отвергается, то ряд $TS$
Иначе, нельзя сразу говорить, что ряд $DS$, необходимо проверить правильность включения константы:
- Оценка модели без регрессора $y_{t-1}$
- Проверка значимости константы с помощью $t$-статистики Стъюдента
- Если константа значима, то она была включена верно, это $DS$
- Иначе, то производится оценка модели без константы.
**<u>Шаг 3</u>**:
Оценка модели без константы
$H_{0}: \gamma=0$
$H_{1}:\gamma<0$
Если нулевая гипотеза отвергается, то ряд $TS$ (процесс $AR$ с нулевым мат. ожиданием).
Иначе, $DS$ (случайное блуждание без дрейфа)
@@ -0,0 +1,22 @@
---
status: seed
type: concept
tags:
- math
- mephi
- statistics
- time-series
- arima
created: 2026-01-21
updated: 2026-05-07
title: Процесс $ARIMA$
---
# Процесс $ARIMA$
Если процесс является интегрированным $k$-го порядка, и его разность $k$-го порядка описывается процессом $ARMA(p,q)$, то исходный процесс называется **интегрированным процессом авторегресии со скользящим средним в остатках** $ARIMA(p,k,q)$ или $ARIMA(p,d,q)$
Процесс содержит единичный корень, т.е. нестационарен.
Рассмотрим первые разности процесса:
$$x_{t}-x_{t-1}=0.9x_{t-1}-x_{t-1}+0.1x_{t-2}+\epsilon_{t}$$
$$\Delta x_{t}=0.1*\Delta x_{t-1}+\epsilon_{t}$$
Первые разности описываются стационарным процессом $AR(I)$ или $ARMA(I, 0)$, значит, исходный процесс описывается моделью $ARIMA(I,I,0)$
@@ -0,0 +1,31 @@
---
status: processing
type: concept
tags:
- math
- mephi
- ml
- statistics
- time-series
created: 2026-01-21
updated: 2026-05-07
title: Разложение Вольда
---
# Разложение Вольда
## Теорема Вольда
$$x_{t}-\mu =\sum\limits_{\tau=0}^{\infty}\psi_{\tau}*\epsilon_{t-\tau}\qquad (\sum\limits_{\tau=0}^{\infty}\psi_{\tau}<\infty,\quad\psi_{0}=1)$$
Где:
$x_{t}$ - чисто недетерминированный стационарный в широком смысле случайный процесс;
$\mu$ - мат.ожидание процесса;
$\psi_{\tau}$ - весовые коэффициенты;
$\epsilon_{t-\tau}$ - белый шум с конечным мат. ожиданием и дисперсией.
> $\psi_{0}=1$ т.к. реализации белого шума ненаблюдаемы, весовые коэффициенты определены с точностью до множителя.
Любой стационарный процесс может быть представлен в виде бесконечного ряда членов белого шума с коэффициентами, образующими абсолютно сходящийся числовой ряд.
Это означает, что стационарный $AR(I)$ процесс можно представить, как процесс $MA(\infty)$. Данное свойство называется **<u>обратимостью</u>**.
Таким образом, нет фундаментальной разницы между $AR$ и $MA$ представлением ВР.
@@ -0,0 +1,47 @@
---
status: stable
type: concept
tags:
- math
- mephi
- statistics
- time-series
created: 2026-01-21
updated: 2026-05-07
title: Скользящее Среднее Порядка $q$
---
# Скользящее Среднее Порядка $q$
Стохастический процесс называется процессом скользящего среднего порядка $q$, если в [[Разложение Вольда|разложении Вольда]] присутствует только $q$ слагаемых.
**<u>Модель</u>**: берется взвешенная сумма каких-то $q$ белых шумов.
$MA(q): x_{t}=\epsilon_{t}+\beta_{1}*\epsilon_{t-1}+\beta_{2}*\epsilon_{t-2}+\dots+\beta_{q}*\epsilon_{t-q}$
Запись с использованием [[Лаговый оператор|лагового оператора]]:
$$MA(q): L^{0}\epsilon_{t}+\beta_{1}*L\epsilon_{t}+\beta_{2}*L^{2}\epsilon_{t}+\dots+\beta_{q}*\epsilon_{t-q}=$$
$$= \underbrace{(L^0 +\beta_{1}L + \beta_{2}L^{2}+\dots+\beta_{q}L^{q})}_{\text{Операторный полином}}\epsilon_{t}=\beta_{q}(L)\epsilon_{t}$$
## $MA(I)$ - Процесс СС 1-го Порядка
$x_{t}=\epsilon_{t}+\beta_{1}\epsilon_{t-1}$
**<u>Статистические характеристики</u>**:
$M=0$
$\gamma_{0}=(1-\beta_{1}^{\alpha})\sigma^{2}$
$\gamma_{1}=\beta_{1}*\sigma^{2}$
$\gamma_{\alpha}=\gamma_{3}=\dots=0$
$\rho_{1}=\frac{\beta_{1}}{1+\beta_{1}^{2}}; \quad \rho_{2}=\rho_{3}=\dots=0$
## $MA(q)$ - Процесс СС Порядка $q$
$x_{t}=\epsilon_{t}+\beta_{1}\epsilon_{t-1}+\dots+\beta_{q}*\epsilon_{t-q}$
Фактически это сложение белых шумов, просто собраны модели разных порядков.
Процесс стационарен при любых значениях $\beta_{1},\dotsm\,\beta_{q}$
**<u>Свойства АКФ, ЧАКФ</u>**:
| | АКФ | ЧАКФ |
| -------------------- | ------------------- | ------------------------------- |
| $MA(1)$<br>$b_{1}>0$ | Зануление при $k>1$ | Осциллирующее затухание |
| $MA(1)$<br>$b_{1}<0$ | Зануление при $k>1$ | Убывание по абсолютной величине |
| $MA(q)$ | Зануление при $k>q$ | |
@@ -0,0 +1,29 @@
---
status: seed
type: concept
tags:
- math
- mephi
- statistics
- time-series
created: 2026-01-21
updated: 2026-05-07
title: Случайное Блуждание
---
# Случайное Блуждание
$$x_{t}=x_{t-1}+\epsilon_{t}$$
$$(1-L)x_{t}=\epsilon_{t}$$
## Характеристическое Уравнение
$$1-z=0$$$z=1$ - единичный корень, процесс нестационерен.
## Статистические Характеристики
$$\matrix{M(x_{t})=x_{0}+t*\delta \\ D(x_{t})=t*\delta^{2}}$$
> Процесс случайного блуждания не стационарен, однако его первая разность является стационарным процессом.
> $$x_{t}-x_{t-1}=\delta+\epsilon_{t}$$$$\Delta x_{t}=\delta+\epsilon_{t}$$
## Связанные заметки
- [[Производные финансовые инструменты]] — случайное блуждание — фундаментальная модель динамики цен активов, лежащая в основе ценообразования фьючерсов и опционов
- [[Стационарность - ВР]] — случайное блуждание — классический пример нестационарного процесса (единичный корень)
@@ -0,0 +1,29 @@
---
status: seed
type: concept
tags:
- math
- mephi
- statistics
- time-series
- arma
created: 2026-01-21
updated: 2026-05-07
title: Смешанные Модели (ARMA)
---
# Смешанные Модели (ARMA)
$ARMA(p,q)$ - естественное обобщение подхода к моделированию: объединение модели авторегрессии и скользящего среднего.
$$x_{t}=\delta+a_{1}x_{t-1}+\dots+a_{p}x_{t-p}+\epsilon_{t}+\beta_{1}\epsilon_{t-1}+\dots+\beta_{q}\epsilon_{t-q}$$
Необходимым и достаточным условием стационарности процесса $x_{t}$ является условие принадлежности всех корней характеристического уравнения: $\lambda^{p}-a_{1}*\lambda^{p-1}-\dots-a_{p}=0$ единичному кругу на комплексной плоскости $|\lambda|<1$
Принцип выбора порядков $p$ и $q$:
1) При выборе $p$ необходимо выбрать число значений ЧАКФ, вышедших за границы Д.И.
2) При выборе $q$ необходимо смотреть на число значений АКФ, вышедших за границы Д.И.
Далее пошагово определяется порядок модели, исходя из статистической значимости составляющих:
![[Pasted image 20260121171416.png]]
> Если $AR$ и $MA$ компоненты $ARMA$ модели имеют общие корни, то представление ряда можно упростить.
> ![[Pasted image 20260121171547.png]]
@@ -0,0 +1,31 @@
---
status: stable
type: concept
tags:
- math
- ml
- mephi
- statistics
- time-series
created: 2026-02-13
updated: 2026-05-07
title: Стационарность - ВР
---
# Стационарность - ВР
**Стационарность** — свойство временного ряда, при котором его основные статистические характеристики **не меняются во времени**.
**Стационарность ВР**
Означает **неизменность** основных вероятностных характеристик во времени, т.е. сходство с поведением в прошлом (с помощью чего можем строить прогнозы).
Типы стационарности:
1. Сильная
1. Предлагает постоянство законов
2. Совместное распределение $m$ наблюдений $\large x_{t_1}, \dots, x_{t_m}$ не зависит от сдвига по времени, т.е. совпадает с $\large x_{t_1+k}, \dots, x_{t_m+k}$ $\forall m,k,l\ \text{где}\ l=\overline{1,m}$
3. _Из сильной следует и слабая._
2. Слабая
Предполагает постоянство первых и вторых моментов распределения (мат. ожиданий, дисперсий, ковариаций). Т.е $\forall t$ справедливо $\large \begin{cases} M(X_t) = \mu < \infty \\ D(X_t) = \gamma_0 \\ cov(x_t, x_{t-k}) = \gamma_k \end{cases}$
но этот закон распределения не обязательно стационарен.
@@ -0,0 +1,25 @@
---
status: seed
type: concept
tags:
- math
- mephi
- statistics
- time-series
created: 2026-01-21
updated: 2026-05-07
title: Стационарность. Строгая И Слабая Стационарность
---
# Стационарность. Строгая И Слабая Стационарность
## Стационарность. Строгая И Слабая Стационарность
**<u>Стационарность</u>** - это свойство ряда, при котором его основные статистические характеристики (среднее значение, дисперсия, автокорреляция) не меняются со временем.
![[Pasted image 20260121132321.png]]
**<u>Сильная стационарность</u>** - ВР называется **строго** стационарным, если совместное распределение $m$ наблюдений: $x_{t_{1}},\dots,x_{t_{m}}$ **не зависят от сдвига (лага)** для $\forall m,t,\dots,t_{m},k$ (стационарность в узком смысле)
**<u>Слабая стационарность</u>** - ВР называется **слабо** стационарным, если для всех $t$ $M(x_{t})=\mu < \infty$ (мат. ожидание постоянно)
$D(x_{t})=\gamma_{0}=\phi_{0}, \quad \mu, \gamma_{0},\gamma_{k}$ - не зависят от $t$
$cov(x_{t},x_{t-k})=\gamma_{k}=\phi_{k}, \forall t,k$
$\gamma$ - это автоковариация - мера того, насколько значение ВР связаны сами с собой через определенный лаг.
@@ -0,0 +1,121 @@
---
status: seed
type: concept
tags:
- math
- mephi
- statistics
- time-series
created: 2026-01-21
updated: 2026-05-07
title: Тесты На Единичный Корень
---
# Тесты На Единичный Корень
## Модели Единичного Корня
Нестационарный случайный процесс $x_{t}$ называется **интегрированным порядка $d \geq 1$** ($I(d)$), если
- ряд $x_{t}$ нестационарен (или стационарен относительно детерминированного тренда)
- разности порядка $d: \Delta^{d}x_{t}$ стационарны
- разности меньших порядков нестационарны
**Смысл**: $x_{t}$ является $I(d)$, если операция вычисления разностей порядка $d$ приводит нестац. случ. проц. $x_{t}$ к стац. ряду.
Впервые при данном значении порядка разностей $d$.
## Процессы Единичного Корня
Процессы $I(d)$ называют процессом единичного корня, потому что:
- характеристическое уравнение модели содержит корень "$1$"
- наличие ед. корня => стохастический тренд
## Модель $AR(1)$ С Трендом
Р/м модель $x_{t}=\alpha_{0}+\beta t +\alpha_{1}x_{t-1}+\epsilon_{t}$
1) Если $\alpha_{0} \neq 0,\ \beta=0$^
- $|\alpha_{1}|<1$ => стац. ряд, тренда нет
- $a_{1}=1$ => DS-ряд
1) $\beta \neq 0,\ \alpha_{0} \neq 0$:
- $|\alpha_{1}|<1$ => $TS$
- $\alpha_{1}=1$ => $DS$
| TS | DS |
| ------------------------------------ | ---------------------------------------------- |
| Тренд детерминирован | Тренд стохастичен |
| Убирается детерминированием | Убирается дифференцированием |
| После вычитания тренда - стационарен | После вычитание тренда - все ещё нестационарен |
| Нет единичного корня | есть единичный корень |
Неверный способ удаления тренда приводит к проблемам:
1) Детерминированный DS-ряд
- искажение спектра
- лишняя переодичность
1) Разностирование $TS$-ряда
- передифференцирование
- сложности в оценивании модели
Таким образом TS и DS ряды визуально трудно различимы, поэтому обязательно применяются тесты на единичный корень, от которого зависит корректный выбор.
## Тест Д-Ф Без Константы
**<u>Тест Дики-Фуллера</u>** - это методика, которая используется в прикладной статистике и эконометрике для анализа ВР для проверки на стационарность
Модель без константы: $x_{t}=\alpha x_{t-1} + \epsilon_{t}$
$H_{0}: \alpha = 1$ - ряд нестационарный, содержит единичный корень, описывается процессом случайного блуждания.
$H_{1}: |\alpha|<1$ - ряд стационарен, не содержит единичный корень, описывается стационарным авторегрессионным процессом 1-го порядка.
$$x_{t}-x_{t-1}=\alpha_{0}+\alpha_{1}*x_{t-1}-x_{t-1}+\phi t+\epsilon_{t} \implies $$$$\implies \Delta x_{t}=\alpha_{0}+(\alpha_{1}-1)*x_{t-1}+ \phi t + \epsilon_{t}$$
Обозначим $(\alpha-1) =b$: $$\Delta x_{t}=b*x_{t-1}+\epsilon_{t}$$
Новые гипотезы:
$H_{0}: \alpha=1 \to b=0$: Если ряд содержит единичный корень, то коэффициент $b$ незначим
$H_{1}: |\alpha| <1 \to b < 0$: Если ряд стационарен, то $b$ значимый и отрицательный
**Идея теста**: оценить уравнение обычным МНК и проверить значимость коэффициента $b$ при помощи $t$-статистики: $\hat{t}=\hat{b}/SE(\hat{b})$, где $SE(b)$ - стандартная ошибка.
В данном случае, $t$-статистика имеет распределение Дики-Фуллера.
Если рассчитанное значение статистики оказалось левее критического, то нулевая гипотеза отклоняется -> ряд стационарен.
## Тест Д-Ф С Константой
Модель с константой: $x_{t}=\alpha_{0}+\alpha_{1}*x_{t-1}+\epsilon_{t}$
$H_{0}: \alpha_{1}=1$ - ряд НС., содержит единичный корень, описывается стац. авторегрессионным процессом случ. блуждания с дрейфом.
$H_{1}: |\alpha_{1}|<1$ - ряд С., не содержит единичный корень, описывается стац. авторегрессионным процессом 1-го порядка.
$$x_{t}-x_{t-1}=\alpha_{0}+\alpha_{1}*x_{t-1}-x_{t-1}+\epsilon_{t} \implies \Delta x_{t}=\alpha_{0}+(\alpha_{1}-1)*x_{t-1}+ \epsilon_{t}$$
Обозначим $(\alpha-1) =b$: $$\Delta x_{t}=\alpha_{0}+b*x_{t-1}+\epsilon_{t}$$
## Тест Д-Ф С Константой И Трендом
Модель: $x_{t}=\alpha_{0}+\alpha_{1}*x_{t-1}+\phi t + \epsilon_{t}$
$H_{0}: \alpha_{1}=1$ - ряд НС., содержит единичный корень, описывается стац. авторегрессионным процессом случ. блуждания с дрейфом.
$H_{1}: |\alpha_{1}|<1$ - ряд С., не содержит единичный корень, описывается стац. авторегрессионным процессом 1-го порядка.
При $|\alpha_{1}|<1$ и $\phi \neq 0$ -> $x_{t}$ стац. относительно линейного тренда $(TS)$
В этом случае, ряд $z_{t}=x_{t}-\phi t$ стационарен.
$$x_{t}-x_{t-1}=\alpha_{0}+\alpha_{1}*x_{t-1}-x_{t-1}+\phi t+\epsilon_{t} \implies $$$$\implies \Delta x_{t}=\alpha_{0}+(\alpha_{1}-1)*x_{t-1}+ \phi t + \epsilon_{t}$$
Обозначим $(\alpha-1) =b$: $$\Delta x_{t}=\alpha_{0}+b*x_{t-1}+\phi t+\epsilon_{t}$$
## Расширенный Тест Д-Ф
Обобщение критерия Д-Ф для учета авторегрессии $p$-порядка составляет суть расширенного критерия Д-Ф ($ADF$-тест)
Общий случай без константы: $x_{t}=\alpha_{1}x_{t-1}+\dots+\alpha_{p}x_{t-p}+\epsilon_{t}$
$H_{0}$: ряд является НС, содержит единичный корень
$H_{1}$: ряд является стационарным процессом $AR(p)$
$$x_{t}-x_{t-1}=(\alpha_{1}x_{t-1}+\dots+\alpha_{p}x_{t-p}+\epsilon_{t})-x_{t-1} \implies$$
$$\implies \Delta x_{t}=(\alpha_{1}-1) x_{t-1}+\alpha_{2}x_{t-2}+\dots+\alpha_{p}x_{t-p}+\epsilon_{t}$$
**Оценка уравнения**:
$$\Delta x_{t}=b*x_{t-1}+c_{1}*\Delta x_{t-1}+\dots+c_{p-1}*\Delta x_{t-p+1}+\epsilon_{t}$$
$$(\Delta x_{t}= \gamma*x_{t-1}+\sum\limits_{t=1}^{p-1}\phi_{i} \Delta x_{t-1}+\epsilon_{t})$$
Расчетное значение статистики: $\hat{t} = \frac{\hat{b}}{SE(\hat{b})}$
*Модель с константой:*
$$x_{t}=\alpha_{0}+\alpha_{1}x_{t-1}+\dots+\alpha_{p}x_{t-p}+\epsilon_{t} \implies$$
$$\implies \Delta x_{t}=\alpha_{0}+bx_{t-1}+c_{1} \Delta x_{t-1}+\dots+c_{p-1} \Delta x_{t-p+1} +\epsilon_{t}$$
$$(\Delta x_{t}=\mu+\gamma x_{t-1}+\sum\limits_{t=1}^{p-1}\phi_{i} \Delta x_{t-1}+\epsilon_{t})$$
*Модель с константной с трендом:*
$$x_{t}=\alpha_{0}\alpha_{1} x_{t-1} + \dots + \alpha_{p} x_{t-p}+\phi t + \epsilon_{t} \implies$$
$$\implies \Delta x_{t}=\alpha_{0}+b x_{t-1}+c_{1} \Delta x_{t-1} + \dots + c_{p-1} \Delta x_{t-p+1}+ \phi t + \epsilon_{t}$$
$$(\Delta x_{t}=\mu+\beta t + \gamma x_{t-1} + \sum\limits_{t=1}^{p-1}\phi_{i} \Delta x_{t-1} +\epsilon_{t})$$
В данном случае, $t$-статистика имеет распределение Дики-Фуллера.
Если рассчитанное значение статистики оказалось левее критического, то нулевая гипотеза отклоняется -> ряд стационарен.
Критическое значение расширенного критерия Д-Ф. совпадают с критическим значением обычного критерия Д-Ф., роль дополнительной авторегрессионной компоненты сводится к тому, чтобы исключить автокорреляцию остатков, при которой тест не работает.
Ограничения:
1) Не включать лишние регрессоры (мощность снижается)
2) Чувствительность к выбору числа лагов
3) Не применять при негомоскедастичности остатков
4) Ложное принятие при наличии структурных сдвигов
5) Некорректно использовать при наличии нескольких единичных корней
@@ -0,0 +1,26 @@
---
status: stable
type: concept
tags:
- math
- ml
- mephi
- statistics
- time-series
- autocorrelation
created: 2026-02-13
updated: 2026-05-07
title: Частная Автокорреляционная Функция
---
# Частная Автокорреляционная Функция
Если при расчете показателей корреляции уровней ВР в зависимости от лага $k$, использовать частные коэффициенты корреляции, характеризующие "очищенную взаимосвязь", то получится **ЧАКФ** $\rho_k^ч$.
С помощью ЧАКФ измеряется корреляция между уровнями ряда $x_t\ и\ x_{t-k}$, разделенными $k$ временными моментами, при исключении влияния на эту взаимосвязь всех промежуточных уровней ряда $x_{t-1},\dots,x_{t-k-1}$
Заметим, что $\rho_1^ч = \rho_1$ (т.е. ЧАКФ первого порядка равна АКФ первого порядка)
## Связанные заметки
- [[Автокорреляционная функция (АКФ)]] — базовая автокорреляция; ЧАКФ отличается «очисткой» от промежуточных лагов
- [[Автокорреляционная (ACF) и частная автокорреляционная (PACF) функции]] — объединённое изложение
- [[Определение порядков АР и СС]] — ЧАКФ используется для определения порядка AR
@@ -0,0 +1,21 @@
---
status: stable
type: moc
tags:
- math
- statistics
- discriminant-analysis
created: 2026-02-13
updated: 2026-05-07
title: Дискриминантный Анализ (Conflicted Copy Ada-pc 202602021942)
---
# Дискриминантный Анализ (Conflicted Copy Ada-pc 202602021942)
%% Begin Waypoint %%
- [[Параметрический дискриминантный анализ в случае нормального закона распределения классов]]
- [[Построение оптимальной процедуры классификации]]
- [[Принципы дискриминантного анализа]]
- [[Условие отнесения объекта к классу в случае двух признаков]]
%% End Waypoint %%
@@ -0,0 +1,23 @@
---
status: stable
type: moc
tags:
- math
- statistics
- discriminant-analysis
created: 2026-02-13
updated: 2026-05-07
title: Дискриминантный Анализ
---
# Дискриминантный Анализ
%% Begin Waypoint %%
- [[Дискриминантный анализ (Conflicted copy ada-pc 202602021942)]]
- [[Параметрический дискриминантный анализ в случае нормального закона распределения классов]]
- [[Построение оптимальной процедуры классификации]]
- [[Принципы дискриминантного анализа]]
- [[Условие отнесения объекта к классу в случае двух признаков]]
- [[Функция потерь]]
%% End Waypoint %%
@@ -0,0 +1,25 @@
---
status: seed
type: concept
tags:
- math
- statistics
- discriminant-analysis
- ml-algorithms
created: 2026-01-19
updated: 2026-05-07
title: Параметрический Дискриминантный Анализ В Случае Нормального Закона Распределения Классов
---
# Параметрический Дискриминантный Анализ В Случае Нормального Закона Распределения Классов
Параметрический дискриминантный анализ (ПДА) - это метод классификации, основанный на предположении, что плотности распределение признаков в каждом из классов описываются определенным теоретическим законом распределения.
В большинстве случаев, предполагается **многомерное нормальное распределение**.
## Основное Предположение
Для каждого класса $S_{k},\ k=\overline{1,m}$ вектор признаков $X = (x_{1}, x_{2},\dots, x_{p})^{T}$ распределен нормально с вектором средних $\mu_{k}$ и ковариационной матрицей $\Sigma_{k}$:
$$X \sim N(\mu_{k},\Sigma_{k})$$
Плотность распределения для $k$-го класса:$$f_{k}(x)=\frac{1}{(2\pi)^{p/2}|\Sigma_{k}|^{1/2}}*\exp(-\frac{1}{2}(x-\mu_{k})^{T}\Sigma_{k}^{-1}(x-\mu_{k}))$$
## Принцип Классификации (Байесовское правило)
Объект с вектором признаков $x$ относится к тому классу $S_{k}$, для которого **апостериорная вероятность** максимальна.
$$P(S_{k}|x) = \frac{q_{k}f_{k}(x)}{\sum_{i=1}^{m}q_{i}f_{i}(x)}$$
Где $q_{k}$​ — априорная вероятность класса $S_{k}$.
**<u>Решающее правило:</u>** объект относится к классу k, если логарифм выражения $q_{k​}f_{k}​(x)$ максимален. Это приводит к построению **дискриминантных функций**.
@@ -0,0 +1,27 @@
---
status: seed
type: concept
tags:
- math
- mephi
- statistics
- discriminant-analysis
created: 2026-01-18
updated: 2026-05-07
title: Построение Оптимальной Процедуры Классификации
---
# Построение Оптимальной Процедуры Классификации
Совокупность из объектов, подлежащая классификации, в дискриминантном анализе интерпретируется как выборка из генеральной совокупности, описываемая смесью классов с плотностью вида: $$f(x) = \sum\limits_{j=1}^{k}\pi_{i}*f_{j}(x)$$
$\pi_{i}$ - удельный вес элементов $j$-го класса в общей генеральной совокупности.
![[Pasted image 20260118205031.png|500]]
$A$ - событие, состоящее в том, что $f(x)$ примет значение $\Delta x$
$B_{j}$ - событие, состоящее в том, что $\Delta x$ принадлежит $j$ -му классу
$P(A) = \sum\limits_{j=1}^{k}P(B_{j})*P(A|B_{j}) \implies f(x) * \Delta x \approx \sum\limits_{j=1}^{k}\pi_{i}*f_{j}(x) * \Delta x$
Оптимальная (байесовская) процедура классификации $S_{j}$ - это процедура классификации с **минимальными потерями** среди всех других процедур классификации.
$$S_{j}^{opt}=(S_{1}^{opt},\dots,S_{k}^{opt}), j=\overline{1,k}$$
$$S_{j}^{opt}=\left\{ x: \sum\limits_{\begin{align} i=1 \\ i \neq j \end{align}}^{k} \pi_{i}*f_{i}(x)*c(j|i) = \min_{1 \leq l \leq k} \sum\limits_{\matrix{i=1 \\ i \neq l}}^{k}\pi_{i}*f_{i}(x)*c(l|i) \right\}$$
![[Pasted image 20260122100552.png]]
![[Pasted image 20260122100611.png]]
@@ -0,0 +1,39 @@
---
status: seed
type: concept
tags:
- math
- mephi
- statistics
- discriminant-analysis
created: 2026-01-18
updated: 2026-05-07
title: Принципы Дискриминантного Анализа
---
# Принципы Дискриминантного Анализа
**<u>Дискриминантный анализ</u>** - раздел многомерного статистического анализа, включающее в себя статистические методы классификации многомерных наблюдений в ситуации, когда исследователь обладает так называемыми **обучающими выборками**.
## Исходные Данные
Задача: отнести каждый из $N$ объектов, подлежащих классификации, к одному из $k$ классов.
Информация о классифицируемых объектах:
1) матрица $X_{N*n}$ типа "объект-свойство" с информацией о значениях признаков $X_{1},X_{2},\dots,X_{n}$ для $N$ объектов наблюдений, подлежащих классификации
$$X_{N*n}=\begin{pmatrix} x_{11} & x_{12} & \dots & x_{1n} \\ x_{21} & x_{22} & \dots & x_{2n} \\ \dots & \dots & \dots & \dots \\ x_{N1} & x_{N2} & \dots & x_{Nn}\end{pmatrix}$$
2) Обучающие выборки $X^{(1)}, X^{(2)}, \dots, X^{(k)}$,
где $X_{n_{j}*n}^{(j)}=\begin{pmatrix} x_{11}^{(j)} & x_{12}^{(j)} & \dots & x_{1n}^{(j)} \\ x_{21}^{(j)} & x_{22}^{(j)} & \dots & x_{2n}^{(j)} \\ \dots & \dots & \dots & \dots \\ x_{n_{j}1}^{(j)} & x_{n_{j}2}^{(j)} & \dots & x_{n_{j}n}^{(j)} \end{pmatrix} \ j = \overline{1\dots k}$
матрица типа *"Объект-Свойство"* , содержащая информацию о значениях признаков для $n_{j}$ объектов, для которых заранее известно, что они принадлежат $j$-ому классу.
---
**<u>Класс в дискриминантном анализе</u>** - это генеральная совокупность, описываемая одномодальной функцией плотности $f(x)$ или одномодальным полигоном вероятности (в случае дискретного вектора признаков).
> [!important] Основной принцип классификации в ДА
> Объект следует отнести к тому классу, в рамках которого он выглядит **более правдоподобным**.
![[Pasted image 20260118190948.png]]
## Связанные заметки
- [[Линейные модели]] — логистическая регрессия решает ту же задачу классификации; ДА — статистическая формализация, ML — вычислительная реализация
- [[Метрические алгоритмы]] — kNN — ещё один метод классификации с обучающей выборкой; классифицирует по расстоянию, а не по плотности распределения
- [[Функция потерь]] — функция потерь C → min как критерий оптимальной процедуры классификации
@@ -0,0 +1,22 @@
---
status: stable
type: concept
tags:
- math
- ml
- mephi
- statistics
- discriminant-analysis
created: 2026-02-13
updated: 2026-05-07
title: Условие Отнесения Объекта К Классу В Случае Двух Признаков
---
# Условие Отнесения Объекта К Классу В Случае Двух Признаков
$$(x_{v}-\frac{1}{2}(\hat{a}^{(j)}+\hat{a}^{(l)}))^{T}\hat{\sum}^{-1}( \hat{a}^{(j)}-\hat{a}^{(l)}) \geq \ln \frac{\hat{\pi_{l}}}{\hat{\pi}_{j}}$$
Левая часть - линейная дискриминантная функция, описывающая границу между 2-мя классами.
$\hat{\sum}^{-1} * (\hat{a}^{(i)}-\hat{a}^{(l)})$ - весовой коэффициент $b$. (коэффициент дискриминантной функции)
![](Условие%20отнесения%20объекта%20.png)
@@ -0,0 +1,47 @@
---
status: seed
type: concept
tags:
- math
- mephi
- statistics
- discriminant-analysis
created: 2026-01-18
updated: 2026-05-07
title: Функция Потерь
dg-home: false
dg-publish: false
---
# Функция Потерь
## Общие Потери
Пусть $c(j/i)$ - стоимость потерь от отнесения объекта $i$-класса с номером $j$, при этом $c(i/i)=0$.
$m(j/i)$ - число объектов $i$ класса неправильно классифицированных в $j$ класс.
Тогда суммарные потери:$$C_{N} = \sum\limits_{i=1}^{k}\sum\limits_{j=1}^{k}c(j/i)*m(j/i)$$
## Удельные Потери
**<u>Функция удельных потерь</u>** $(C)$ — это предел отношения общих потерь к общему объему выборки $(N)$ при бесконечном увеличении числа наблюдений $(N→∞)$.
$$C=\lim_{N \to \infty}(\frac{1}{N}*C_{N})=\lim_{N \to \infty}\sum\limits_{i=1}^{k}\sum\limits_{j=1}^{k}C(j/i)*\frac{m(j/i)*n_{i}}{n_{i}*N}=$$$$=\sum\limits_{i=1}^{k}\pi_{i}*\sum\limits_{i=1}^{k}C(j/i)*P(j/i)$$
$\large \frac{m(j|i)}{n_{i}} \to^{P} P(j|i)$, где $P(j|i)$ - вероятность отнесения объекта класса $i$ к классу $j$.
$\large \frac{n_{i}}{N} \to^{P} \pi_{i}$, где $\pi_{i}$ - вероятность того, что объект принадлежит к $i$-ому классу.
Величину $\pi_{i}$ называют **априорной вероятностью** или **удельным весом $i$-го класса**.
## Функция Потерь
$$C = \sum\limits_{i=1}^{k}\pi_{i}*\sum\limits_{j=1}^{k}C(j|i)*P(j|i)
$$
$C^{(i)}=\sum\limits_{j=1}^{k}\pi_{i}*C^{(i)}$ - средние удельные потери от неправильной классификации всех анализируемых объектов.
---
Полагают, что потери $C(j|i)$ одинаковы для $\forall i,j$:
$C(j|i)=C_{0}=const,\ j \neq i,\ i,j=\overline{1,k}$
Тогда задача минимизации средних удельных потерь $(C \to \min)$ сводится к **максимизации вероятности правильной классификации**.
$$\sum\limits_{i=1}^{k}\pi_{i}*P(i|i) \to \max$$
## Связанные заметки
- [[Линейные модели]] — MSE → min в МНК и C → min в ДА — один и тот же принцип минимизации ошибки; в ML реализован численно через градиентный спуск
- [[Принципы дискриминантного анализа]] — контекст применения функции потерь
@@ -0,0 +1,52 @@
---
status: seed
type: concept
tags:
- math
- mephi
- statistics
- cluster-analysis
created: 2026-01-18
updated: 2026-05-07
title: Агломеративные (иерархические) Методы
---
# Агломеративные (иерархические) Методы
Принцип работы агломеративных методов кластеризации заключается в последовательном объединении групп наиболее приближенных объектов, а потом всё более далеких друг от друга.
На первом шаге, каждый объект - отдельный класс.
На каждом последующем, мы объединяем самые близкие классы в один.
Алгоритм заканчивается, когда остается всего один класс.
Если ставится задача разбиения на несколько кластеров, то устанавливается пороговое значение расстояния $\rho$, превышение которого прекращает цикл.
## Алгоритм
1) Центрирование и нормирование значений исходных признаков
2) Расчет матрицы расстояний между объектами (каждый объект - отдельный класс)
3) Объединение двух ближайших классов
4) Пересчет матрицы расстояний между классами ([[Расстояние между классами объектов|по выбранному методу]])
5) Повторение процедуры до достижения необходимого количества классов
## Методы Связывания Классов
1) <u>Одиночная связь</u> (метод ближайшего соседа)
Расстояние между кластерами определяется, как расстояние между двумя наиболее близкими объектами в этих кластерах. Такие кластеры имеют тенденцию представляться в виде *"цепочек"*.
2) <u>Полная связь</u> (метод дальнего соседа)
Наибольшее расстояние между двумя объектами из разных кластеров. (Но из этих "максимальных расстояний" выбираем минимальное)
3) <u>Невзвешенное попарное среднее</u>
Расстояние вычисляется как **среднее расстояние между всеми парами** объектов в двух классах.
4) <u>Взвешенное попарное среднее</u>
Аналогично невзвешенному, но предполагаются неравные размеры кластеров, поэтому размер кластера (т.е. число объектов в нем) используется в качестве весового коэффициента.
5) <u>Невзвешенный центроидный метод</u>
Расстояние м/у двумя кластерами определяется как расстояние между их центрами тяжести.
6) <u>Взвешенный центроидный метод</u>
Аналогично невзвешенному, но при вычислениях используются веса для учета разницы между кластерами.
7) **<u>Метод Уорда</u>**
Использует методы дисперсионного анализа для оценки расстояний между кластерами. Метод минимизирует сумму квадратов $(SS)$ для любых двух кластеров, которые могут быть сформированы на каждом шаге.
*Метод эффективен, но стремиться к кластерам малого размера.*
## Связанные заметки
- [[Постановка задачи Кластерного анализа]] — формальная постановка задачи разбиения
- [[Расстояние между классами объектов]] — метрики, используемые в шаге объединения классов
- [[Дивизимные методы]] — противоположный подход: от одного класса к N
- [[Критерии определения оптимального числа классов]] — как выбрать порог остановки алгоритма
@@ -0,0 +1,28 @@
---
status: seed
type: concept
tags:
- math
- statistics
- cluster-analysis
created: 2026-01-18
updated: 2026-05-07
title: Дивизимные Методы
---
# Дивизимные Методы
> Принцип работы обратен [[Агломеративные (иерархические) методы|Агломерации]].
Первоначально все объекты в одном кластере, выбираются два **наиболее** удаленных объекта, и их берут за основу двух новых кластеров.
Далее, остальные объекты распределяют по этим классам по принципу наименьшего расстояния до его центра.
Далее уже эти два класса делят на 4 по тому же принципу.
<u>Цикл происходит до тех пор, пока каждый объект не станет отдельный классом.</u>
Преимущество дивизимных методов заключается в том, что все расчеты осуществляются на основе исходной **матрицы расстояний**, не нуждающейся в постоянном пересчете.
## Связанные заметки
- [[Постановка задачи Кластерного анализа]] — формальная постановка задачи разбиения
- [[Агломеративные (иерархические) методы]] — противоположный подход: от N классов к одному
- [[Расстояние между классами объектов]] — матрица расстояний, на которой работает алгоритм
@@ -0,0 +1,22 @@
---
status: seed
type: concept
tags:
- math
- mephi
- statistics
- cluster-analysis
created: 2026-01-18
updated: 2026-05-07
title: Интерпретация Результатов Кластеризации
---
# Интерпретация Результатов Кластеризации
1) <u>Анализ средних значений</u>
- *Расчет* *средних*:
Для каждого выделенного кластера вычисляются средние значения всех признаков, участвовавших в классификации.
- *Визуализация*:
Строятся графики средних значений (профили кластеров). Благодаря своей наглядности, они позволяют охарактеризовать каждый класс и провести сравнительный анализ между группами.
- *Присвоение имен*:
Конечной целью этого этапа является присвоение каждому кластеру понятного названия, отражающего его специфику (например, "клиенты с высоким доходом", "рискованные заемщики" и т.д.).
@@ -0,0 +1,50 @@
---
status: seed
type: concept
tags:
- mephi
- math
- statistics
- cluster-analysis
created: 2026-01-05
updated: 2026-05-07
title: Итерационные Методы
---
# Итерационные Методы
Процедуры классификации, которые, в отличие от иерархических методов, не строят дерево (дендрограмму), а разбивают совокупность объектов на кластеры путем последовательного улучшения начального разбиения.
# К-средних
Метод K-средних относится к методам итерационной классификации. В результате строится ровно $k$ различных, наиболее удаленных друг от друга, кластеров.
> [!important] Цель метода
> **Минимизировать** изменчивость внутри кластеров и **максимизировать** изменчивость между кластерами.
Объекты перемещаются из одних кластеров в другие для того, чтобы получить наиболее значимый результат: **максимальное отношение межгрупповой дисперсии к внутригрупповой.**
## Алгоритм
1) Задаются $k$ случайно выбранных объектов (число классов) - эталоны $\epsilon$
2) Из оставшихся $N-k$ объектов извлекается объект и проверяется, к какому их эталонов он ближе (по мерам расстояния). Данных объект присоединяется к тому эталону, для которого наблюдается минимальное расстояние $\min_{1 \leq l \leq k} \rho_{il}$
Веса и эталоны пересчитываются по принципу:
$$\begin{align}
\epsilon_{i} = \begin{cases}
\frac{\omega_{i}*\epsilon_{i}+O}{\omega_{i}+1},\ если\ \rho(O, \epsilon_{i})=\min_{1 \leq j \leq k} \epsilon_{j} \\
\epsilon_{i},\ \text{в других случаях}
\end{cases}
\\
\omega_{i} = \begin{cases}
\omega_{i}+1,\ если\ \rho(O, \epsilon_{i})=\min_{1 \leq j \leq k} \epsilon_{j} \\
\omega_{i},\ \text{в других случаях}
\end{cases}
\end{align}$$
$\omega_{i}$ - вес $i-го$ класса. Изначально считается, что $\epsilon_{i}=O_{i},\ \omega_{i}=1,\ i=\overline{1,k}$
3) После рассмотрения каждого из $N-k$ объектов, все объекты будут распределены на $k$ классов - на этом первая итерация алгоритма закончена.
4) Для достижения устойчивого разбиения, итерация повторяется, а веса продолжают накапливаться. Новое разбиение сравнивается с предыдущим. Если совпадают, то работа алгоритма завершается, в противном случае - алгоритм повторяется.
Недостатками метода можно отметить:
- неясно, как выбирать исходные центры кластеров.
- число кластеров надо знать заранее.
## Связанные заметки
- [[Метрические алгоритмы]] — kNN также классифицирует по минимальному расстоянию до ближайших объектов; supervised-аналог K-means
- [[Расстояние между объектами]] — метрики расстояния, используемые при вычислении $\min \rho_{il}$
@@ -0,0 +1,47 @@
---
status: seed
type: concept
tags:
- mephi
- math
- statistics
- cluster-analysis
created: 2025-12-25
updated: 2026-05-07
title: Классификация
---
# Классификация
> [!note] Определение
> Классификация - это:
> 1) разделение рассматриваемой совокупности объектов/явлений на **однородные группы**
> 2) отнесение каждого из заданного множества объектов к одному из заранее известных классов
## Исходные Статистические Данные В Задачах Классификации
1) Матрица "**объект-свойство**" или матрица парных сравнений:$$X_{N*k}=
\begin{pmatrix}
x_{11} & \dots & x_{1k} \\
\vdots & \ddots & \vdots \\
x_{N1} & \dots & x_{Nk}
\end{pmatrix}\ \text{или} \ \ \gamma_{N*N}= \begin{pmatrix}
\gamma_{11} & \dots & \gamma_{1N} \\
\vdots & \ddots & \vdots \\
\gamma_{N1} & \dots & \gamma_{NN}
\end{pmatrix}$$
2) Обучающие выборки $X^{(1)}, X^{(2)}, \dots, X^{(p)}$ -> набор объектов, для которых заранее известно к каким классам они относятся:$$X_{n_{j}*k}^{(j)}=
\begin{pmatrix} x_{11}^{(j)} & \dots & x_{1k}^{(j)} \\ \vdots & \ddots & \vdots \\ x_{n_{j}1}^{(j)} & \dots & x_{n_{j}k}^{(j)}
\end{pmatrix},\ \text{где}\ j=\overline{1,p}$$
## Типологизация Задач Классификации
| Априорные сведения о классах | Без обучающих выборок | С обучающими выборками |
| --------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- |
| Не известен вид закона распределения в классах | Классификация без обучения (непараметрический случай): <u>**кластерный анализ**</u> | Классификация с обучением (непараметрический случай): **<u>дискриминантный анализ</u>** |
| Известен вид закона распределения в классах (***параметра распределения не известны***) | Классификация без обучения (параметрический случай) <u>**расщепление смесей вероятностных распределений**</u> | Классификация с обучением (параметрический случай) <u>**параметрический дискриминантный анализ**</u><br> |
| Полностью известен закон распределения в классах | Проверка статических гипотез | Обучающие выборки не нужны |
## Связанные заметки
- [[Кластерный анализ]] — детальное рассмотрение классификации без обучения
- [[Дискриминантный анализ]] — детальное рассмотрение классификации с обучением
- [[Постановка задачи Кластерного анализа]] — формальная постановка задачи
@@ -0,0 +1,34 @@
---
status: stable
type: moc
tags:
- math
- mephi
- statistics
- cluster-analysis
created: 2026-05-02
updated: 2026-05-07
title: Кластерный Анализ
---
# Кластерный Анализ
%% Begin Waypoint %%
- [[Агломеративные (иерархические) методы]]
- [[Дивизимные методы]]
- [[Интерпретация результатов кластеризации]]
- [[Итерационная классификация. Метод K-средних (K-means)]]
- [[Классификация]]
- [[Критерии определения оптимального числа классов]]
- [[Наивный Байесовский алгоритм]]
- [[Понятие однородности объектов]]
- [[Постановка задачи Кластерного анализа]]
- [[Расстояние между классами объектов]]
- [[Расстояние между объектами]]
- [[Функционалы качества разбиения]]
%% End Waypoint %%
## Контекст
- [[Классификация]] — типология задач классификации: кластерный vs. дискриминантный анализ
- [[Дискриминантный анализ]] — классификация с обучающей выборкой (в отличие от кластерного)
@@ -0,0 +1,21 @@
---
status: seed
type: concept
tags:
- math
- statistics
- cluster-analysis
created: 2026-01-18
updated: 2026-05-07
title: Критерии Определения Оптимального Числа Классов
---
# Критерии Определения Оптимального Числа Классов
1) <u>Визуальный анализ дендрограммы</u>:
Большой разрыв между уровнями разбиения $\rho_{0}$ и $\rho_{1}>\rho_{0}$ говорит о том, что оптимальное количество классов равно $\rho_{0}$
2) <u>Формальные статистические критерии</u>:
- *Индекс Калински и Харабаза* (сравнение разброса внутри кластеров с разбросом между кластерами)
$G = \frac{trace(B)/(p-1)}{trace(W)/(n-p)}$, где $B$ - матрица межгруппового рассеяния, $W$ - матрица внутригруппового рассеяния, $p$ - кол-во классов, $n$ - объем выборки.
Оптимальным считается разбиение, когда индекс принимает **максимальное значение**.
- *Индекс Дуды и Харта*
1) [[Функционалы качества разбиения]]
@@ -0,0 +1,20 @@
---
status: seed
type: concept
tags:
- mephi
- math
- statistics
- cluster-analysis
created: 2026-01-18
updated: 2026-05-07
title: Наивный Байесовский Алгоритм
---
# Наивный Байесовский Алгоритм
**<u>Упрощенный алгоритм Байеса (Naive Bayes)</u>** - это алгоритм классификации, основанный на вычислении условной вероятности значений прогнозируемых атрибутов. При этом и предполагается, что входные атрибуты являются независимыми и определен хотя бы один входной атрибут.
Алгоритм основан на использовании формулы *Байеса*.
- Пусть $A_{1}, A_{2}, \dots, A_{n}$ - полная группа несовместных событий, а $B$ - некоторое условие, вероятность которого **положительна**.
- Тогда условная вероятность события $A_{i}$ при событии $B$:$$P(A_{i}|B) = \frac{P(B|A_{i})*P(A_{i})}{\Sigma_{j}P(B|A_{j})*P(A_{j})}$$
@@ -0,0 +1,23 @@
---
status: seed
type: concept
tags:
- mephi
- math
- statistics
- cluster-analysis
created: 2025-12-25
updated: 2026-05-07
title: Понятие Однородности Объектов
---
# Понятие Однородности Объектов
Понятие однородности объектов определяется правилом вычисления величины $\rho_{ij}$, характеризующей:
1) расстояние между $i-ым$ и $j-ым$ объектами $d(O_i,O_{ij})$
2) степень сходства тех же объектов $r(O_{i},O_{j})$ (процентная величина)
Свойства расстояний и степень сходства:
1) Симметрия $$d(O_{i},O_{j}) = d(O_{j},O_{i})\ и\ r(O_{i},O_{j})=r(O_{j},O_{i})$$
2) Максимальное сходство объекта с самим собой$$d(O_{i},O_{i})=0\ и\ r(O_{i},O_{i})=\max_{1\leq j \leq N}{r(O_{i},O_{j})}$$
3) Монотонное убывание степени сходства по расстоянию $$d(O_{k},O_{j}) \geq d(O_{i},O_{j}) \to r(O_{k},O_{j}) \leq r(O_{i},O_{j})$$
@@ -0,0 +1,34 @@
---
status: seed
type: concept
tags:
- mephi
- math
- statistics
- cluster-analysis
created: 2025-12-25
updated: 2026-05-07
title: Постановка Задачи Кластерного Анализа
---
# Постановка Задачи Кластерного Анализа
Необходимо разбить анализируемую совокупность объектов $O = \{O_{1}, \dots, O_{N}\}$, статистически представленную в виде таблицы:$$X_{N*k}=
\begin{pmatrix}
x_{11} & \dots & x_{1k} \\
\vdots & \ddots & \vdots \\
x_{N1} & \dots & x_{Nk}
\end{pmatrix}\ \text{или} \ \ \gamma_{N*N}= \begin{pmatrix}
\gamma_{11} & \dots & \gamma_{1N} \\
\vdots & \ddots & \vdots \\
\gamma_{N1} & \dots & \gamma_{NN}
\end{pmatrix}$$
на сравнительно небольшое число (не обязательно известное заранее) **однородных групп/классов**.
## Методы решения
- [[Агломеративные (иерархические) методы]] — объединяем объекты снизу вверх
- [[Дивизимные методы]] — делим одну группу сверху вниз
- [[Итерационная классификация. Метод K-средних (K-means)]] — итеративный метод с заранее заданным K
- [[Расстояние между объектами]] — метрики близости между объектами
- [[Расстояние между классами объектов]] — метрики близости между кластерами
- [[Критерии определения оптимального числа классов]] — как выбрать K
@@ -0,0 +1,35 @@
---
status: stable
type: concept
tags:
- mephi
- math
- statistics
- cluster-analysis
created: 2026-01-03
updated: 2026-05-07
title: Расстояние Между Классами Объектов
---
# Расстояние Между Классами Объектов
**Обозначения:**
1) $\large S_{l}$ - $l-ый$ класс
$\large i$ - порядковый номер класса
2) $\large n_{i}$ - число объектов $\large i-ого$ класса
3) $\large \overline{X}(i)$ - вектор средних арифметических $i-го$ класса
4) $\large \rho(S_{l},S_{m})$ - расстояние между $l-ым$ и $m-ым$ классами
## Расстояния
1) Принцип "ближайшего соседа" (расстояние Колмогорова при $\tau \to -\infty$)
$$p_{min}(S_{l},S_{m})=\min_{\begin{gather}O_{i}\in S_{l}\\O_{j}\in S_{m}\end{gather}}d(O_{i},O_{j})$$
2) Принцип "дальнего соседа" (расстояние Колмогорова при $\tau \to +\infty$)
$$p_{max}(S_{l},S_{m})=\max_{\begin{gather}O_{i}\in S_{l}\\O_{j}\in S_{m}\end{gather}}d(O_{i},O_{j})$$
3) Принцип "центров тяжести" или центров классов
$$p_{цт}(S_{l},S_{m})=d(\overline{X}(l),\overline{X}(m))$$
4) Принцип "средней связи" (расстояние Колмогорова при $\large \tau = 1$)
$$\large \rho_{ср}(S_{l},S_{m})=\frac{1}{n_{l}*n_{m}}\sum\limits_{O_{i} \in S_{l}}\sum\limits_{O_{j} \in S_{m}} d(O_{i}, O_{j})$$
5) Метод медианной связи
Расстояние между классом $S_{l}$ и новым классом, который получили в результате объединения двух классов $S_{m}\ и\ S_{q}$, определяется как расстояние от центра класса $S_{l}$ до середины отрезка, соединяющего центры классов $S_{m}\ и\ S_{q}$
6) Обобщенное расстояние Колмогорова - *основное расстояние классов*
$$\rho_{\tau}^{K}(S_{l},S_{m})=\sqrt[\tau]{\frac{1}{n_{l}*n_{m}}\sum\limits_{O_{i} \in S_{l}}}\sum\limits_{O_{j} \in S_{m}} d^{\tau}(O_{i},O_{j})$$
@@ -0,0 +1,43 @@
---
status: stable
type: concept
tags:
- mephi
- math
- statistics
- cluster-analysis
created: 2025-12-25
updated: 2026-05-07
title: Расстояние Между Объектами
---
# Расстояние Между Объектами
## Теория
1) Евклидово расстояние (Расстояние Минковского при $p=2$) (Теорема Пифагора)
$$d_{E}(O_{i},O_{j})=\sqrt{\sum\limits_{l=1}^{k}(x_{il}-x_{jl})^{2}}$$
2) Взвешенное Евклидово расстояние $$d_{BE}(O_{i},O_{j})=\sqrt{\sum\limits_{l=1}^{k} \omega_{l} (x_{il}-x_{jl})^{2}},$$ $\text{где}\ \omega_{l} \in (0,1) - \text{весовой коэффициент}$
3) Расстояние Минковского (общий случай для Евклидового и Хеммингово расстояние) $$d_{M}(O_{i},O_{j})=\sqrt[p]{\sum\limits_{l=1}^{k}|x_{il}-x_{jl}|^{p}}$$
4) Хеммингово (манхэттенское) расстояние (расстояние Минковского при $p=1$) $$d_{H}(O_{i},O_{j})={\sum\limits_{l=1}^{k}|x_{il}-x_{jl}|}$$
5) Расстояние Чебышева (расстояние Минковского при $p \to \infty$) $$d_{CH}(O_{i},O_{j})={\max_{1 \leq l \leq k}|x_{il}-x_{jl}|}$$
6) Обобщенное расстояние Махаланобиса $$d_{O}(O_{i},O_{j})=\sqrt{(O_{i}-O_{j})^{T}\Delta^{T}\Sigma^{-1}\Delta(O_{i}-O_{j})}$$
> $\Sigma$ - ковариационная матрица генеральной совокупности, из которой извлечена выборка.
>
> $\Delta$ - некоторая симметричная неотрицательно-определенная матрица весовых коэффициентов признаков.
7) Корреляционное расстояние
$$d_{corr}(O_{i},O_{j}) = 1 - r_{ij}$$
> $r_{ij}$ - выборочный коэффициент корреляции между объектами $O_{i}, O_{j}$, соответствующие которым строки матрицы $X$ трактуются как *выборки*.
## Примеры
Для точек: $O_{1}(3;2),\ O_{2}(-4;6)$
1) $d_{E}=\sqrt{(3 - (-4))^{2}+(2-6)^{2}}=\sqrt{49+16}=\sqrt{65}$
2) -
3) $p=3:\ d_{m}=\sqrt[3]{|3 - (-4)|^{3}+|2-6|^{3}} = \sqrt[3]{7^{3}+4^{3}}=\dots$
4) центр классов => среднее арифметическое собираем в одну точку
## Связанные заметки
- [[Метрические алгоритмы]] — те же формулы (Евклид, Манхэттен, Минковский, Махаланобис) реализованы в sklearn; ML-нота даёт практическое применение
- [[Итерационная классификация. Метод K-средних (K-means)]] — использует $\min_{1 \leq l \leq k} \rho_{il}$ для отнесения объекта к кластеру
@@ -0,0 +1,32 @@
---
status: seed
type: concept
tags:
- mephi
- math
- statistics
- cluster-analysis
created: 2026-01-18
updated: 2026-05-07
title: Функционалы Качества Разбиения
---
# Функционалы Качества Разбиения
При использовании разных методов кластерного анализа для одной выборки могут получиться разные разбиения.
Для выбора "лучшего" вводятся понятия **функционалов качества разбиения**.
1) <u>Сумма квадратов расстояний до центров классов</u>:
$Q_{1}(S)=\sum\limits_{l=1}^{p}\sum\limits_{O_{i} \in S_{i}}d^{2} (O_{i},\overline{X}(l)) \to \min$,
где $p$ - число классов,
$S_{l}$ - $l$-ый класс в классификации $S$,
$\overline{X}(l)$ - центр класса $S_{l}$.
2) <u>Сумма квадратов попарных внутриклассовых расстояний между объектами</u>:
$Q_{2}(S)=\sum\limits_{l=1}^{p} \sum\limits_{O_{i},O_{j} \in S_{l}} d^{2}(O_{i},O_{j}) \to \min$
3) <u>Суммарная внутриклассовая дисперсия</u>:
$Q_{3}(S) = \sum\limits_{l=1}^{p}\sum\limits_{j=1}^{k}S_{j}^{2}(l) \to min$,
где $S_{j}^{2}(l)$ - оценка дисперсии $j$-го признака $l$-го класса.
4) <u>Отношение внутрикластерного и межкластерного расстояний</u>:
$\frac{F_{0}}{F_{1}} \to \min$,
где $F_{0}$ - среднее внутрикластерное расстояние ($F_{0} \to \min$),
$F_{1}$ - среднее межкластерное расстояние ($F_{1} \to \max$)
@@ -0,0 +1,38 @@
---
status: seed
type: concept
tags:
- math
- mephi
- statistics
- factor-analysis
created: 2026-01-20
updated: 2026-05-07
title: Алгоритм Оценки Главных Компонент
---
# Алгоритм Оценки Главных Компонент
1) **<u>Подготовка исходных данных</u>**
- **Центрирование**:
$$x_{ij}^{*}=x_{ij}-\overline{x_{j}}$$
- **Нормирование**:
$$x_{ij}^{*}=\frac{x_{ij}-\overline{x_{j}}}{\sigma_{j}}$$
1) **<u>Вычисление выборочной матрицы</u>**
Расчет выборочной ковариационной матрицы $\hat{\Sigma}$, которая описывает структуру связей между признаками.
2) **<u>Проверка значимости корреляционной матрицы (Критерий Бартлетта)</u>**
Перед поиском компонент необходимо убедиться, что признаки вообще коррелированы между собой.
- **Гипотеза $H_{0}$**: Матрица единична $(R=E)$, т.е. признаки не коррелированы.
- **Статистика критерия**: $\chi^{2}=-[n-1-\frac{2k+5}{6}]\ln|\hat{R}|$
- Если расчетное значение больше критического, то проведение МГК считается целесообразным.
1) **<u>Расчет СЧ и СВ</u>**
2) **<u>Определение количества ГК</u>**
Из $k$ возможных компонент отбирают $m$ наиболее информативных.
- **Критерий Кайзера**: $\lambda_{s} > 1$
- **Доля дисперсии**: Суммарная дисперсия должна составлять $70-80\%$
- **Каменистая Осыпь**: Визуальный анализ графика СЧ.
1) **<u>Оценка матрицы факторных нагрузок</u>**
$$A = U^{T}\lambda^{\frac{1}{2}}$$
2) **<u>Расчет индивидуальных значений</u>**
$$\hat{Z}=X\hat{U}$$
3) **<u>Интерпретация результатов</u>**
На основе наиболее весомых нагрузок в матрице $A$ каждой ГК присваивается содержательное название.
@@ -0,0 +1,65 @@
---
status: processing
type: concept
tags:
- math
- mephi
- statistics
- factor-analysis
created: 2026-01-20
updated: 2026-05-07
title: Алгоритм Оценки Главных Факторов. Матрица Индивидуальных Значений ГФ
---
# Алгоритм Оценки Главных Факторов. Матрица Индивидуальных Значений ГФ
## Оценка ГФ
Оценка корреляционной матрицы исходных признаков:
$$x^{*}=(x_{1}^{*},\dots,x_{k}^{*})^{T} \in N(0,\Sigma_{x^{*}})\ \ \ \Sigma_{x^{*}}=R$$
$$X = \begin{pmatrix} x_{11} & \dots & x_{1n} \\ \vdots & \ddots & \vdots \\ x_{k1} & \dots & x_{kn} \end{pmatrix}$$ - матрица "свойство-объект" (центрировано-нормированная)
Оценка матрицы парных коэффициентов корреляции: $\hat{R} = \frac{1}{n}XX^{T}$
Проверка гипотезы о незначимости корреляционной матрицы (критерий Уилкса)
$$H_{0}: R=E_{k}$$
$$H_{1}: R \neq E_{k}$$
$$\chi^{2}=-(n-\frac{1}{6}(2k+5))\ln|\hat{R}| \in \chi^{2}(v)$$
$$v = \frac{k(k-1)}{2}$$
**<u>Метод оценки общности</u>**: $\hat{h}^{2}_{i}=R^{2}_{x_{i}/(\dots)}$
**<u>Критерий Лоули:</u>**
$H_{0}$: $m$ ГФ достаточно
$H_{1}:\ m$ ГФ не достаточно
$m < \frac{k-1}{2}$
$$\chi^{2}=(n-1)\ln{\frac{|AA^{T}|}{|\hat{R}|}}\in \chi^{2}(v)$$
$$v = \frac{1}{2}((k-m)^{2}-k-m)$$
**<u>Критерий Кайзера</u>**: отбор факторов $СЧ>1$
**<u>Критерий каменистой осыпи</u>**: число факторов выбирается по точке излома, после которой СЧ убывают медленно или почти линейно.
## Матрица Индивидуальных Значений ГФ
$$x_{ij}=a_{i1}f_{1j}+\dots+a_{im}f_{mj}+d_{i}v_{ij},\ \ i=\overline{1,k}, \ \ j=\overline{1,n}$$
$X = Af+Dv$
$f = \pmatrix{f_{11} & \dots & f_{1n} \\ \vdots & \ddots & \vdots \\ f_{m1} & \dots & f_{mn}}$
$v = \pmatrix{v_{11} & \dots & v_{1n} \\ \vdots \\ v_{k1} & \dots & v_{kn}}$
$f_{j} = \pmatrix{f_{1j}\\f_{2j}\\\vdots\\f_{mj}}$ - индивидуальные значения ГФ для $j$-го объекта
$x_{j}=\pmatrix{x_{1j}\\\vdots\\x_{kj}}$ - наблюдаемое значение признаков для $j$-го объекта
## Оценка Индивидуальных Значений ГФ. Метод Бартлетта
Представим модель линейной множественной регрессии:
$x_{j}=z\beta_{j}+\epsilon_{j}$ - ЛММР, $j=\overline{1,n}$
$z = \pmatrix{z_{11} & \dots & z_{1m} \\ \vdots \\ z_{k1} & \dots & z_{km}}=A$;
$\beta_{j} = \pmatrix{\beta_{1j}\\\vdots\\\beta_{mj}}=f_{j};$
$\epsilon_{j}=\pmatrix{\epsilon_{1j}\\\vdots\\\epsilon_{kj}}$
$\Sigma_{\epsilon_{j}}=M(\epsilon_{j}*\epsilon_{j}^{T})=D^{2}$
$\hat{\beta_{j}}=(z^{T}(D^{2})^{-1}z)^{-1}(z^{T}(D^{2})^{-1}x_{j});$
$b_{омнк} = (X^{T}\Sigma^{-1}X)^{-1}(X^{T}\Sigma^{-1}Y)$
$\hat{f}_{j}=(A^{T}(D^{2})^{-1}A)^{-1}(A^{T}(D^{2})^{-1}X_{j})$
@@ -0,0 +1,59 @@
---
status: seed
type: concept
tags:
- mephi
- math
- statistics
- factor-analysis
created: 2026-01-21
updated: 2026-05-07
title: Вращение Факторов
---
# Вращение Факторов
## Задача Вращения Общих Факторов
Построение простой структуры, т.е. такого расположения признаков, при котором они находятся вблизи от координатных осей или в непосредственной близости к началу координат.
Вращение не изменяет общностей и суммарной объясненной дисперсии, а служит исключительно для повышения интерпретации факторов.
## Пространство Общих Факторов
**<u>Пространство общих факторов</u>** - пространство, координатами которого являются нагрузки признака на общие факторы.
$d_{l}^{оф}=\sqrt{\sum\limits_{r=1}^{m}a_{ir}^{\alpha}}=h_{i}$ - длина вектора, соответствующего $i$-му, признаку в пространстве общих факторов.
$\rho(x_{i}, x_{l})^{оф}=\cos(\phi_{il}^{оф})=\frac{1}{h_{i}h_{l}}\sum\limits_{r=1}^{m}a_{ir}a_{lr}$ ![[Pasted image 20260121124001.png|300]]
## Полное Факторное Пространство
Включает общие и характерные факторы
$d_{i}^{П}=\sqrt{\sum\limits_{r=1}^{m}a_{ir}^{2}+d_{i}^{2}}=1$ - длина вектора, соответствующего $i$-ому признаку, в полном факторном пространстве ($=1$ т.к. это дисперсия, а признаки были нормированы)
$\rho(x_{i},x_{l})^{П}=\cos(\phi_{il}^{П})=\sum\limits_{r=1}^{m}a_{ir}a_{lr}$
## Вращение Факторов
Осуществляется умножением матрицы факторных нагрузок $A$ на матрицу преобразования $T$: $A^{*}=AT$
### Ортогональное
- все факторы поворачиваются на **один и тот же** угол
- факторы остаются некоррелированными
Матрица $T$ - ортогональна: $T^{T}T=E$
<u>Примеры</u>: варимакс, квартимакс, биквартимакс, эквимакс
![[Pasted image 20260121124452.png|300]]
$\vec{e_{1}}=\pmatrix{1\\0}$, $\vec(e)_{2}=\pmatrix{0\\1}$ - единичные вектора в исходной системе координат.
$\vec{e}_{1}^{'}=\pmatrix{\cos{\alpha}\\-\sin{\alpha}}$, $\vec{e}_{2}^{'}=\pmatrix{\sin{\alpha}\\\cos{\alpha}}$
$T = \pmatrix{\cos{\alpha} & \sin{\alpha}\\-\sin{\alpha} & \cos{\alpha}}$
### Косоугольное
- факторы могут поворачиваться на **разные** углы
- между факторами возникают корреляции
Используется неортогональные матрицы преобразования
<u>Примеры</u>: облимакс, квартимин, облимин
### Варимакс
**Цель**: максимизировать дисперсии квадратов факторных нагрузок **по переменным для каждого фактора**, что приводит к простой структуре.
Чаще используется **варимакс нормализованных ф.н.**
$$V_{r}=\frac{k\sum\limits_{i=1}^{k}a_{ir}^{4}-(\sum\limits_{i=1}^{k}a_{ir}^{2})^{2}}{k^{2}} \to \max,\ r=\overline{1,m}$$
### Квартимакс
**Цель**: максимизировать дисперсию квадратов нагрузок по **факторам для каждой переменной**, т.е. надо *связать каждый признак с минимальным числом факторов*.
$$q = \sum\limits_{i=1}^{k}\frac{\sum\limits_{r=1}^{m}a_{ir}^{4}-(\sum\limits_{r=1}^{m}a_{ir}^{2})^{2}}{m^{2}} \to \max$$
работает по строкам матрицы нагрузок.
Стремление к тому, чтобы каждый признак имел одну большую нагрузку, и минимум остальных.
@@ -0,0 +1,21 @@
---
status: seed
type: concept
tags:
- math
- mephi
- statistics
- factor-analysis
created: 2026-01-20
updated: 2026-05-07
title: Матрица Индивидуальных Значений
---
# Матрица Индивидуальных Значений
## Определение
Матрица индивидуальных значений $(Z)$ - матрица размера $N * m$, где $m$ - число выделенных ГК, элементами которой являются значения ГК для каждого объекта выборки.
$$\hat{Z}=X^{*}*\hat{U}$$
## Свойства Значений В Матрице
- **Мат. ожидание**: среднее значение по каждому столбцу равно нулю: $\overline{z_{j}}=0$
- **Дисперсия**: дисперсия равна собственному числу $D(Z_{j})=\lambda_{j}$
- **Некоррелированность**: любые два столбца имеют нулевую ковариацию $cov(Z_{j},Z_{l})=0$
@@ -0,0 +1,40 @@
---
status: seed
type: concept
tags:
- math
- statistics
- factor-analysis
created: 2026-01-20
updated: 2026-05-07
title: Матрица Нагрузок И Её Свойства
---
# Матрица Нагрузок И Её Свойства
## Определение
Матрица нагрузок $A$ - это матрица, эл-тами которой являются коэффициенты корреляции между исходными признаками $X_{i}$ и ГК $Z_{j}$
Элемент матрицы $a_{ij}$ показывается тесноту линейной связи $i$-го признака с $j$-ой компонентой.
В случае использования центрированно-нормированных признаков, расчет ведется по формуле: $a_{ij}=u_{ij}\sqrt{\lambda_{j}}$, где $u_{ij}$ - $i$-ая координата $j$-го СВ, а $\lambda_j$ - $j$-ое СЧ ковариационной матрицы.
## Свойства Матрицы Нагрузок
- **<u>Свойство строк (Общность)</u>**:
Сумма квадратов нагрузок в $i$-ой строке по всем $k$ компонентам равна дисперсии соответствующего исходного признака. Для нормированных признаков эта сумма равна 1:
$$\sum\limits_{j=1}^{k}a_{ij}^{2}=D(X_{i})=1$$
- **<u>Свойство столбцов (Вклад компоненты)</u>**:
Сумма квадратов нагрузок в $j$-ом столбце равна СЧ $\lambda_{j}$, которое является дисперсией $j$-й ГК:
$$\sum\limits_{i=1}^{k}a_{ij}^{2}=\lambda_{i}=D(Z_{i})$$
- **<u>Ортогональность</u>**:
Сумма произведений нагрузок любых двух различных столбцов равна нулю, что подтверждает некоррелированность ГК:
$$\sum\limits_{i=1}^{k}a_{ij}a_{il}=0,\ i \neq l$$
- **<u>Воспроизведение корреляций</u>**:
Сумма произведений нагрузок $i$-го и $l$-го признаков по всем компонентам равна коэффициенту корреляции между этими признаками ([[Фундаментальная теорема факторного анализа]]):
$$\sum\limits_{j=1}^{k}a_{ij}a_{li}=r(X_{i}mX_{l})$$
## Интерпретация
- **<u>Вес нагрузки</u>**:
Чем выше абсолютное значение $|a_{ij}|$, тем сильнее данный признак определяет содержание компоненты.
- **<u>Знак нагрузки</u>**:
Указывает направления связи (прямая или обратная)
- **<u>Цель вращения</u>**:
Если нагрузки распределены "размазано" (много средних значений), то применяется вращение, чтобы получить **простую структуру**, где нагрузки близки к 1 или 0.
@@ -0,0 +1,36 @@
---
status: stable
type: concept
tags:
- math
- mephi
- statistics
- factor-analysis
created: 2026-01-20
updated: 2026-05-07
title: Метод Главных Факторов. Методы Оценки Общности
---
# Метод Главных Факторов. Методы Оценки Общности
Фундаментальная теорема факторного анализа:
$R = R_{n}+D^{2}$
Посчитав матрицу $D$ равной нулю, для оценки матрицы $A$ воспользуемся моделью ГК.
Под МГФ понимают способ расчет, принятый в методе ГК, но примененный к $R_{h}$.
Таким образом, нужна оценка общностей $\rho_{x_{i}/(\dots)}^{2} \leq h_{i}^{2} \leq r_{i}^{2}$
1) $$\hat{h_{i}^{2}}=R^{2}_{x_{i}/(\dots)}=1-\frac{|\hat{R}|}{\hat{R_{ii}}}$$ - метод множественной корреляции
2) $$\hat{h^{2}_{i}}=\max{|r_{ie}|};\ \ l=\overline{1,k}\ \ l \neq i$$ - max. корреляция
3) $$\hat{h^{2}_{i}}=\frac{1}{k-1}\sum\limits^{k}_{\begin{align} l=1 \\ l \neq i \end{align}}|r_{il}|$$ - средняя корреляция
4) $$\hat{h}^{2}_{i}=\frac{|r_{il}|*|r_{is}|}{|r_{ls}|}$$ - метод парных корреляций
5) $$\hat{h}_{i}^{2}=\frac{(\sum\limits_{l=1}^{k}r_{il})^{2}}{\sum\limits_{l=1}^{k}\sum\limits_{s=1}^{k}r_{ls}}$$ - метод суммы корреляций
---
Методы оценки общностей нужны, чтобы понять, какую часть дисперсии каждого признака можно объяснить общими факторами.
**<u>Оценка общности</u>** - множественные коэффициенты корреляции одной переменной на другие, т.е. строим уравнение регрессии и берем соответственные коэффициенты детерминации.
**<u>Метод оценки общностей</u>**: явно вычислить множественную корреляцию между признаками, воспользовавшись уравнением регрессии, т.е. общности взять, как множественный коэффициент корреляции.
**<u>Требование</u>**: каждая следующая ось ориентированная по направлению $max$ дисперсии в пространстве, ортогональном предыдущей ГК.
---
@@ -0,0 +1,24 @@
---
status: seed
type: concept
tags:
- math
- mephi
- statistics
- factor-analysis
created: 2026-01-20
updated: 2026-05-07
title: Определение И Процедура Построения Первой И Последующих Компонент
---
# Определение И Процедура Построения Первой И Последующих Компонент
## Определения Главных Компонент (ГК)
- <u>Первая ГК $(Z_{1})$</u>: Это такая линейная комбинация исходных признаков $X=(X_{1},X_{2},\dots, X_{k})^{T}$, которая среди всех прочих комбинаций обладает наибольшей дисперсией.
- <u>$s$-ая ГК ($$$Z_{s}$)</u>: Это линейная комбинация исходных признаков, которая не коррелирована с $(s-1)$ предыдущими главными компонентами и среди всех прочих лин. комбинаций обладает наибольшей дисперсией.
## Оптимизационная Задача Для Построения 1 ГК
Математически построение первой ГК сводится к поиску вектора весовых коэффициентов $U = (u_{11},u_{12},\dots,u_{1k})^{T}$.
- **Целевая функция**:
Максимизация дисперсии компоненты $D(Z_{1})=U_{1}^{T}\Sigma_{X}U_{1} \to \max$, $\Sigma_{X}$ - ковариационная матрица исх. признаков.
- **Ограничение**: Вектор коэффициентов должен быть нормирован: $U_{1}^{T}U_{1}=1$
@@ -0,0 +1,34 @@
---
status: stable
type: concept
tags:
- mephi
- math
- statistics
- factor-analysis
created: 2026-01-20
updated: 2026-05-07
title: Основные Числовые Характеристики Главных Компонент
---
# Основные Числовые Характеристики Главных Компонент
1) **<u>Математическое ожидание</u>**
Если исх. признаки $X_{j}$ центрированы (т.е. $E[X_{j}]=0$), то математическое ожидание каждой ГК также равно нулю:
$$E[Z_{s}]=0$$
2) **<u>Дисперсия</u>**
Дисперсия каждой ГК равна соотв. СЧ $\lambda_{s}$ ковариационной (корреляционной) матрицы исх. признаков:
$$D(Z_{s})=\lambda_{s}$$
3) **<u>Ковариация</u>**
ГК являются некоррелированными между собой (взаимно ортогональны).
Ковариация между любыми компонентами равна нулю:
$$cov(Z_{s},Z_{l})=0,\ s \neq l$$
4) **<u>Суммарная дисперсия</u>**
Сумма дисперсий всех главных компонент равна сумме дисперсий исх. признаков (следу ковар. матрицы)
$$\sum\limits_{s=1}^{k}D(Z_{s})=\sum\limits_{j=1}^{k}D(X_{j})=\sum\limits_{s=1}^{k}\lambda_{s}$$
5) **<u>Показатель информативности</u>**
Для оценки того, какую часть информации описывает конкретная компонента (или набор из $m$ первых компонент), используется:
- Удельный вес дисперсии: $\large d_{s}=\frac{\lambda_{s}}{\Sigma \lambda_{s}}$
- Кумулятивная доля дисперсии: $\large D_{m}=\frac{\sum_{s=1}^{m} \lambda_{s}}{\sum_{j=1}^{k}\lambda_{j}}$
1) **<u>Корреляция с исх. признаками (факторные нагрузки)</u>**
Коэфф. корреляции между исх. признаком $X_{i}$ и ГК $Z_{j}$ рассчитываются через элементы СВ $u_{ij}$ и СЧ:
$$r(X_{i},Z_{j})=\frac{u_{ij}\sqrt{\lambda_{j}}}{\sigma_{i}}$$
@@ -0,0 +1,35 @@
---
status: seed
type: concept
tags:
- math
- mephi
- statistics
- factor-analysis
created: 2026-01-18
updated: 2026-05-07
title: Постановка Задачи Снижения Размерности Признакового Пространства
---
# Постановка Задачи Снижения Размерности Признакового Пространства
Задача снижения размерности признакового пространства заключается в определении такого набора признаков $Z$, найденного в классе допустимых преобразований исходных показателей $F(x)$, чтобы максимизировать или минимизировать критерий информативности:$$Im(Z(x))=extr_{Z \in F(x)}\{Im(Z(x))\}$$
---
Исходные система признаков: $x = (x_{1},x_{2},\dots,x_{k})^{T}$
Признаки центрированы: $M_{x_{j}}=0,\ \forall j=\overline{1,k}$
Новая система признаков: $z=(z_{1},z_{2},\dots,z_{m})^{T},\ m << k$
Критерий информативности: $Im(Z(x)) = extr_{z \in F(x)}\{Im(Z(x))\}$
$$Im(Z(x)) = \frac{D_{z_{1}}+\dots+D_{z_{m}}}{D_{x_{1}}+\dots+D_{x_{k}}}$$ - отношение суммарной дисперсии новой системы признаков к суммарной дисперсии исходной системы.
> [!warning] Критерий
> Необходимо отобрать столько признаков, чтобы суммарная вариация (дисперсия) исходных признаков в больше степени объяснялась дисперсией вновь введенных признаков.
**<u>Замечание</u>**:
1) В случае нормирования признаков, $\text{ковариационная матрица признаков}\ x^{*}==\text{корелляционной матрице исх.признаков}$ $\Sigma_{x^{*}}=R_{x}$
2) Если признаки имеют разный масштаб, то необходимо провести их нормирование, т.е. перейти $$X_{j}^{*}=\frac{X_{j}}{\sqrt{DX_{j}}},\ DX_{j}^{*}=1,\ \forall j = \overline{1,k}$$
## Связанные заметки
- [[Линейные модели]] — снижение размерности (PCA) используется как предобработка перед линейными моделями в ML; матрица X в обоих случаях одинакова
- [[Метрические алгоритмы]] — kNN страдает от проклятия размерности; снижение размерности напрямую улучшает качество kNN
@@ -0,0 +1,31 @@
---
status: stable
type: concept
tags:
- mephi
- math
- statistics
- factor-analysis
created: 2026-01-20
updated: 2026-05-07
title: Процедура Построения Первой И Остальных Главных Компонент
---
# Процедура Построения Первой И Остальных Главных Компонент
## Процедура Построения Первой ГК
Используется метод множителей Лагранжа:
1) **Ф-я Лагранжа**:
$\phi(U,\lambda)=U_{1}^{T}\Sigma_{X}U_{1}-\lambda(U_{1}^{T}U_{1}-1)\to\max$.
2) **Нахождение производных**:
Дифференцирование по $U$ приводит к: $(\Sigma_{X}-\lambda E)U_{1}=0$
3) **Составление характеристического уравнения**:
Чтобы система имела ненулевое решение, определитель матрицы должен быть равен нулю.
4) **Поиск собственных чисел**:
Решение дает $k$ вещественных неотрицательных корней $\lambda_{1},\lambda_{2},\dots,\lambda_{k}$, которые являются Собственными Числами матрицы $\Sigma_{X}$
5) **Выбор максимума**:
Т.к. дисперсия первой компоненты $D(Z_{1})=\lambda_{1}$, то в качестве первой ГК выбирается решение, соответствующее наибольшему Собственному Числу.
## Построение Последующих Компонент
- Каждая следующая компонента $Z_{s}$ соответствует следующему по величене СЧ $\lambda_{s}$ из упорядоченного по убыванию ряда СЧ.
- Коэффициенты $U_{s}$ для каждой компоненты являются Собственными Векторами матрицы $\Sigma_{X}$, соответствующими найденным числам $\lambda_{s}$
- Суммарная дисперсия всех ГК совпадает с суммарной дисперсией исх. признаков.
@@ -0,0 +1,32 @@
---
status: stable
type: concept
tags:
- math
- mephi
- statistics
- factor-analysis
created: 2026-01-20
updated: 2026-05-07
title: Разложение Дисперсии В Факторном Анализе. Разложение Характерности В Факторном Анализе
---
# Разложение Дисперсии В Факторном Анализе. Разложение Характерности В Факторном Анализе
## Разложение Дисперсии Признака
В модели ФА каждый признак $X_{i}$ представляется как:
$$X_{i}=\sum\limits_{j=1}^{m}a_{ij}F_{j}+d_{i}U_{i}$$
Поскольку общие факторы $F_{j}$ и характерный фактор $U_{i}$ по предположению модели являются некоррелированными и имеют единичные дисперсии, общая дисперсия $D(X_{i})$ раскладывается на две основным части:$$1 = \sum\limits_{j=1}^{m}a_{ij}^{2}+d_{i}^{2}$$ или $$1 = h_{i}^{2}+d_{i}^{2}$$
Где:
- $h_{i}^{2}$ - **<u>общность</u>**: сумма квадратов факторных нагрузок признака по всем общим факторам. Она показывает долю дисперсии $i$-го признака, которая объясняется влиянием общих для всей совокупности факторов.
- $d_{i}^{2}$ - **<u>характерность</u>**: доля дисперсии признака, которая не может быть объяснена через общие факторы. Она отражает индивидуальность конкретной переменной.
## Разложение Характерности
Сама по себе характерность не является однородной. $$d_{i}^{2}=s_{i}^{2}+e_{i}^{2}$$
Где:
- $s_{i}^{2}$ - специфичность.
Это часть дисперсии, которая обусловлена особенностями, присущими именно данному признаку.
- $e_{i}^{2}$ - ошибка
Случайная составляющая дисперсии, связанная с погрешностями измерения, неточностью сбора стат. данных.
> [!tip] Замечание
> Сумма общности и специфичности $(h_{i}^{2} + s_{i}^{2})$ называется **надежностью** признака. Чем выше надежность, тем меньше в данных случайного шума.
@@ -0,0 +1,64 @@
---
status: stable
type: concept
tags:
- math
- mephi
- statistics
- factor-analysis
- linear-models
created: 2026-01-20
updated: 2026-05-07
title: Требования К Факторам. Линейная Модель Факторного Анализа
---
# Требования К Факторам. Линейная Модель Факторного Анализа
## Требования К Факторам
Общие и характерные факторы центрировано-нормированные:
$$\begin{align} M(f_{r}) = 0 \\ M(v_{i})=0 \\ \\ D(f_{r})=1 \\ D(v_{i})=1\end{align}$$ Естественные требования:
$M(v_{i}*v_{s})=\rho(v_{i},v_{s})=0,\ \ \ \forall i,s=\overline{1...k}\ \ \ i \neq k$
$M(f_{r}*v_{i})=\rho(f_{r},v_{i})=0\ \ \ r=\overline{1 \dots m}\ \ \ i=\overline{1 \dots k}$
## Линейная Модель
$$x_{ij}=\sum\limits_{r=1}^{m}a_{jr}f_{ir}+d_{j}u_{ij}$$
Где:
- $x_{ij}$ - **значение** $j$-го признака для $i$-го объекта. ($i=1,\dots,N;\ j=1,\dots,k$)
- $a_{ir}$ - **факторная нагрузка** $j$-го признака по $r$-ому **общему** фактору. Показывает степень влияния фактора на признак.
- $f_{ir}$ - **индивидуальное значение (score)** $r$-го общего фактора для $i$-го объекта. Насколько сильно данный фактор проявлен у конкретного объекта.
- $u_{ij}$ - значение **характерного** фактора для $i$-го объекта по $j$-му признаку.
- $d_{j}$ - **нагрузка** характерного фактора.
## Матричная Форма
$$A_{k*m} = \begin{pmatrix}
a_{11} & a_{12} & \dots & a_{1m} \\
a_{21} & a_{22} & \dots & a_{2m} \\
\vdots & \vdots & \ddots & \vdots \\
a_{k1} & a_{k2} & \dots & a_{km}
\end{pmatrix}$$
- матрица факторных нагрузок (весовых коэффициентов при общих факторах)
$$D_{k*k} = \begin{pmatrix}
d_{1} & 0 & \dots & 0 \\
0 & d_{2} & \dots & 0 \\
\vdots & \vdots & \ddots & \vdots \\
0 & 0 & \dots & d_{k}
\end{pmatrix}$$
- матрица характерностей (матрица весовых коэффициентов при характерных факторах)
$$M_{k*(m+k)} = (A:D)$$
- матрица весовых коэффициентов при факторах
$$f_{(m+k) * n}^{*}= \begin{pmatrix} f \\ v \end{pmatrix}$$
- вектор общих и характерных факторов
$$x = Af + Dv = Mf^{*}$$
- модель ФА в матричной форме
$$f_{m*n} = \begin{pmatrix}
f_{11} & \dots & f_{1n} \\
\vdots & \ddots & \vdots \\
f_{m1} & \dots & f_{mn}
\end{pmatrix}$$
- матрица индивидуальных значений общих факторов
$$v_{k*n} = \begin{pmatrix}
v_{11} & \dots & v_{1n} \\
\vdots & \ddots & \vdots \\
v_{m1} & \dots & v_{kn}
\end{pmatrix}$$
- матрица индивидуальных значений характерных факторов
@@ -0,0 +1,25 @@
---
status: seed
type: concept
tags:
- math
- statistics
- factor-analysis
created: 2026-02-13
updated: 2026-05-07
title: ФА - Вращение
---
---
type: concept
status: stable
tags:
- math
- ml
- mephi
---
# ФА - Вращение
Вращение в Факторном анализе используется для улучшения интепретируемости общих факторов.
@@ -0,0 +1,59 @@
---
status: stable
type: concept
tags:
- math
- ml
- mephi
- statistics
- factor-analysis
created: 2026-02-13
updated: 2026-05-07
title: ФА - Модель, Цель, Сущность
---
# ФА - Модель, Цель, Сущность
**Факторы**  - гипотетические (латентные), непосредственно не измеряемые переменные, которые в той или иной мере связаны с измеряемыми характеристиками (исходными признаками). Основной идеей ФА выступает предположение, что структура связей между признаками может быть объяснена тем, что эти признаки зависят от **меньшего**  количества другие, **общих** факторов.
Что позволяет снизить размерность признакового пространства от количества исходных признаков, до меньшего количества общих факторов.
**Цель:** найти такие факторы или такую матрицу $R_h$, чтобы минимизировать $D^2$.
## Линейная Модель ФА
Каждый исходный признак ($x_{j}$), который, является **центрированно-нормированным**, представляется в виде линейной комбинации:
- $m$ - общих факторов
- **одного** характерного фактора - $v_i$
Модель описывается уравнением: $x_ij = a_{i1}f_{1j}+a_{i2}f_{2j}+\dots+a_{im}f_mj+d_iv_{ij}$
$f_{rj}$ - значение $r$-го общего фактора для $j$-го объекта
$v_{ij}$ - значение $i$-го характерного фактора для $j$-го объекта
$x_{ij}$ - значение $i$-го исходного признака на $j$-ом объекте
**Центрировано-нормированные признаки**
- **Центрированность** означает, что мат.ожидание каждого признака равна нулю ($M(x_i) = 0$)
- **Нормированность** означает, что дисперсия каждого признака равна единице ($D(x_i) = 1$) 
## Дисперсии
В отличии от Метода Главных Компонент (МГК), Факторный Анализ предполагает, что $m$ общими факторами _нельзя_ полностью объяснить вариацию исходных признаков. Дисперсия исходного признака $x_i$ раскладывается на две компоненты:
1. Общность - ($h_i^2$): доля дисперсии $i$-ого признака, объясняемая $m$ общими факторами: $h_i^2 = \sum_{r=1}^{m} a_{ir}^{2}$
2. Характерность - ($d_i^2$): вклад в дисперсию $i$-го признака, характерного фактора $v_i$ (который нельзя объяснить _общими_ факторами)
Тогда, для центрировано-нормированных признаков, дисперсия которых равна **единице** справедливо: $h_i^2 + d_i^2 = 1$
## Фундаментальная Теорема ФА
Выражение, позволяющее воспроизвести корреляционную матрицу исходных признаков $R$ через матрицу факторного отображения $A$ и матрицу характерностей $D^2$:
$R = AA^{T} + D^2$,
где $D^2$ - диагональная матрица с характерностями на главной диагонали.
## Связанные заметки
- [[Факторный анализ]]
@@ -0,0 +1,29 @@
---
status: stable
type: concept
tags:
- math
- mephi
- statistics
- factor-analysis
created: 2026-01-20
updated: 2026-05-07
title: Факторное Отображение. Факторная Структура
---
# Факторное Отображение. Факторная Структура
## Факторное Отображение
**<u>Матрица факторного отображения</u>** - это матрица коэффициентов $A = {a_{ij}}$ в уравнениях лин. модели ФА:$$X_{i}=a_{i1}F_{1}+\dots+a_{im}F_{m}+d_{i}U_{i}$$
- **Сущность**: Элементы этой матрицы ($a_{ij}$) называются **факторными нагрузками**. Они показывают вклад каждого фактора в формирование значения конкретного признака.
- **Геометрический смысл**: Координаты вектора исходных признаков в базисе общих факторов.
- **Применение**: Используется для понимания того, как факторы "строят" каждый признак.
## Факторная Структура
**<u>Матрица факторной структуры</u>** - это матрица, элементами которой являются **коэффициенты корреляции** между исходными признаками $(X_{i})$ и общими факторами $(F_{j})$.
- **Сущность**: Показывает чистую статистическую связь между признаком и фактором.
- **Применение**: Используется для содержательной интерпретации факторов. Чем выше корреляция признака с фактором, тем сильнее этот признак определяет смысл фактора.
> [!info] Связь структуры и отображения
> Матрицы *тождественно равны*, если факторы некоррелированы (ортогональны). Если было проведено косоугольное врачщение, то матрицы различаются.
> **Отображение** показывает "чистый" вклад фактора в признак.
> **Структура** - полную корреляцию, включая и косвенное влияние через другие факторы.
@@ -0,0 +1,45 @@
---
status: seed
type: concept
tags:
- math
- mephi
- statistics
- factor-analysis
created: 2026-01-20
updated: 2026-05-07
title: Факторный Анализ. Цели И Сущность. Постановка Задачи. Отличие От Анализа Главных Компонент
---
# Факторный Анализ. Цели И Сущность. Постановка Задачи. Отличие От Анализа Главных Компонент
## Цели И Сущность
**<u>Факторный анализ</u>** - совокупность методов, направленных на выявление скрытых (латентных) переменных, называемых **факторами**, которые объясняют связи между наблюдаемыми признаками.
- **<u>Сущность</u>** - предполагается, что корреляция между большим числом измеряемых характеристик обусловлена влиянием небольшого числа ненаблюдаемых факторов.
- **Цели**:
- Сокращение размерности (переход к меньшему кол-ву признаков без существенной потери информации)
- Выявление структуры данных (определения скрытых взаимосвязей и группировка признаков)
- Интерпретация (присвоение выявленным факторам содержательного смысла)
## Постановка Задачи
В ФА каждый исходный признак $X_{i}$ представляется в виде линейной комбинации $m$ **общих** **факторов** и одного **характерного** (специфического) фактора.
$$X_{i}=a_{i1}F_{1}+a_{i2}F_{2}+\dots+a_{im}F_{m}+d_{i}U_{i}$$
Где:
1) $X_{i}$ - $i$-ый исходный признак ($i=1,\dots,k$)
2) $F_{j}$ - $j$-ый исходный фактор ($j=1,\dots,m$, причем, $m < k$)
Эти факторы влияют на все или несколько признаков.
3) $a_{ij}$ - **факторная нагрузка**. (коэффициент корреляции между $i$-ым признаком и $j$-ым фактором)
4) $U_{i}$ - характерный фактор, влияющий только на признак $X_{i}$ (ошибка измерения или уникальные свойства)
5) $d_{i}$ - нагрузка характерного фактора.
## Отличия ФА От МГК
| Характеристика | МГК | ФА |
| --------------------- | ------------------------------------------------------- | --------------------------------------------------------------------------------------------------- |
| Логика модели | Компоненты - это линейные комбинации признаков | Признаки - это лин. комбинации факторов |
| Цель | Максимизация объясненной общей дисперсии всех признаков | Объяснение **ковариации** между признаками |
| Структура дисперсии | Вся дисперсия признака считается полезной | Дисперсия делится на **общность** (объясняемая общими факторами) и **характерность** (уникальность) |
| Диагональ матрицы | Полная корреляционная матрица (на диагонали единицы) | Редуцированная матрица (на диагонали - оценки общностей) |
| Количество переменных | Кол-во компонент может быть равно количеству признаков | Количество факторов всегда строго меньше количества признаков |
| Метод | Дедукция (от признаков к сумме) | Индукция (от скрытых причин к внешним проявлениям) |
@@ -0,0 +1,38 @@
---
status: stable
type: concept
tags:
- math
- ml
- mephi
- statistics
- factor-analysis
created: 2026-02-13
updated: 2026-05-07
title: Факторный Анализ
---
# Факторный Анализ
Факторный анализ (в широком смысле) представляет собой **совокупность моделей и методов**, ориентированных на **выявление, конструирование и анализ внутренних (скрытых, латентных) факторов** по информации об их "внешних" проявлениях.
%% Begin Waypoint %%
- [[Алгоритм оценки главных компонент]]
- [[Алгоритм оценки главных факторов. Матрица индивидуальных значений ГФ]]
- [[Вращение факторов]]
- [[Матрица индивидуальных значений]]
- [[Матрица нагрузок и её свойства]]
- [[Метод главных факторов. Методы оценки общности]]
- [[Определение первой и последующих компонент]]
- [[Основные числовые характеристики главных компонент]]
- [[Постановка задачи снижения размерности признакового пространства]]
- [[Процедура построения первой и остальных главных компонент]]
- [[Разложение дисперсии в факторном анализе. Разложение характерности в факторном анализе]]
- [[Требования к факторам. Линейная модель факторного анализа]]
- [[ФА - вращение]]
- [[ФА - модель, цель, сущность]]
- [[Факторное отображение. Факторная структура]]
- [[Факторный анализ. Цели и сущность. Постановка задачи. Отличие от анализа главных компонент]]
- [[Фундаментальная теорема факторного анализа]]
- [[Этапы ФА. Выделение факторов]]
%% End Waypoint %%
@@ -0,0 +1,26 @@
---
status: stable
type: concept
tags:
- math
- mephi
- statistics
- factor-analysis
created: 2026-01-20
updated: 2026-05-07
title: Фундаментальная Теорема Факторного Анализа
---
# Фундаментальная Теорема Факторного Анализа
## Суть
Корреляционная матрица исходных признаков может быть **воспроизведена** через матрицу факторного отображения (матрицу нагрузок). Это значит, что все взаимосвязи между переменными полностью объясняются влиянием общих факторов.
![[Pasted image 20260120213355.png]]
## Формула
$$R = A*A^{T} + D^{2}$$
$D^{2}$ - диагональная матрица с характерностями на главной диагонали.
## Редуцированная Корреляционная Матрица
$$R_{h}=A*A^{T}$$
$$R = R_{h}+D^{2}$$
@@ -0,0 +1,45 @@
---
status: seed
type: concept
tags:
- math
- mephi
- statistics
- factor-analysis
created: 2026-01-20
updated: 2026-05-07
title: Этапы ФА. Выделение Факторов
---
# Этапы ФА. Выделение Факторов
## Этапы Факторного Анализа
![[Pasted image 20260120213958.png|600]]
1) Стандартизация данных
2) По $x$ вычисляем корреляционная матрица $R$.
3) Проверка гипотезы о незначимости $R_{x}$
4) Оценка общностей
5) Выделение числа факторов (Критерий Кайзера, Лоули, график "Каменистой осыпи")
6) Нахождение матрицы факторных нагрузок $A$ из $R=A*A^{T}$
7) Вращение факторов (матрицы $A$) для получения наилучшей интерпретации
8) Матрица индивидуальных значений $(F:U)$ и оценка значений факторов
## Выделение Факторов
Установление числа факторов и направления осей координат, соответствующих общим факторам.
С вычислительной точки зрения: проблема факторов означает определение ранга матрицы $A$ и оценивание её элементов:
1) Метод Главных Факторов
2) Метод Максимального Правдоподобия
---
**<u>Матричное уравнение</u>** $R_{h}=AA^{T}$ имеет множество решений: любое ортогональное преобразование $B$, переводящее $A$ в $G$, т.е. $G=AB$, ему удовлетворяет:
$$\implies A=GB^{T} \implies [B^{-1}=B^{T}] \implies R_{h}=GB^{T}(GB^{T})^{T} =$$ $$= GB^{T}BG^{T}=GEG^{T}=GG^{T}$$
**<u>Требование</u>**: каждая следующая ось ориентированная по направлению $max$ дисперсии в пространстве, ортогональном предыдущей ГК.
Матрица весовых коэффициентов составлена из СВ. корреляционной матрицы $R$.
Матрица весовых коэффициентов составлена из СВ корреляционной матрицы $R$:
$R_{h}U=U\lambda | * U^{-1}$ ($\lambda$ - матрица на диагоналях СЗ корреляционной матрицы)
$R_{h}UU^{-1}=U\lambda U^{1}$
$R_{h}=U\lambda U^{-1}=U\lambda U^{T} = U\lambda^\frac{1}{2}\lambda^{1/2}U^{T}=AA^{T}$, где $A=U\lambda^{1/2}$
$A$ получаем, применяя МГК к $R_{n}$, и $A$ будет матрицей факторного отображения.
@@ -0,0 +1,35 @@
---
status: seed
type: concept
tags:
- math
- fuzzy-sets
created: 2025-12-17
updated: 2026-05-07
title: Доказательство законов Де Моргана
---
# Доказательство законов Де Моргана
## $\overline{A \cup B} = \overline{A} \cap \overline{B}$
$$1 - \mu_{A \cup B}(u)=1 - \max (\mu_{A}(u);\ \mu_{B}(u))$$
$$\overline{A} \cap \overline{B} = \min(1-\mu_{A}(u);\ 1-\mu_{B}(u))$$
Предположим, что $\mu_{B}(u) > \mu_{A}(u)$, тогда $1-\mu_{B}(u)=1-\mu_{B}(u)$
## $\overline{A \cap B} = \overline{A} \cup \overline{B}$
$$1-\mu_{A \cap B}=1 -min(\mu_{A}(u);\ \mu_{B}(u))$$
$$\overline{A} \cup \overline{B} = max(1 - \mu_{A}(u);\ 1-\mu_{B}(u))$$
Пусть $\mu_{B}(u)>\mu_{A}(u)$, тогда $1-\mu_{A}(u)=1-\mu_{A}(u)$
## $\overline{A * B} = \overline{A} + \overline{B}$
$$(\mu_{\overline{A}}(u) + \mu_{\overline{B}}(u) - \mu_{\overline{A}}(u)\mu_{\overline{B}}(u)) = $$
$$= 1-\mu_{A}(u) + 1 - \mu_{B}(u) - 1 + \mu_{A}(u) + \mu_{B}(u)-\mu_{A}(u)\mu_{B}(u)=$$
$$= 1 - \mu_{A}(u) \mu_{B}(u)$$
## $\overline{A + B} = \overline{A} * \overline{B}$
$$(1-\mu_{A}(u))*(1-\mu_{B}(u)) = 1-\mu_{A}(u)-\mu_{B}(u)+\mu_{A}(u)\mu_{B}(u) = $$
$$1 - (\mu_{A}(u)+\mu_{B}(u)-\mu_{A}(u)\mu_{B}(u))$$
@@ -0,0 +1,15 @@
---
status: seed
type: concept
tags:
- math
- mephi
- fuzzy-sets
created: 2025-12-17
updated: 2026-05-07
title: Коэффициенты функций принадлежности
---
# Коэффициенты функций принадлежности
![[Pasted image 20260306092019.png]]
@@ -0,0 +1,43 @@
---
status: seed
type: concept
tags:
- math
- fuzzy-sets
created: 2025-12-17
updated: 2026-05-07
title: Логические операции над нечеткими множествами
---
# Логические операции над нечеткими множествами
## Терминология
Пусть $A$ и $B$ - нечеткие множества универсума $U$.
Нечеткое множество $A$ называется *<u>пустым</u>*, если $\mu_{A}(u) = 0,\ \forall u \in U$
*<u>Носителем</u>* нечеткого множества $A$ называется подмножество таких точек $U$, для которых величина функции принадлежности положительна: $$S(A)=Sup\ \mu(A) = \{u|u \in U, \mu_{A}(u)>0\}$$
*<u>Высотой</u>* множества $A$ называется максимальное значение х.ф.: $$h(A)=sup\ \mu_{A}(u)$$
Множество $A$ называется *<u>нормальным</u>*, если его высота равна 1.
В противном случае оно называется *субнормальным*. Любое субнормальное множество можно сделать нормальным.
Элементы множества $U$, для которых $\mu_{A}(u)=0.5$, являются *точками перехода* нечеткого множества $A$.
## Дизъюнкция
Дизъюнкцией (объединением) нечетких множеств называют наименьшее подмножество $A \cup B$, включающее как $A$, так и $B$, с функцией принадлежности вида: $$\mu_{A\cup B}(u) = \max(\mu_{A}(u)\mu_{B}(u)),\ u \in U$$![[Pasted image 20260227193130.png|400]]
## Конъюнкция
Конъюнкцией (пересечением) нечетких множеств называют наибольшее подмножество $A \cap B$, содержащееся одновременно и в $A$, и в $B$, с функцией принадлежности вида: $$\mu_{A \cap B}(u) = \min(\mu_{A}(u),\mu_{B}(u)),\ u \in U$$
![[Pasted image 20260227194025.png|400]]
## Дополнение
Дополнением (отрицанием) нечеткого множества $A$ называют нечеткое множество $\overline{A}$ с функцией принадлежности: $$\mu_{\overline{A}}(u) = 1 - \mu_{A}(u),\ u \in U$$
![[Pasted image 20260227194309.png|400]]
## Разность
Разностью двух множеств называется множество $A - B = A \cap \overline{B}$ с функцией принадлежности: $$\mu_{A-B}(u)=\mu_{A \cap \overline{B}}(u) = \min(\mu_{A}(u),\mu_{\overline{B}}(u)) = \min(\mu_{A}(u), 1-\mu_{B}(u))$$
## Связанные заметки
- [[Линейные модели]] — линейная разделимость в ML (жёсткая граница) vs нечёткие операции (мягкая граница); оба решают задачу разделения классов
- [[Функция принадлежности]] — операции определены через μ

Some files were not shown because too many files have changed in this diff Show More