Коэффициент линейной регрессии - PullRequest
1 голос
/ 21 сентября 2011

Учитывая список точек, мне нужно добиться простой линейной регрессии по ним.Эта часть довольно проста, и примеры кода можно найти во многих местах.

Моя проблема заключается в определении коэффициента регрессии (измерения того, насколько точки вписываются в линию).Как я могу определить такой фактор программно, используя Lua?

Ответы [ 3 ]

2 голосов
/ 21 сентября 2011
e$ lua
Lua 5.1.4  Copyright (C) 1994-2008 Lua.org, PUC-Rio
> function calculate_MSE (points, slope, offset)
>>     local SE = 0
>>     local num_pts = 0
>>     for x,y in pairs(points) do
>>         local p = slope * x + offset
>>         local err = y - p
>>         SE = SE + err * err
>>         num_pts = num_pts + 1
>>     end
>>     return SE / num_pts
>> end
> return calculate_MSE({1, 2, 3}, 1, 0)                                                                                                             0> return calculate_MSE({1, 2, 3}, 1, 1)1> return calculate_MSE({1, 2, 3}, 2, 1)9.6666666666667>
0
> return calculate_MSE({1, 2, 3}, 1, 1)
1
> return calculate_MSE({1, 2, 3}, 2, 1)
9.6666666666667
> 
1 голос
/ 21 сентября 2011

Может быть http://en.wikipedia.org/wiki/Pearson_product-moment_correlation_coefficient - это то, что вы хотите.

1 голос
/ 21 сентября 2011

Не уверен, что вы подразумеваете под: коэффициент регрессии, но, как сказано в этой статье в Википедии: MSE

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

это выглядит как фактор, который вы ищете.

Подробную информацию о расчетах MSE вы можете найти в статье в Википедии.

Надеюсь, я понял вашу проблему, и она помогает

...