Gis and r 008のソースを表示
提供: OSGeo.JP Wiki
←
Gis and r 008
移動:
案内
、
検索
あなたには「このページの編集」を行う権限はありません。理由は以下の通りです:
この操作は、以下のグループに属する利用者のみが実行できます:
登録利用者
。
ページの編集を始める前にメールアドレスの確認をする必要があります。
個人設定
でメールアドレスを設定し、確認を行ってください。
このページのソースの閲覧やコピーができます:
[[Gis_and_r|表紙へ戻る]] ※Wiki記法の書き方については http://ja.wikipedia.org/wiki/Help:%E6%97%A9%E8%A6%8B%E8%A1%A8 を参照。 ==第8回GIS+R勉強会== ===参加者=== *清野(リアル) *瀬戸(リアル) *小野原(リアル) *東郷(リアル) ===報告=== ====小野原==== SDA4PP該当ページ: *[http://sites.google.com/site/vkepoglu/Home/quadrat-test Quadrat Test] *[http://sites.google.com/site/vkepoglu/Home/kstest] =====Chi-Squared Dispersion Test for Spatial Point Pattern Based on Quadrat Counts(区画法に基づく空間ポイントパターンのためのカイ二乗検定)===== 点データの上に任意の大きさのグリッドを作成し、各セルごとにカイ二乗検定を行い事象の集中度合いを数値化する。<br/> 東大CSISの浅見泰司先生のページが参考になる http://ua.t.u-tokyo.ac.jp/okabelab/yasami/SIA-j.html *Description (説明) 区画法に基づく点分布が与えられた時のランダム性をカイ二乗検定にて検定する。 あるいは、不均質なあてはめてポワソンモデルのカイ二乗検定を行う。 *Usage (使用法) quadrat.test(X, ...) ## S3 method for class 'ppp': quadrat.test(X, nx=5, ny=nx, ..., xbreaks=NULL, ybreaks=NULL, tess=NULL) ## S3 method for class 'ppm': quadrat.test(X, nx=5, ny=nx, ..., xbreaks=NULL, ybreaks=NULL, tess=NULL) *Arguments(引数) '''X''' 適合度検定に従っている点分布(クラス"ppp"のオブジェクト)。あるいは、検定が行われたあてはめ点過程モデル(クラス"ppm"のオブジェクト)。<br/> '''nx,ny''' x,y軸方向への区画の値。xbreaksやybreaksとは共用不可。<br/> '''...''' Ignored.<br/> '''xbreaks''' 任意値。数値で与えられる区画の境界のx座標。nxとは共用不可。<br/> '''ybreaks''' 任意値。数値で与えられる区画の境界のy座標。nyとは共用不可。<br/> '''tess''' モザイク状の配列(クラス"tess"のオブジェクト)。区画を決定する。nx, ny, xbreaks, ybreaksとは共用不可。 *Details(詳細) これらの関数は、区画法に基づいた点過程モデルの適合度検定をカイ二乗分布を用いて行う。 区画法の関数は、点分布(クラス"ppp")や点過程モデル(クラス"ppm")の方法にて一般的である。。<br/> ・もし、Xが点分布であれば、データ分布がランダム性の検定(不変のポアソン点過程)である帰無仮説の検定を行う。 ・もしXがあてはめ点過程モデルであれば、ポアソン点過程モデルを行うのが良い。このモデルのデータはモデルオブジェクトから引き出され、あてはめられたり、検定のデータ点分布として扱われ、あてはめられる。Xによって指定された(不均質な)ポアソン点過程をしめすデータ分布は帰無仮説の検定を行う。 両方の場合において、観察窓はタイルに分けられ、各々のタイルのデータ位置の数は数えられ、quadratcountとして説明される。区画はデフォルトでは長方形、もしくは、独立変数tessによって指定される任意の形の範囲である。各々の区画法で引き出された点の数も計算され、ランダム性の検定(最初のケース)によってもしくは、あてはめモデル(2つ目のケース)によって決定される。そして、区画の適合度をカイ二乗検定にて行う。 返し値はクラス"htest"のオブジェクトである。検定の結果を理解するために表示する。 返し値は特別なクラス"quadrat.test"にも属する。オブジェクトを表示させることは区画を表示し、数とピアソンの残差を観測値と予測値を注釈としてつける。例も参照。 *Value(値) クラス"htest"のオブジェクトである。chisq.testも参照。 返し値も特別なクラスである"quadrat.test"のオブジェクトであり、このクラスをプロットする方法がある。例も参照。 =====Kolmogorov-Smirnov Test for Point Process Model (点過程モデルのためのコルモゴロフ・スミノフ検定)===== *Description(説明) ポアソン点過程モデルの適合度検定としてコルモゴロフ・スミノフ検定を行う。 この検定は空間的な共分散の値の観測分布と期待分布の比較を行う。 *Usage(使用法) kstest(...) ## S3 method for class 'ppp': kstest(X, covariate, ..., jitter=TRUE) ## S3 method for class 'ppm': kstest(model, covariate, ..., jitter=TRUE) *Arguments(引数) '''X''' 点分布(クラス"ppp"のオブジェクト) '''model''' あてはめ点過程モデル(クラス"ppm"のオブジェクト) '''covariate''' 検定に基づく空間的な共分散。イメージ(クラス"im"のオブジェクト)もしくは関数。 '''...''' 独立変数は検定を操作するためのks.testを通る。 '''jitter''' 論理的なflag。もし、jitter=TRUEであれば、共分散の値は検定の同じ値を避けるためにランダムに散らばらせる。 *Details(詳細) これらの関数は、点分布データにあてはまった位置点過程モデルの適合度検定を行う。データポイントにおける空間的な共分散の値の観測分布とモデル下の同じ値の期待分布は、コルモゴロフ・スミノフ検定を用いて比べる。 関数ks.testは点パターン("ppp")と点過程モデル("ppm")の方法としては一般的である。 ・もし、Xが点パターンのデータセット(クラス"ppp"のオブジェクト)であれば、ks.test(X,...)はこのデータセットの不変のポアソン点過程(ランダム性の検定,CSR)の検定を行う。 ・もし、モデルが、点過程モデルに適合するなら、ks.testはこのあてはめモデルのための検定を行う。この場合、モデルはポアソン点過程であるべきである。 このテストは、典型的なコルモゴロフスミノ検定を用いることで、データ点の空間的な共分散の値の観測分布とモデル下の同じ共分散の予測分布を比較することで行う。そこで、このテストのための空間的な共分散を定めなければならない。 独立変数の共分散は関数(x,y)もしくはピクセル画像(空間的関数の値を含むクラス"im"のオブジェクト)であるべきである。もし、共分散がある一つの画像であるとすれば、それは、数の値であるべきであり、その領域はモデルの観測窓を覆うべきである。もし、共分散が関数であるならば、座標の方向を示す二つの独立変数xとyは想定されるべきである。そして、xとyとして同じ長さの数の方向を返すべきである。 始めのオリジナルデータ点パターンはモデルから導き出される。これらのデータ点における共分散の値は集められる。 あてはめモデル下の共分散の値の予測分布は次のように計算される。観測窓におけるすべての地点の共分散の値は、あてはめモデルの点過程の度合いによって重みづけられ、ewcdfを用いたF関数の累積分布を収集することで数値を与えられる。 全体の変化の確率は次のように与えられる。オリジナルデータ点の共分散の値は、0と1の間の数を取る予測累積分布関数Fによって変形される。もし、モデルが正しければ、これらの数はi.i.d.不変のランダム数である。コルモゴロフスミノフ検定の均一性は、ks.testを用いることで適用される。 この検定は、 Berman (1986)によって(空間的データという文脈において)初めて説明された。Baddeley et al (2005)も参照。 返し値は仮説検定の結果を含むクラス"htest"のオブジェクトである。このクラスの出力はテスト成果の有益な概要を与える。 返し値は(文章でない)プロット法であるクラス"kstest"にも属する。プロット法は、データ点における経験による累積分布関数の共分散と、共分散の値に反してプロットされたモデル下の予測累積分布関数の共分散である。 独立変数のjitterは同じ点を避けるために共分散値がランダムに乱れるよう制御する。もし、オリジナルのデータが共分散の中に同じ点を含み、jitter=FALSEなら、コルモゴロフスミノフ検定はks.testで実行される。正確なp値を計算することはできない。これを避けるためにもしjitter=TRUEがなら、共分散の各値は小さなランダム値を加えることによって乱される。乱れは普通、共分散の値の範囲の100番目と同じであり、標準偏差に割り当てられる。これは同値を妨げ、p値を正確にする。とても力のロスがある。 *Value(値) クラス"htest"のオブジェクトは検定の結果を含んでいる。詳細はks.test参照。返し値は検定の有益な概要を与え出力することができる。値はプロット方法があるクラス"kstest"にも所属する。 *Warning(注意) 検定の結果は少量の変わりやすさのランダムを含む。なぜなら、(標準で)座標は同じ値を避けるためにランダムに乱されるからである。それゆえに、もし、kstestが二回実行されたなら、p値は同じにならない。このふるまいを避けるために jitter=FALSEにセットする。 ====東郷==== SDA4PP該当ページ: *[http://sites.google.com/site/vkepoglu/Home/adaptive Adaptive Density] *[http://sites.google.com/site/vkepoglu/Home/kriging Kriging] =====Intensity Estimate of Point Pattern Using Tessellation(平面充填を用いたポイントパターンの強度推定)===== *Description (説明) ポイントパターンの強度関数の適応推定値を計算する。 *Usage (使用法) adaptive.density(X, f = 0.1, ..., nrep = 1) *Arguments(引数) '''X''' ポイントパターンデータセット("ppp"クラスのオブジェクト)<br/> '''f''' 元データから除去され、かつ強度推定のための平面充填の測定に使用されるであろうデータポイントの少数値(0~1の間)<br/> '''...''' 結果の解像度を測定するas.imに渡される引数<br/> '''nrep''' 無作為に抽出されたプロシージャーの独立反復数 *Details(詳細) density.ppp の代用となる関数。ポイントパターンデータセットの強度関数の推定値を算定する。 データセットXはA・B2つのパターンに無作為に分割される。Aは元データの少数値f、Bは1-fで割り切れる。サブパターンAはディリクレ分割(dirichletを参照)の構成に使用。サブパターンBはポイント集計のために保持。ディリクレ分割のすべてのタイルについて、そこに該当するBのポイント数を集計したのち同じタイルの面積で割り、そのタイル内におけるパターンBの強度推定値を得る。この推定値は、タイル内のXの強度推定値を得るために1-fで除される。結果は強度推定値のピクセルイメージ=平面充填タイルの連続面として出力される。 nrepの値を1より大きくすると、無作為抽出のプロシージャーがその回数だけ繰り返され、結果がより平均に近づく。 *Value(値) データセットXの強度推定値を持つピクセルイメージ("im"クラスのオブジェクト)。 =====Kriging (Ordinary, Simple, Universal, Block)(クリギング(標準、簡易、ユニバーサル、ブロック))===== *Description (説明) 与えられたデータセット上で自動クリギングを実行。autofitVariogramを用いて自動的にヴァリオグラムが描かれる。 *Usage (使用法) autoKrige(formula, input_data, new_data, data_variogram = input_data, block = 0, model = c("Sph", "Exp", "Gau", "Ste"), kappa = c(0.05, seq(0.2, 2, 0.1), 5, 10), fix.values = c(NA,NA,NA), remove_duplicates = TRUE, verbose = FALSE, GLS.model = NA, start_vals = c(NA,NA,NA), ...) *Arguments(引数) '''formula''' 独立変数の線形モデルとして従属変数を決める公式。独立変数の名称が'z'の場合、標準・簡易クリギングでは公式'z~1'を用いる(簡易クリギングでは'beta'も定義)。'z'が'x'と'y'に相関する場合、ユニバーサルクリギングでは公式'z~x+y'を用いる。<br/> '''input_data''' 内挿されるデータを含むSpatialPointsDataFrameクラスのオブジェクト。<br/> '''new_data''' 位置予測を含むspオブジェクト。new_dataはポイント/グリッド/ポリゴンセットが使用可能。n/aを含むものは付加。このオブジェクトが用意されていない場合はデフォルト値が計算される。この計算は、input_dataの凸包を求めその中に約5,000個のセルを配置することで求められる。<br/> '''data_variogram''' オプション。空間内挿のためのヴァリオグラム作成に使用する別のデータセットを用意。<br/> '''block''' ブロックサイズの指定に用いるパラメータ。 例)c(1000,1000)<br/> '''model''' 自動ヴァリオグラム適合中に検証されるモデルの一覧。<br/> '''kappa''' 自動ヴァリオグラム適合中に検証されるMaternモデルパラメータ平滑化のための値の一覧。<br/> '''fix.values''' ヴァリオグラムのパラメータを特定の値に固定するのに使用。3つの長さをもつリストから成る。これによりnugget(エラー)、range(ヴァリオグラムがsillに達する距離)、sill(分散)の固定値が特定される。n/aに対し値を設定するとその値は固定されていないことになる。その場合autofitVariogramに回される。<br/> '''remove_duplicates''' 論理。input_dataから重複するポイントを取り除く。データセットが膨大な時に使用可。<br/> '''verbose''' 論理。真ならばautoKrigeが適合プロセス上に追加の情報を出す。<br/> '''GLS.model''' ヴァリオグラムモデルがこのパラメータによって判断される場合、一般化最小二乗法のサンプルが計算される。<br/> '''start_vals''' ヴァリオグラム適合のための初期値をだすのに使用可。nugget、range、sillの固定値を順番通りにそれぞれ特定。n/aに対し値を設定するとその値は自動的に選択される。<br/> '''...''' gstatのkrige関数に渡される引数。 *Details(詳細) autoKrigeでautofitVariogram関数(ヴァリオグラムモデルを与えられたデータセットに適合させる)を呼び出す。このモデルとデータはnew_dataにおける位置予測に使用される。必須の引数はinput_dataのみ。 最も単純な方法は autoKrige(meuse) この場合標準クリギングがinput_dataの第1カラムに実行される。 autoKrige()によりinput_dataとnew_dataの座標系がチェックされる。どちらか一方がn/aの場合、もう一方の投影法に指定される。投影法が互いに異なる場合や一方が投影座標系でない場合(緯度経度座標系など)はエラーが生じる。このエラーはデータが地理座標にあるときgstatが球面状の距離を使用しているために起こるが、ヴァリオグラムモデルはふつう球体上で非負定値行列ではなく、適応モデルも使用不可能(Edzer Pebesma on r-sig-geo)。 ※指数モデル(Pow)を使用する際の注意:最初のrangeは1に設定。 *Value(値) 以下の結果を含むautoKrigeオブジェクトを返す: 内挿(予測、分散、標準偏差)('''krige_output''') サンプルヴァリオグラム('''exp_var''') byautofitVariogramに適合したヴァリオグラムモデル('''var_model''') サンプルヴァリオグラムと適合したヴァリオグラムモデルの平方和('''sserr''') ===議論・今後の課題=== *spatstat関係のマニュアルが未翻訳 (http://www.spatstat.org/ 参照) → オンラインマニュアルを翻訳 or 和訳を探す *分析対象(≒各自の研究分野)に適した分析方法(ここでは空間補間手法など)を見極める必要あり。<br/>例えばクリギングの場合、限られた点データから目に見えない地下水位や地盤沈下量の状況を連続面として推定するのが目的であるから、内挿するz値は垂直方向のデータである必要がある。 *カイ二乗検定における'''期待値'''='''全体の件数/セル総数''' *Rのコマンドラインから使用すれば、グリッド範囲を任意の値に設定できるが、SDA4PPのGUI経由だと、処理しようとするデータが散布する範囲を最大値として勝手に設定されてしまう。 *区画法ではポイントパターンのランダム性を検定するためにカイ二乗検定を行うが、求められた結果をどう分析するか? ===参考文献=== *奥貫圭一「GISを活用した空間分析(総説)」地学雑誌,VOL.117 No.2,2008,pp.324-340 [http://www.geog.or.jp/journal/back/pdf117-2/p324-340.pdf PDF] ===今後の方針=== ===次回の予定=== 日時:1月31日(月)19:00~<br/> 場所:京都のどこか
Gis and r 008
に戻る。
案内メニュー
表示
ページ
議論
ソースを表示
履歴
個人用ツール
アカウント作成
ログイン
案内
メインページ
最近の更新
おまかせ表示
ヘルプ
検索
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報