バックグラウンド
1900 年から 2009 年までのカナダ全土の気候データ (気温、降水量、積雪量) があります。基本的な Web サイトを作成しましたが、最も単純なページでは、ユーザーがカテゴリと都市を選択できます。その後、非常に単純なレポートが返されます (パラメーターと計算のセクションはありません)。
Web アプリケーションの主な目的は、一般の人々が意味のある方法でデータを探索できるように、単純なユーザー インターフェイスを提供することです。(数字のリストは一般の人々にとって意味がありません。また、あまりにも多くの入力を提供する Web サイトでもありません。) アプリケーションの第 2 の目的は、気候学者や他の科学者にデータを表示するためのより深い方法を提供することです。(もちろん、入力が多すぎます。)
ツールセット
データベースは、R (ほとんど) がインストールされた PostgreSQL です。レポートは 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
これは最適な解決策ではありません。気候がゆっくりではあるが着実な速度で変化しているという誤った印象を与えるからです。
質問
PostgreSQL のregr_slope
.
- 適用するより良い回帰モデルは何ですか?
- そのようなモデルを提供する CPAN-R パッケージは? (理想的には、を使用してインストール可能
apt-get
です。) - PostgreSQL 関数内で R 関数を呼び出すにはどうすればよいですか?
そのような関数が存在しない場合:
- 目的のフィットを生成する関数のどのパラメーターを取得しようとする必要がありますか?
- 最適な曲線をどのように表示することをお勧めしますか?
これは一般大衆が使用するための Web アプリであることに注意してください。データを分析する唯一の方法が R シェルからのものである場合、目的は達成されていません。(これは、これまで見てきたほとんどの R 関数には当てはまらないことを知っています。)
ありがとうございました!