公開日: 11/25/2021

Interpolate

Interpolate()関数は、連続尺度データの線形補間、または2次元の連続尺度データの双線形補間を実行します。

最も単純な例では、この関数は、2点の間で与えられたxの値に対応するyの値を見つけます。Interpolate()は、データ点間の欠測値の計算に使用できます。

データ点は、引数を交互に並べた形で指定します。

Interpolate( x, x1, y1, x2, y2, ... );

また、x値とy値が含まれた行列として指定することもできます。

Interpolate( x, xmatrix, ymatrix );

20~25歳の人の身長を記録したデータセットがあるとします。ただし、23歳の人のデータがありません。23歳の人の身長を推定するには、補間を使用します。次の例は、評価したい値(23歳)、年齢(20~25歳)の行列、そして身長(インチ; 59~75)の行列を示しています。

Interpolate( 23, [20 21 22 24 25], [59 62 56 69 75] );

この式は、次の値を戻します。

62.5

62.5という値は、23がx値の22と24の真ん中であるように、y値の56と69の真ん中です。

複数の点を補間するには、第1引数で値の行列またはリストを指定します。

Interpolate( [23, 24.5], [20 21 22 24 25], [59 62 56 69 75] );

この式は、次の値を戻します。

[62.5, 72]

双線形補間

次のようにして、2次元で補間することも可能です。

Interpolate( {x, y}, xvector, yvector, zmatrix );

ここで、第1引数は2つの点を含むリストで、第2引数と第3引数はxy の値のグリッドを定義するベクトル、第4引数はデータ点の行列です。関数は、zmatrixの該当する象限の中で補間されたz値を見つけます。該当する象限を見つけるには、x値とy値をxvector引数およびyvector引数と比較します。

たとえば、2x3の行列で、第1行と第2行の中間、第2列と第3列の中間に位置する点を補間したいとします。

Interpolate( {0.5, 0.75}, [0 1], [0 0.5 1], [10 15 20, 12 16 18] );

この式は、次の値を戻します。

17.25

0.5というx値(行列の行)は0と1の中間、0.75というy値(行列の列)は0.5と1の中間に位置します。双線形補間は、2つの手順で見つけることができます。

1. 行列の各行で、第2列と第3列の中間にある点を見つけます。

行1: 15と20の中間は17.5です。

行2: 16と18の中間は17です。

2. この2つの点の中間にある点は、17.25を見つけます。

メモ:

x値は、昇順に並んでいなければなりません。たとえば、Interpolate(2,1,1,3,3)は2を戻しますが、Interpolate(2,3,3,1,1)は欠測値(.)を戻します。

Interpolate()は連続量のデータに最適で、Step()は離散値に適しています。Stepを参照してください。

より詳細な情報が必要な場合や、質問があるときは、JMPユーザーコミュニティで答えを見つけましょう (community.jmp.com).