2014-02-08 3 views
2

Посмотрите на следующий график и проигнорируйте сплошные линии (просто посмотрите на пунктирные/пунктирные).Линейно-логарифмическая регрессия в MATLAB: 2 Входные параметры

Для каждой кривой g находится между [0, 255] (всегда всегда положительным), вогнутым, биективным. Я знаю из процесса, который лежит за мерами, что, увеличивая V, соответствующая кривая выравнивается.

Различные кривые возникают при изменении V. Оранжевая кривая наверху равна V=100, нижняя кривая (красный/пурпурный) для V=180.

Я измерил данные с намного большим количеством точек данных в следующем виде:

T[1] V[1] g[1] 
T[2] V[1] g[2] 
T[3] V[1] g[3] 
... V[1] g[4] 
T[N] V[1] g[5] 
....... 
T[1] V[N] g[1] 
T[2] V[N] g[2] 
T[3] V[N] g[3] 
... V[N] g[4] 
T[N] V[N] g[5] 

Теперь я хочу регресс, как это:

g = g(V, T) 

которая позволила бы получить кривую для фиксированного V -значение:

g = g(T), V=Vfix 

Какой регрессионного Funktion в MATLAB Как вы думаете, будет работать из лучших путь? И как взять здесь «модель»? Я знаю только (из самого процесса И, очевидно, из графиков), что его некоторая линейная кривая в начале переходит в логарифмическую кривую, но я не знаю, как это делает значение V !?

Большое спасибо заранее: за любые советы ..

ответ

2

@bjoern, для каждого фиксированного V, кажется, что ваша кривая вогнута и имеет только положительные значения. Поэтому мой первый выбор - предположить, что Y=A X^r. Самый простой способ оценить это - применить лог в обеих сторонах, чтобы получить линейную регрессию log Y = log A + r log X (вы, вероятно, найдете 0<r<1). Поэтому для каждого значения V я использовал бы функцию regress в matlab, применяемую к значениям log Y и log X, чтобы оценить параметры A и r. Эта функция называется Cobb-Douglas, и это очень полезно в экономике: http://en.wikipedia.org/wiki/Cobb%E2%80%93Douglas_production_function.

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

Если поведение V действительно линейно, возможно, вы можете оценить Y = A V X^r. Следовательно, вам необходимо оценить logY = log A + log V + r log X. В этом случае ваша зависимая переменная - это журнал Y и ваш независимый журнал переменных X и log V.

В обоих случаях я считаю, что функция регрессирования matlab автоматически не включает константу регрессии (A для нас). Поэтому не забудьте включить вектор с размером вашего образца в качестве независимой переменной,

Кроме того, если вы действительно хотите проверить, является ли поведение V линейным, просто оцените logY = log A + slog V + r log X ehich эквивалентен Y = AV^s X^r

Надеюсь, это поможет.

+0

Спасибо за ваш ответ. Да, забыть о сплошных линиях, поэтому синий игнорируется ;-) (или вы имеете в виду пунктирный, который ИМО не выглядит странным !?). Да, кривая всегда положительная и всегда от 0 до 255, вогнутая и биективная. Я попробую ваше предложение. – tim

+0

Спасибо, я теперь посмотрел его на wiki, функция выглядит очень похоже. Надеюсь, это поможет мне справиться с этим. Единственное: это было бы очень здорово, если бы я мог вытащить только одно уравнение, которое содержит 'V', потому что мне нужно повторно использовать его позже в другом скрипте, и поэтому было бы намного проще и меньше места для сохранения различных кривых. Это невозможно с этим подходом, не так ли? Насколько я понимаю, вы хотите, чтобы я поместил каждую кривую самостоятельно, не так ли? Но хорошо, я мог бы сделать это, а также сохранить только 'A' и' r' в матрице. – tim

+0

@bjoern, см. Обновленный ответ! Даниил – DanielTheRocketMan