Модели нелинейной регрессии в PostgreSQL с использованием R

Фон

У меня есть климатические данные (температура, осадки, глубина снега) по всей Канаде в период с 1900 по 2009 год. Я написал базовый веб-сайт, и самая простая страница позволяет пользователям выбирать категорию и город. Затем они возвращают очень простой отчет (без раздела параметров и расчетов):

Основная цель веб-приложения - предоставить простой пользовательский интерфейс, чтобы широкая публика могла исследовать данные осмысленными способами. (Список номеров не имеет смысла для широкой публики, как и веб-сайт, который предоставляетслишком много входов.) Вторичная цель приложения - предоставить климатологам и другим ученым более глубокие способы просмотра данных. (Конечно, используя слишком много входов.)

Набор инструментов

База данных - PostgreSQL с установленным R (в основном). Отчеты пишутся с использованием iReport и генерируются с использованием JasperReports.

Плохой выбор модели

В настоящее время модель линейной регрессии применяется к среднегодовым значениям суточных данных. Модель линейной регрессии вычисляется в функции PostgreSQL следующим образом:

SELECT 
  regr_slope( amount, year_taken ),
  regr_intercept( amount, year_taken ),
  corr( amount, year_taken )
FROM
  temp_regression
INTO STRICT slope, intercept, correlation;

Результаты возвращаются в JasperReports с помощью:

SELECT
  year_taken,
  amount,
  year_taken * slope + intercept,
  slope,
  intercept,
  correlation,
  total_measurements
INTO result;

JasperReports вызывает PostgreSQL, используя следующую параметризованную функцию анализа:

SELECT
  year_taken,
  amount,
  measurements,
  regression_line,
  slope,
  intercept,
  correlation,
  total_measurements,
  execute_time
FROM
  climate.analysis(
    $P{CityId},
    $P{Elevation1},
    $P{Elevation2},
    $P{Radius},
    $P{CategoryId},
    $P{Year1},
    $P{Year2}
  )
ORDER BY year_taken

Это не оптимальное решение, потому что оно создает ложное впечатление, что климат меняется медленно, но стабильно.

Вопросы

Использование функций, которые принимают два параметра (например, year [X] и amount [Y]), такие как PostgreSQLregr_slope:

Какую модель регрессии лучше применить?Какие пакеты CPAN-R предоставляют такие модели? (Устанавливается, в идеале, используяapt-get.)Как можно вызвать функции R внутри функции PostgreSQL?

Если таких функций не существует:

Какие параметры я должен попытаться получить для функций, которые будут производить желаемую подгонку?Как бы вы посоветовали показать кривую наилучшего соответствия?

Имейте в виду, что это веб-приложение для широкой публики. Если единственный способ проанализировать данные - это оболочка R, то цель была побеждена. (Я знаю, что это не относится к большинству функций R, на которые я смотрел до сих пор.)

Спасибо!

Ответы на вопрос(3)

Ваш ответ на вопрос