|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
Дано: вектор Y находится в таблице [Ytable] с полями [i] (целое) и [y] (действительное); N векторов Xn находятся в таблице [Xtable] с полями [n] (целое), [i] (целое) и [x] (действительное); i принимает значения от 1 до 10000, n -- от 1 до 100 (то есть в таблице [Xtable] 100*10000 = миллион записей). Можно ли написать SQL-запрос, который помещает в таблицу [Atable] коэффициенты линейной регрессии вектора Y на вектора Xn? (пост связан с постом https://www.sql.ru/forum/1333430/vopros-o-shodimosti-psevdoregressii ) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2021, 22:59 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
Иван FXS, Полно в разных базах данных либо готовых функций либо необходимые чтобы собрать в необходимое решение, например: Hive: regr_r2() regr_slope() regr_intercept() sum() count() avg() variance() stddev_pop() T-SQL AVG() SUM() COUNT() VAR() STDEV() DAX COUNT( ) AVERAGE( ) STDEV.P( ) VAR.P( ) SUM( ) MDX (в MDX так-же есть поддержка VBA функций) LINREGINTERCEPT() CORRELATION() COVARIANCE() LINREGSLOPE() AVG() ...COUNT LINREGR2() STDDEV() SUM() VAR() Кроме всего многие базы данных поддерживают интеграцию с внешними библиотеками а так-же родные процедуры работы с ML компонентами (например R или Python ).. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2021, 01:14 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
vikkiv, это я понимаю, меня интересует именно "можно ли написать SQL-запрос" (а не вызвать внешнюю -- для SQL -- функцию). Ну и линейная регрессия -- это всё-таки не AVG(), SUM(), COUNT(), VAR() или STDEV()... немножко посложнее. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2021, 01:46 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
Иван FXS, Чуть чаем не подавился.. мы точно об одной регрессии говорим? Или в школах какой-то альтернативный математический прогресс пошел? Насколько я помню именно наличие этих функций является вполне достаточным условием для нахождения коэффициентов простой линейной регрессии, (кроме стандартных/основных {арифметических} алгебраических операций: сложения, вычитания, умножения и деления, и можно чисто с бюрократической точки зрения добавить операции со степенями и функцию power()) для множественной (многофакторной) немного замороченнее, но тоже вычисляемо был вопрос - можно-ли.. соответственно дан ответ: можно, и показано направление, причём на HIVE SQL и некоторых др. диалектах есть готовые функции но при наличии специально под эти задачи заточенных инструментов вполне интегрируемых в SQL напрашивается другой не заданный вопрос: нужно-ли (натягивать сову на глобус, или лезть на кактус)? Есть же библиотеки оптимизированные на векторную/линейную алгебру, GPU, расширенные инструкции, дополнительные регистры, параллельность, многопоточность по всем ядрам и CPU, даже на кластерах через тот-же Spark например.. одни MKL/BLAS + AVX512 чего только стоят по производительности на задачах этого класса, Python или R в руки и вперёд, уже довольно давно принятый в корпоративном мире стандарт. но если сильно хочется то напр. на T-SQL набросать можно что-то такое: (заметь: именно sum/count/avg/var) Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
С MySQL тоже схожая ситуация как и с MSSQL, в PostgreSQL и Oracle как и в HIVE ещё есть готовые regr_intercept()/regr_slope()/regr_r2() , плюс дополнительные суммы квадратов, ковариации, корреляции и т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2021, 15:15 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
vikkiv для множественной (многофакторной) немного замороченнее, но тоже вычисляемо --но вы видите что в посте идёт речь именно о "множественной (многофакторной)" или нет? И даже количество факторов указано -- 100. То, что регрессия переменной Y на ОДНУ переменную Х конструируется ... как два пальца об асфальт, я знаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2021, 15:54 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
Иван FXS, технически, если вдаваться в семантику - то это не было указанно в явном виде / или я не понял (может только если отследить по другой теме и придти к такому выводу), т.к. там нет детерминированности и возможны варианты интерпретации, но в виде как указанно в последнем сообщении - эта неопределённость уходит теперь собственно к ответу на тему по множественной: для частных случаев где n в пределах малых чисел (даже скорее цифр: 2,3...) - тоже вполне можно жестко прописать и на SQL, для общей формы где n = произвольное - уже надо писать более замороченную логику генерации выражений под вычисления с использованием циклов/рекурсий, промежуточных таблиц через динамический SQL, что потребует намного больших трудозатрат, появятся проблемы с отловом ошибок и обслуживанием так-же и появятся претензии к производительности (особенно большая чуствительность с ростом n чем при увеличении кол-ва строк) (не отвечая на не заданный вопрос "нужно-ли это" с учётом наличия более оптимальных средств/языков {процедурно/объектного программирования с нужным набором функций} специально предназначенных для таких типов задач) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2021, 16:42 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
UNION в цикле наверное потянет. Но для этого динамический SQL не требуется. Достаточно простого PL/SQL, и в нём реализовать рекуррентность из того самого поста. Но это ИМХО. Согласен, что обслуживать сложно. По трудозатратам вполне сравнимо с алгоритмикой. Если ради эстетства. Я один раз так и сделал: алгоритмическое ТЗ реализовал чередой запросов, но меня мотивировало, что ТЗ было размытым и опасался, что курочить алгоритм придётся многажды. Но курочить оказалось только эпилог. Так что не знаю, выиграл или проиграл. Под 1000 строк вышло. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2021, 17:04 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
(порезал про зависимость векторов) Коль скоро озвучены порядки задачи. Видим же, что размерность векторного пр-ва и кол-во векторов несопоставимо. Не знаю уж как возникают эти векторы. При заметной случайности очевидно, векторы будут сильно не ортогональны. Матрица ковариаций всего лишь 100х100. Такую задачу, если она изолированная, просто решить типовыми методоми. Например Главных компонент. Собственные значения и собс-ные векторы легко находятся школьными методами. Например модифицированным гауссом или корнями 100-полинома. Полином считается итерационно спец методом для таких матриц (для симметричных). Ничего запредельного в размерности 100 кроме обеспечения точности. Но даже и это можно запихнуть в SQL-ы, только я бы не стал. Конечно есть нюанс, если данная матрица представляет только однну реализацию однотипной послед-сти действий. Тогда может понадобиться обеспечить устойчивость решения. И тогда метод редукции регрессии к 2-мерным регрессиям вполне оправдано. Только получение коэф-тов нужно обеспечить устойчивым методом, иначе в разнос пойдёт. Про желаемый же метод этого (устойчивость) не знаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2021, 13:59 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
Правильно ли я понял. Речь идет об этом https://ru.wikipedia.org/wiki/Линейная_регрессия Код: sql 1. 2. 3. 4. 5.
На вход - координаты измерений в декартовой плоскости. На выходе прямая которая удовлетворяет требованию близости одновременно ко всему множеству измерений. По сути прямая здесь обозначена двумя вещественными коэфициентиками (k) и (b). Верно? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2021, 16:28 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
mayton, y(i) = b0(i) + b1*x1(i) + ... + bj*xj(i) + ... + bk*xk(i) + e(i) -- на той же странице Википедии в разделе "Парная и множественная регрессия" ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2021, 17:46 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
mayton ...По сути прямая здесь обозначена двумя вещественными коэфициентиками (k) и (b). Верно? В данной задаче даже не идёт речь о последовательности случайных величин (векторов). ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2021, 17:57 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
Пример Метода Леверье. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2021, 18:10 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
Предыдущее было для выч хар. полинома. Щас пример : корни полинома с действит-ми коэфф-ми. Метод Лагера. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2021, 18:19 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
Технически, наверное не сложно портировать Basic на PL/SQL, или T/SQL. Но автор хотел решить задачу следующим подходом: Код: sql 1.
и возвращать представление таблицы ATable. Что в этой задаче плохо? В ней плох формат исходных даных. А именно матрица 100*10000. И ее декартов порядок. Обычно реляционные СУБД плохо работают с матрицами. Готов спорить на виски, что реализация этого метода на PL/SQL + Collections будет на порядок эффективнее чем любая реализация которая будет считывать данные непосредственно из таблиц Ytable/Xtable в процессе самого расчета ЛР. Разумеется я предполагаю что коллекции будут инициализированы из таблиц Ytable/Xtable будут как минимум 1 раз. Кстати я предполагаю дать фору. И изменить структуру данных таким образом чтобы Ytable/Xtable были уже соединены в отдельную материализацию. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2021, 19:20 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
ИМХО загвоздка в переменной n. Это кол-во полей (векторов Х). Лично я не знаю как это сделать даже с With abcde AS(). М.б. динамическим SQL. Но я не сильно спец, поэтому предполагал в виде (непонятно только , зачем?), где единственный оператор PL/SQL - это FOR FOR k in 2..n ... курсоры ... курсоры SELECT ..... UNION SELECT ..... END Кстати, в оракуле есть матричные функции, подразумевающие представление таблицы в стандартном массиве, где одно из полей есть номер поля таблицы (или имя этого поля, не помню без словаря) . Короче, ширина массива предзадана. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2021, 19:44 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
exp98 ИМХО загвоздка в переменной n. Это кол-во полей (векторов Х). ..... предполагал в виде (непонятно только , зачем?), где единственный оператор PL/SQL - это FOR ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2021, 20:19 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
В рамках пятничного хакатона можно было-бы сделать нечто оригинальное на языках Stored Precedures. Это и быстро-бы летало. И практично. А чистый SQL... ну... похоже на тестовое задание. Но уж сильно специфичное. Да и кому нужен чистый SQL? Это - утопия. Ни в одной конторе не требуют. Всегда предупреждают-де у нас - такой-то софт (MSSQL/Postgres e.t.c.) и под него мы разрабатываем. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2021, 20:35 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
В принципе, формулируя вопрос, я интуитивно предполагал, что это невозможно. И хотел получить подтверждение этому. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2021, 20:52 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
Иван FXS, Это не невозможно, очень даже возможно, это попросту непрактично, поэтому и была череда намёков про сову на глобус .. кактус. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2021, 21:01 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
Почему невозможно? Лет 15 назад в Oracle мы доказывали что SQL-полный по Тьюрингу. Это значит что мы можем решать на нём любые задачи. Шахматы. Численные методы. Реализовывать машины с состояниями. Но из этого не следует что нам будет легко! Нам надо будет освоить хитрую технику... ну я не знаю наподобие разворота цикла в рекурсию (как делают например в Haskell) чтобы протащить состояние машины через итерации например. Ну вобщем наверное можно. Но цена такого доказательства будет слишком дорогой. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2021, 21:02 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
mayton SQL-полный по Тьюрингу. Или что "программа", состоящая из набора последовательно выполняемых SQL-запросов (запускаемых, например, макросом) является полной по Тьюрингу? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2021, 23:58 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
Я пытаюсь вспомнить события тех лет. Кажется речь шла о рекурсивных запросах. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2021, 01:52 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
Кстати о птичках. Эта задачка всплыла у меня в связи с идеей пощупать "корреляционную матрицу" (читай "регрессионную") для американского рынка акций -- если вдруг кому-нибудь эта тема интересна... ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2021, 07:51 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
Иван FXS пощупать "корреляционную матрицу" (читай "регрессионную") для американского рынка акций -- если вдруг кому-нибудь эта тема интересна... Сомневаюсь что нынешний рынок акций поддается хоть какому-то тех.анализу. Туда идет огромный поток свеженапечатанных баксов, поэтому его колбасит то от твитов Маска, то от троллинга с реддита и т.д. и т.п. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2021, 10:11 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
Dima T, уважаю ваше право сомневаться, поскольку это вопрос мировоззренческий -- для тех, кто на берегу, то есть не пробует ("поддать нынешний рынок акций хоть какому-то тех.анализу"). А правительства в самом деле печатают много денег. От этого рынок акций просто "системно" растёт как целое. И будет дальше расти. Я бы понял, если бы вы произнесли коронный аргумент "от рефлексивности рынка": типа, там очень много богатых ребят, которые нанимают умных ребят, и если бы там были возможности для теханализа, то умные ребята их бы давно нашли, а богатые ребята на них уселись бы и тем самым "исчерпали" бы их... А так -- ну, баксов много поступает, ну колбасит его (да и так ли уж колбасит-то) ... ну и что? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2021, 11:21 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
Иван FXS Эта задачка всплыла у меня в связи с идеей пощупать "корреляционную матрицу" (читай "регрессионную") для... Ёжики кололись но упорно лезли на кактус? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2021, 11:34 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
vikkiv Полностью реализованную на SQL? Иван FXS В принципе, формулируя вопрос, я интуитивно предполагал, что это невозможно. И хотел получить подтверждение этому. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2021, 11:45 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
Иван FXS .. и написал (линейную) регрессию на VBA. оптимизации под расшиенные инструкции архитектуры современных процессоров? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2021, 12:26 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
vikkiv как-же многоядерность/параллельность, оптимизации под расшиенные инструкции архитектуры современных процессоров? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2021, 12:30 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
Dima T Иван FXS пощупать "корреляционную матрицу" (читай "регрессионную") для американского рынка акций -- если вдруг кому-нибудь эта тема интересна... Сомневаюсь что нынешний рынок акций поддается хоть какому-то тех.анализу. Туда идет огромный поток свеженапечатанных баксов, поэтому его колбасит то от твитов Маска, то от троллинга с реддита и т.д. и т.п. Полностью поддерживаю. Добавлю что в независимости от выбора алгоритмов - нам всегда будет не хватать исходных данных которые оказывают влияние на цену акций. Например таже политическая ситуация с выборами в США или флешмоб в Reddit тоже оказывают сильное влияние (причем первичное) на цену акций. И если мы будем искать корреляции между ценами акций то мы ничего интересного не найдем. Проще сразу брать биржевой индекс. Благо он публикуется регулярно. Тоесть как научно-познавательная задача - это интересно и я поддерживаю. И поддерживаю с программистской солидарности. Но как практический интерес - я думаю что она бесполезна. Вряд-ли на этом можно что-то заработать в долгосрочном смысле. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2021, 12:53 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
mayton исходных данных которые оказывают влияние на цену акций mayton искать корреляции между ценами акций то мы ничего интересного не найдем. Проще сразу брать биржевой индекс Просто представьте совершенно надуманную ситуацию, что некоторая акция Б повторяет на следующий день то движение, которое в предыдущий день сделала некоторая акция А. И что от этой зависимости останется, если мы из них построим биржевой индекс (типа (А+Б)/2 )? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2021, 13:45 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
mayton ... И если мы будем искать корреляции между ценами акций то мы ничего интересного не найдем. ... Как я понимаю, существует такой род деятельности как "арбитраж" Т.е. если между акциями похожих компаний в "реальном секторе" ( TM ) экономики существует четкая коррелиция ))), и вдруг одна из акций начинает резко двигаться из-за флешмоба ))), то вполне вероятно, что можно заняться арбитражом между данной акцией и связанных с нею. Например неудачный флешмоб на рынке серебра. Очень быстро сошел на нет. Подозреваю, как раз из-за такого арбитража от части игроков. Т.к. пытаться флешмобить одну акцию/товар - это одно, а подвинуть весь мировой рынок серебра и связанных с ним продуктов - совершенно другое. IMHO p.s. как я понимаю на Российском рынке так же есть хорошо коррелируемые пары. Например цена на золото и акции золотодобывающих компаний (Полюс). С нефтянкой наверное все сложнее, т.к. там больше политики. Но у нас вообще вся страна (курса рубля) и цен на нефть тоже неплохо коррелирует. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2021, 13:53 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
Есть разница между случайными значениями и значениями случайного процесса: Хабр ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2021, 13:55 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
Иван FXS, я даже не буду с вами спорить. Пожалуйста. Стройте и корреляции и Фурье анализ. Яж говорю. Из технического инфантильного любопытсвта я вас поддержу. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2021, 14:05 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
Basil A. Sidorov, Ну корреляции они такие ))). Например "ядерные взрывы спасают от землетрясений" https://scinquisitor.livejournal.com/70395.html note: в конце картинка показывающая корреляцию между кол-во людей утонувших в бассейне и кол-вом фильмов в которых снялся Николас Гейдж ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2021, 14:13 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
mayton, да, от споров практической пользы нет. Разве что --"прокачка" (собственного) понятийного аппарата... Типа, вот, сказали вы "проще сразу брать биржевой индекс" -- мне понадобилось не очень много секунд, чтобы понять и сформулировать, что это мимо. Ну, разминка. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2021, 14:14 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
Иван FXS mayton, да, от споров практической пользы нет. Разве что --"прокачка" (собственного) понятийного аппарата... Типа, вот, сказали вы "проще сразу брать биржевой индекс" -- мне понадобилось не очень много секунд, чтобы понять и сформулировать, что это мимо. Ну, разминка. Разминка. А как насчет корреляционного анализа индексов? Между странами например. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2021, 18:50 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
mayton А как насчет корреляционного анализа индексов? Между странами например. Только вот услышали ли вы, что я имею в виду корреляцию (регрессию, на самом деле) лаговых приростов -- в смысле гротескного примера: Иван FXS представьте совершенно надуманную ситуацию, что некоторая акция Б повторяет на следующий день то движение, которое в предыдущий день сделала некоторая акция А ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2021, 19:24 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
Услышал. Именно поэтому я и упомянул про анализ Фурье. Ну давай уже скорее макет. Не терпится глянуть кто там самый главный. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2021, 19:27 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
mayton, хорошо. Просто следом легло смешное Leonid Kudryavtsev note: в конце картинка показывающая корреляцию между кол-во людей утонувших в бассейне и кол-вом фильмов в которых снялся Николас Гейдж Анализ Фурье я не вижу, при чём тут -- в моей картинке его нет: по каким гармоникам (по гармоникам чего )? Ну и там дело не в том, "кто там самый главный". Как использовать эту регрессионную матрицу ( матрицу регрессионных коэффициентов) -- отдельный (и намного более деликатный) разговор. ... впрочем, чего там, могу и разболтать, язык без костей: строим, конечно, регрессионные прогнозы (прогнозы на основании регрессии) на завтра, и смотрим, насколько будет сладко, если выбирать из них самые сладкие. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2021, 19:37 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
Матрица (МРК) может выступить капитаном-очевидностью и сообщить нам корреляции которые мы и так знаем. Одна ценная бумага зависит от цены на золото с лагом. И кроме того МРК может сообщить к нашему сожалению что прочие влияния равны нулю и этих прочих данных в матрице будет много. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2021, 19:43 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
по subj: насколько я помню корреляцию по лагам критерий по Дурбину-Ватсону неплохо ловит. на счёт остального - может не стоит привязываться к конкретной области, а то начнут тут мерятся у кого длиннее не разбираясь в вопросе.. чисто математический контекст, алгоритм, скрипты решения, максимум примеры уже можно из какой-то конкретной области притянуть.. а то всё больше напоминает падение в сторону алкоголиков: о политике, спорте, других вселенных, в общем о всём к чему нет никакого отношения и на что нет никакого влияния/контроля ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2021, 19:44 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
mayton, вы же ведь просто по инерции продолжаете употреблять слово "корреляция"? Потому что регрессия это не корреляция, и даже не совокупность (вектор) корреляций -- ибо Иксы не ортогональны! "Влияния равны нулю" -- типа совсем нулю равны коэффициенты регрессии? Это же невероятный исход. Они могут быть невелики... Кстати, "невеликий" -- это сколько, по-вашему, для коэффициента регрессии (по модулю, конечно) на нормализованных величинах: 0.1, 0.01 или 0.001 (при том, что свободных переменных ~100)? Но, в самом деле, в итоге может и не получиться ... каменный цветок. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2021, 19:52 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
Иван FXS (при том, что свободных переменных ~100) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2021, 20:08 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
А из какого data-provider ты тянешь данные по NASDAQ-100? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2021, 23:52 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
stooq. com/ db/ h/ ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2021, 00:04 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
mayton Не терпится глянуть кто там самый главный. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2021, 13:57 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
Ну типа тово. Можно пятничный топик поднять. Только переформатировать вопрос. С абстрактной регрессии до вполне себе узкой задачи. Чтоб были понятны inputs/outputs. Если ты не против. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2021, 14:34 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
mayton, я не против, просто не понимаю, что это такое. Но посмотрю, конечно. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2021, 14:44 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
Ну... пятничный топик - это что-то не-продуктовое. Я-бы сказал развлекательно-познавательное. Но без тебя всё равно правильную формулировку не придумаю. У меня есть в этом свой интерес. Хочу Apache Spark попробовать в анализе данных. Вот ищу подходящую постановку "на подумать". ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2021, 14:49 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
так моя роль (читай обязанность) сводится к тому, чтобы предложить формулировку топика? Ну, "специфика математических моделей для целей формализованной торговли акциями", например. Но поскольку большинство участников форума, несомненно, стоит на мировоззренческой позиции типа Dima T Сомневаюсь что нынешний рынок акций поддается хоть какому-то тех.анализу ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2021, 15:08 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
Ставишь Python 3.9.1 Накатываешь PySpark (ну естественно NumPy, Pandas, Matplotlib) Всё, карманный Spark готов, а задач - море.. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2021, 15:34 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
mayton Но без тебя всё равно правильную формулировку не придумаю. У меня есть в этом свой интерес. Хочу Apache Spark попробовать в анализе данных ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2021, 15:45 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
Почему NASDAQ stocks порезаны на 3 директории? В чем смысл? (качал дневные по USA) Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2021, 18:23 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
mayton, я считаю, что это просто потому, что слишком много акций -- никакого другого значения я не увидел. Они же по алфавиту там упорядочены... ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2021, 18:27 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
Мда. Похоже на то. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2021, 21:24 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
А какой бизнес-смысл последних двух полей? VOL, OPENINT. Код: sql 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2021, 22:05 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
VOL - объём торгов за период в штуках, OPENINT -- использовался бы, если бы речь шла о фьючерсах. Для акций это понятие "открытый интерес" смысла не имеет, так что стоят все нули ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2021, 22:48 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
Кстати что вы веберешь для своих регрессий в качестве X,Y ? Цену закрытия? Или среднее между макс. и мин. за период? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2021, 00:27 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
mayton, Иван FXS Просто представьте совершенно надуманную ситуацию, что некоторая акция Б повторяет на следующий день то движение , которое в предыдущий день сделала некоторая акция А (Но я надеюсь, вы понимаете, что так не получится, чтобы я озвучил здесь исчерпывающим образом всю свою "исследовательскую программу"... А дьявол в деталях.) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2021, 00:33 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
Дельту в смысле? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2021, 00:35 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
dClose = Close - Close[-1] В принципе, можно пробовать играться с d = Close - Open ... тогда даже будет вся ночь на расчёты и, типа, подготовку к следующему трейду. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2021, 00:36 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
Иван. Голубчик. Я вообще не претендую на вашу исследовательскую программу. Я даже вряд-ли ее осилю. Я просто ищу мясо для того чтобы натравить на него Spark и возможно алгоритмы org.apache.spark.ml.stat (Spearman, Pearson). ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2021, 00:42 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
ну, ок, просто ваш вопрос mayton Цену закрытия? Или среднее между макс. и мин. за период? (Упссс... я непроизвольно повторил ваше слово "мясо", но совершенно в другом смысле.) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2021, 00:46 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
Ну что-ж удачи вам с вашей исследовательской программой. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2021, 01:28 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
да, удача не помешает ................ ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2021, 02:24 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
mayton, вдогонку. Поймите меня правильно: я ни в чём вас не обманул, всё что я рассказал, это правда, -- я в самом деле это так думаю. То есть я в самом деле думаю, что так нужно делать. Но я понимаю, что я не всё вам рассказал, и понимаю, что я не готов всё публично рассказывать -- "всё" именно в смысле "всё, что я думаю о том, как нужно делать". А если вы сумеете достичь успеха -- как-то по-своему -- ну так слава российской науке! ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2021, 11:24 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
Ради бога. Я тут - просто провожу время, попутно читая ссылки и что-то для себя интересное. Общаюсь и делюсь мнением. Если у вас будут успехи в вашей задаче - пишите новости. Разумеется без раскрытий know-how. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2021, 11:37 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
Иван FXS слава российской науке! ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2021, 12:31 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
Basil A. Sidorov Иван FXS слава российской науке! ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2021, 13:31 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
Иван FXS, запросто, вот однопроходные формулы: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
cx, cy - ваши данные a - часть уравнения y = ax + b r - коэффициент кореляции Пирсона b - соотношения между a, b, r PS: устойчивость они конечно не гарантируют на больших числах ... |
|||
:
Нравится:
Не нравится:
|
|||
13.04.2021, 00:05 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
Дык по изначальной науке видно выражения в векторно-матричной форме. Как бы намекает на возможность селекта. По крайней мере в оракуле есть штатные функции работы с матрицами. Кол-во полей не имеет значения, формат собственно рабочей таблицы фиксированный (в доке есть, в качестве одного из полей таблицы используется номер поля гипотетической таблицы). Насчёт ограничений устойчивости ваша правда. И формула годится только при обратимости матрицы, и если она не очень плохая. А у ТСа ещё был вопрос, когда матрица вырождена. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2021, 17:20 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
Из за этих регрессий можно ... шею свернуть. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2021, 20:42 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
kealon(Ruslan), правда, любопытно, как вы читаете? Вот "N векторов Xn ... , n -- от 1 до 100" -- это о чем, на ваш взгляд? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2021, 10:09 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
Иван FXS, Плохо что не видите связи, подставьте мой пример под матрицы от exp64 и будет то что вам нужно. Это обычное решение МНК. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2021, 11:53 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
kealon(Ruslan) подставьте мой пример под матрицы от exp64 и будет то что вам нужно. Это обычное решение МНК Вы умеете диагонализировать матрицу (решать систему линейных уравнений) средствами SQL? Покажите этот код -- будет вам уважуха. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2021, 14:01 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
В этом топике не предполагалось. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2021, 14:06 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
exp98 В этом топике не предполагалось ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2021, 14:13 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
Иван FXS, Зачем мне это делать? Я уже эту задачу решал, без извращений с sql, "уважуха от Иван FXS" мне ни к чему, не вижу смысла переписывать это на SQL. Сама по себе, задача из разряда "на профпригоднность", как говорится, по типу бинарноого поиска - америку тут не открыть. Вообще, это возможно - например, посмотреть расширение для вашей базы для работы с матрицами (если такое есть, то и обратная матрица есть) Можете ли это сделать вы, тут я как бы не могу ванговать. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2021, 22:42 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
kealon(Ruslan), то есть ваш ответ: берём библиотеку, в которой реализована линейная регрессия, и обращается к ней из нашего SQL -- вот у нас и будет "реализация линейной регрессии на SQL" ... В этом смысле и игру в шахматы тоже можно "реализовать на SQL". ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2021, 01:53 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
Иван FXS, нет, от библиотеки вам нужен алгоритм вычисления обратной матрицы и вообще матрицы, остальное вы должны сделать сами для начала, напишите на листочке, что должно посчитаться из данных сделайте хоть какую примитивную реализацию, на любом языке где можно данные выбрать из вашей базы или exp98 должен за вас это сделать? а этот вопрос можно закрывать, то что спрашивается реально возможно ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2021, 10:02 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
kealon(Ruslan), я даже знаю, что вы весьма странно называете "и вообще матрицы, остальное" -- называется "ковариационная матрица". И да, я знаю, что насчитать её -- ковариационную матрицу -- средствами SQL -- тривиально. В любом случае, ваше "от библиотеки вам нужен алгоритм вычисления обратной матрицы" (не всей "обратной матрицы", скажу вам по секрету, и в этом смысле вообще не "обратной матрицы") -- это "суп из топора". ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2021, 10:12 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
Иван FXS В любом случае, ваше "от библиотеки вам нужен алгоритм вычисления обратной матрицы" (не всей "обратной матрицы", скажу вам по секрету, и в этом смысле вообще не "обратной матрицы") -- это "суп из топора". возьмите листочек, напишите формулу расчёта, покажите результат, можно будет предметно говорить подсказка: в одном из аргументов формулы у вас должна получиться симметричная квадратная матрица 100*100 ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2021, 10:18 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
kealon(Ruslan), это становится смешно. При диагонализации матрицы коэффициентов системы линейных уравнений -- с приведением этих диагональных элементов к единицам, конечно --в её правой части появляется (остаётся) решение этой системы уравнений. Если вы не различаете "диагонализацию" и "вычисления обратной матрицы" ... могу вас только поздравить с глубиной достигнутого вами понимания! И повторить ещё раз, что в процессе диагонализации обратная матрица -- как сущность, как двумерный массив, -- не возникает, то есть не "выччисляется". ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2021, 10:28 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
kealon(Ruslan), ну то есть похвально, конечно, что вы знаете, что решение системы линейных уравнений -- это задача, сходная с задачей вычисления обратной матрицы -- где-то там недалеко одно от другого.. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2021, 10:45 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
Иван FXS, вот ваша аппроксимация: y = x * a + b (a, x - векторы [a j ], [x j ]) вот основное условие МНК: Summ i [(x i * a + b - y i )^2] => min из него выходит следующая система: ∂[ Summ i [(x i * a + b - y i )^2]]/∂a j = 0 ∂[ Summ i [(x i * a + b - y i )^2]]/∂b = 0 вместо вопроса там символ частной производной тынц вот ей и решайте, а по поводу вашей очередной реплики мне нечего добавить ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2021, 11:04 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
kealon(Ruslan) вот ваша аппроксимация а вот миллион самплов, которые вам нужно описать этой аппроксимацией. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2021, 11:19 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
kealon(Ruslan), если вы не возражаете против того, что решение системы линейных уравнений не требует вычисления (то есть целиком и в явном виде) обратной матрицы -- а вы, кажется, не возражаете, -- то я не вижу повода нам с вами продолжать ломать копья. Потому что я знаю , что линейная регрессия основана на МНК, спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2021, 11:29 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
Иван FXS -- ага, самую малость забыли добавить: а вот миллион самплов, которые вам нужно описать этой аппроксимацией. линейка элементарна - якобиан из одних чисел состоит, на нелинейке приходится 10-40 проходов делать напишите итоговое уравнение, там всего 1 проход по этому массиву ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2021, 11:36 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
Иван FXS Потому что я знаю , что линейная регрессия основана на МНК, спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2021, 11:43 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
kealon(Ruslan) там всего 1 проход по этому массиву ... потому что, скажу по секрету, после создания этого топика (больше двух месяцев назад, вообще-то) достаточно быстро приступил к реализации линейной регрессии (в моей конкретной задаче) средствами VBA. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2021, 13:03 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
kealon(Ruslan), а вот что было бы здорово (и, скажем так, по-мужски) -- если бы вы признали явным образом, что тот "ход", которым вы начали своё участие в дискуссии, а именно, понизили размерность задачи со 100 до единицы и показали решение "за один проход" для этого вырожденного случая -- в качестве "ха-ха, всего-то" (дословно: " запросто, вот однопроходные формулы "), -- этот ход был неудачным. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2021, 13:17 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
упссс ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2021, 13:18 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
Примечание в воздух, широковещательно, никого не имея ввиду. Между прочим МНК основан на "максимуме правдоподобия при нормальном распределении вер-сти". Конкретно линейная регрессия основана на них обоих одновременно. Не опосредованно, по типу транзитивного вывода, а именно одновременно на обоих. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2021, 13:49 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
exp98, основан - в смысле "обоснован"? Наверное... Для меня МНК это неважно-на-чём-основанный приём "минимизируем квадраты отклонений (от целевого значения)". ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2021, 14:00 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
Ну да, и "обоснован", но и "основан". Квадраты не из воздуха взялись. И их минимум тоже. А из максимума плотности распред-я. Да, все пользуются как методом. Главное, чтоб отдавали себе отчёт, что в основе лежит предположение о нормальности распределения приближаемых значений. Если не так, возможны чудеса (по меньшей мере в виде необоснованных выводов). Спсибо за внимание. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2021, 14:10 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
exp98, чьё "предположение о нормальности распределения приближаемых значений лежит в основе"? Если у меня никакого моего "предположения о нормальности распределения приближаемых значений не лежит в основе", то ... доктор, всё плохо? я умру?? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2021, 14:43 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
exp98, подожди пугать, тут надо с базы начинать, сложно уйти в лес, если ходить не умеешь ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2021, 14:47 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
Иван FXS -- этот ход был неудачным. ибо не предполагал нулевой уровень :-( ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2021, 14:49 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
exp98, я строю линейную регрессию завтрашнего изменения (прироста) цены акции ZN, MRNA и PDD (и всех остальных ста, если честно) на 103 сегодняшних изменения (прироста) цен акций в индексе NASDAQ-100. Если вы за меня помолитесь богу ... "положите в основу предположение о нормальности распределения приближаемых значений" ... ну, наверное, я не буду на вас в большой обиде. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2021, 14:50 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
kealon(Ruslan) ибо не предполагал нулевой уровень :-( ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2021, 14:53 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
exp98 в основе лежит предположение о нормальности распределения приближаемых значений Конечно, мы можем "положить в основу" мантру: " все ошибки измерений имеют нормальное распределение " -- и, перекрестясь, в путь. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2021, 15:15 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
Иван FXS, это как? то есть нормальность остатков гарантирует оптимальность гиперпрямой, полученной через МНК? То есть сначала много-много раз получали приятные решения, потом решили притянуть к ним теоретич. обоснование? Иван FXS, эм-мм, не то чтобы недостаточно. Скажу по-свойски. Когда предполагается нормальность совместного распр. X и Y, тогда одновременно она же получается и для остатков. Но у нас при отклике Y(х)=M(Y|x)= m(x) - неизвестная ф-ция от х, имеем только её ту или иную оценку. Что проще: узнать мат.ож. отклика или предположить нормальность? Вот и выбираем последнее. Притом уже предполагаем существование M(Y|x) и D(Y|x). И тогда, захотев, чтобы линейное приближение не увеличивало дисперсию Y , D(Y|x)=M(Y - a*x-b)^2= M(Y - m(x))^2 + M(m(x) - a*x-b)^2 формальное + и - слагаемого. И D=min(a, b), когда оба слагаемых минимальны одновременно. Для этого пытаемся, чтобы a*x-b ==m(x). Достаточно максимально правдоподобных параметров a и b. Ан нет, мы не знаем m(x) точно. Зато знаем левую часть. Поэтому решаем оптимизационную задачу M(Y - a*x-b)^2 -->min(a,b), (фактически метрика взвешенная L2). Всё бы хорошо, да что-то нехорошо. Ах, да, мы же вероятность не знаем в формуле матож. И существет ли оно само. Придётся сделать предположения о распределении (X, Y), причём о совместном. Проще всего, если оно норм, exp(t^2/2) максимума при t=0. Эта же точка будет и наиболее вероятной. Академический подход - метод макс. правдоподобия. А без этих вероятностных предположений и интерпретаций кто такой МНК? всего лишь гиперкривулька, проходящая ближе всего от заданных точек в метрике почти L2? заодно проходящая в некой "близости" от Y, и чё дальше? почему именно такая метрика? МНК об этом знает? И главное - есть приемственность результата в будущих экспериментах (т.е. вопрос устойчивости, хотя и у гаусса она чувствительна к аномалиям)? Может можно короче или яснее (или даже правильнее), но как смог. П.с. Интересно другое, раньше я не задумывался, можно ли предполагать, к примеру что-нибудь одномодовое кроме Гаусса. Например, более крутое. Симметричное? А при 2-х модовом усложнится МНК. Я не вкурсе, может и доказано было, что Гаусс даёт наилучшие несмещённые оценки и т.п. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2021, 19:04 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
чтобы меньше нареканий вместо (a*x-b) следует читать (a*X-b) здесь СВ как линейная ф-ция от СВ X. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2021, 19:16 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
exp98, я старый человек, мне сложно понимать такие длинные тексты, но... exp98 нормальность остатков гарантирует оптимальность гиперпрямой, полученной через МНК А на каком о(-бо-)сновании мы выбираем в качестве критерия оптимальности минимальность суммы квадратов остатков ... эээ, может я и знал когда-то, но забыл. А сейчас мне достаточно вот этого смутного воспоминания о том, что это, типа, "хороший критерий". Но главное -- что он ещё и очень удобный (технологичный). В конце концов, линейную регрессию, имманентно основанную на МНК, не я ведь придумал, я её только применить пытаюсь. И либо преуспею, либо нет. Если нет -- не уверен, что у меня хватит настойчивости разобраться, почему я не преуспел. Вот ещё среднее (среднее арифметическое, само собой!) очень удобно в качестве представителя "середины", а СКО -- в качестве представителя (меры) "разброса"... хотя бывало, да, что я пробовал медиану в качестве "представителя середины" ... но счастья особого мне это не принесло. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2021, 20:01 |
|
Можно ли на SQL реализовать линейную регрессию?
|
|||
---|---|---|---|
#18+
Иван FXS, вы должны понимать, что я не подвергаю сомнению МНК. Но кроме того, прекращаю дальнейшие пикирования, потому что до ночи читал матэнциклопедию Виноградова на эти темы (тт. III и IV). Даже учитывая краткость энцикл-ких изложений, это заняло много времени, до МНК дошёл под конец. Там ему много страниц (для энц. много) посвящено, диагонально прочёл, но не всё осилил. Главный же мой вывод из чтива такой. С Р. у меня достаточно хорошо, не стану уже исправлять позднюю опечатку (aX+b). С МНК у меня однобоко. Вы правы с термином "обосновывать". Действительно, согласно истории Гаусс и Лежандр считаются основателями МНК. И, опровергая мои рассуждения, руководствовались именно метрическими соображениеми, к-рые затем подтверждались на практике. Впрочем недаром МО, Д и т.д. называют моментами энного порядка, взято из механики. Вероятностная подоплёка, наверняка, сложилась позднее и для части ситуаций, где её можно обоснованно ввести. А нормальность распределений для части этой части. И именно для предположений нормальности в МНК я не ошибался. "Остатки" и их нормальность в МНК не увидел. Машинально относил это понятие к Р. , а в МНК другой термин: об Х предлагают думать как о сумме (m+eps), где eps - случ. величина. Но тогда автоматическки и (m+eps) СВ. Но ведь eps в наблюдениях - терминологически никак не остаток, а всего лишь "предполагаемая ошибка фактического наблюдения". Правильно? Ну и тогда ваши слова были о том же, что и я. И, собственно метод макс. правдоподобия в современном изложении значительно шире предположений о нормальности распр. Я думаю, мы каждый при своих остались, типа ничья. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2021, 12:58 |
|
|
start [/forum/topic.php?all=1&fid=16&tid=1339673]: |
0ms |
get settings: |
12ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
60ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
104ms |
get tp. blocked users: |
2ms |
others: | 248ms |
total: | 463ms |
0 / 0 |