Этот пример показывает, как выполнить регрессию данных MATLAB® и аппроксимирование кривыми в Microsoft® Excel® с помощью рабочего листа и макроса VBA.
Пример организует и отображает входные и выходные данные в рабочем листе Microsoft Excel. Функции Spreadsheet Link™ копируют данные в рабочее пространство MATLAB и выполняют MATLAB вычислительные и графические функции. Макрос VBA также возвращает выходные данные в рабочий лист.
Откройте файл ExliSamp.xls
и выберите рабочий лист Sheet1. Для справки, находящей файл ExliSamp.xls
, смотрите Установку.
Sheet1 электронной таблицы содержит именованную область значений DATA
, который состоит из набора данных в качестве примера в ячейках A4
рабочего листа через C28
.
Чтобы выполнить регрессию и аппроксимирование кривыми, выполните заданные функции Spreadsheet Link в ячейках рабочего листа.
Выполните функцию Spreadsheet Link, которая копирует набор выборочных данных в рабочее пространство MATLAB путем двойного клика по ячейке E5
и нажатия Enter. Набор данных содержит 25 наблюдений за тремя переменными. Среди наблюдений существует сильная линейная зависимость. На самом деле они близко к тому, чтобы быть скалярными множителями друг друга.
Выполните функции в ячейках E8
, E9
и E10
. Функции Spreadsheet Link в этих ячейках регрессируют третий столбец данных по другим двум столбцам и создают:
Один векторный y
, содержащий данные третьего столбца
Матричный A
с тремя столбцами, который состоит из столбца 1 с, сопровождаемой остальной частью данных
Выполните функцию в ячейке E13
. Эта функция вычисляет коэффициенты регрессии при помощи операции (\)
наклонной черты влево MATLAB, чтобы решить сверхрешительную систему линейных уравнений, A*beta = y
.
Выполните функцию в ячейке E16
. Матричное векторное умножение MATLAB приводит к регрессировавшему результату, fit
.
Выполните функции в ячейках E19
, E20
и E21
. Эти функции:
Сравните исходные данные с fit
.
Сортировка данных в увеличивающемся порядке и применяет ту же перестановку к fit
.
Создайте скаляр для количества наблюдений.
Выполните функции в ячейках E24
и E25
. Соответствуйте полиномиальному уравнению к данным для полинома пятой степени. Функция polyfit
MATLAB автоматизирует подготовку системы одновременных линейных уравнений и решений для коэффициентов. Функция polyval
затем оценивает получившийся полином в каждой точке данных, чтобы проверять совершенство подходящего newfit
.
Выполните функцию в ячейке E28
. Функция plot
MATLAB изображает исходные данные в виде графика (синие круги), регрессировавший результат fit
(подчеркнутая штриховой линией красная линия) и полиномиальный результат (чисто зеленая строка).
Поскольку данные тесно сопоставляются, но не точно линейно зависимый, кривая fit
(пунктирная линия) показывает завершение, но не точная, подходящая. Полином пятой степени изгибается, newfit
является более точной математической моделью для данных.
Чтобы смоделировать данные с помощью макроса VBA, выполните функции Spreadsheet Link в макросе VBA.
В файле ExliSamp.xls
кликните по вкладке Sheet2. Рабочий лист для этого примера появляется.
Ячейка A4
вызывает макро-CurveFit
, который можно исследовать в среде Microsoft Visual Basic®.
В то время как этот модуль открыт, гарантируйте, что дополнение Spreadsheet Link включено. Чтобы включить его, смотрите Дополнительного Setup. После того, как дополнение включено, Проводник Проекта перечисляет его под папкой References.
Выполните макрос CurveFit
путем двойного клика по ячейке A4
и нажатия Enter. Макрос запускает функции Spreadsheet Link. Когда макрос заканчивается, входные и выходные данные появляются в ячейках A7:C31
рабочего листа.
Столбец A содержит исходные данные (отсортированный) y
.
Столбец B содержит регрессировавшие данные соответствия fit
.
Столбец C содержит полиномиальные данные newfit
.
MLEvalString
| MLGetMatrix
| MLPutMatrix
| plot
| polyfit
| polyval