exponenta event banner

Данные модели с использованием регрессии и фитинга кривой

В этом примере показано, как выполнить регрессию данных MATLAB ® и подгонку кривой в Microsoft ® Excel ® с использованием листа и макроса VBA.

Пример упорядочивает и отображает входные и выходные данные на листе Microsoft Excel. Функции Link™ электронных таблиц копируют данные в рабочую область MATLAB и выполняют вычислительные и графические функции MATLAB. Макрос VBA также возвращает выходные данные на лист.

Для работы с кодом VBA в Excel со ссылкой на электронную таблицу необходимо включить ссылку на электронную таблицу в качестве ссылки в редакторе Microsoft Visual Basic ®. Дополнительные сведения см. в разделе Установка.

Откройте окно ExliSamp.xls и выберите Sheet1 лист. Для получения помощи в поиске ExliSamp.xls см. раздел Установка.

Sheet1 электронной таблицы содержит именованный диапазон DATA, который состоит из примерного набора данных в ячейках листа A4 через C28.

Sheet1 contains the code for Spreadsheet Link functions in the cells of column E

Данные модели в рабочем листе

Чтобы выполнить регрессию и аппроксимацию кривой, выполните указанные функции связи с электронной таблицей в ячейках листа.

  1. Выполните функцию «Связь с электронной таблицей», которая копирует набор данных образца в рабочее пространство MATLAB, дважды щелкнув ячейку. E5 Набор данных содержит 25 наблюдений трех переменных. Существует сильная линейная зависимость между наблюдениями. Фактически, они близки к тому, чтобы быть скалярными кратными друг другу.

  2. Выполнение функций в ячейках E8, E9, и E10. Функции связи с электронными таблицами в этих ячейках регрессируют третий столбец данных в двух других столбцах и создают:

    • Один вектор y содержащий данные третьего столбца

    • Матрица из трех столбцов A, который состоит из столбца из 1, за которым следуют остальные данные

  3. Выполнение функции в ячейке E13. Эта функция вычисляет коэффициенты регрессии с помощью обратной косой черты MATLAB (\) операция по решению сверхопределённой системы линейных уравнений, A*beta = y.

  4. Выполнение функции в ячейке E16. Матрично-векторное умножение MATLAB дает регрессионный результат. fit.

  5. Выполнение функций в ячейках E19, E20, и E21. Эти функции:

    1. Сравнение исходных данных с fit.

    2. Сортировка данных в возрастающем порядке и применение той же перестановки к fit.

    3. Создайте скаляр для количества наблюдений.

  6. Выполнение функций в ячейках E24 и E25. Поместите уравнение многочлена в данные для многочлена пятой степени. MATLAB polyfit функция автоматизирует установку системы одновременных линейных уравнений и решений для коэффициентов. polyval затем функция оценивает результирующий полином в каждой точке данных, чтобы проверить правильность аппроксимации newfit.

  7. Выполнение функции в ячейке E28. MATLAB plot функция строит график исходных данных (синие круги), результат регресса fit (пунктирная красная линия) и результат полинома (сплошная зеленая линия).

    Figure window contains graph with original data, regressed result, and polynomial result

    Поскольку данные тесно коррелированы, но не точно линейно зависимы, fit кривая (пунктирная линия) показывает близкое, но не точное вписывание. Полиномиальная кривая пятой степени newfit является более точной математической моделью для данных.

Данные модели с использованием макроса VBA

Чтобы смоделировать данные с помощью макроса VBA, выполните функции связи с электронной таблицей в макросе VBA.

  1. В ExliSamp.xls перейдите на вкладку «Sheet2». Появится лист для этого примера.

    Worksheet cells A7 through A31 are empty cells for the y variable, cells B7 through B31 are empty cells for the fit variable, and cells C7 through C31 are empty cells for the newfit variable.

    Клетка A4 вызывает макрос CurveFit, которую можно изучить в среде Microsoft Visual Basic.

    ExliSamp.xls - Module 1 (Code) window contains the VBA code for the CurveFit function with arguments aData, sTarget1, sTarget2, and sTarget3

    Если этот модуль открыт, убедитесь, что надстройка «Связь с электронной таблицей» включена. Чтобы включить его, см. раздел Установка надстройки. После включения надстройки в обозревателе проектов она отображается в папке «Ссылки».

  2. Выполните команду CurveFit макрос путем двойного щелчка по ячейке A4 и нажмите Enter. Макрос запускает функции связи с электронной таблицей. По завершении макроса входные и выходные данные отображаются в ячейках листа. A7:C31.

    • Столбец A содержит исходные данные y (отсортировано).

    • Столбец B содержит соответствующие регрессионные данные fit.

    • Столбец C содержит полиномиальные данные newfit.

    Worksheet cells A7 though A31 contain the data for the y variable, cells B7 through B31 contain the regressed data for the fit variable, and cells C7 through C31 contain polynomial data for the newfit variable.

См. также

| | | | |

Связанные темы