SpatialMedian[{x1,x2,…}]
要素
の空間中央値を与える.
SpatialMedian[data]
data の異なるいくつかの形式についての空間中央値を与える.
SpatialMedian
SpatialMedian[{x1,x2,…}]
要素
の空間中央値を与える.
SpatialMedian[data]
data の異なるいくつかの形式についての空間中央値を与える.
詳細とオプション
- SpatialMedianは,幾何学的中央値,中間地点,1-中央値としても知られている.
- SpatialMedianは,ロバストな位置測度であり,データ内の各点までの距離が最小な点を与える.
- SpatialMedianは,重みがない場合は
に,重みがある場合は
に等しい. - データ data には次の形と解釈がある.
-
{x1,x2,…} 一変量数値データ {{x1,y1,…},{x2,y2,…},…} 多変量数値データ {GeoPosition[…],GeoPosition[…],…} 測地位置のリスト GeoPosition[…] 測地位置の配列 WeightedData[…] 重み付きのデータ - ユークリッド距離のもとでは,SpatialMedianは一次元の場合の中央値と一致する.多次元の場合は,点が同一線上にない場合は常に空間中央値は一意的である.
- 次のオプションを与えることができる.
-
AccuracyGoal Automatic 目標確度 DistanceFunction Automatic 使用する距離測度 MaxIterations Automatic 使用する反復の最大数 Method Automatic 使用するメソッド PrecisionGoal Automatic 目標精度 WorkingPrecision Automatic 内部計算に使われる精度 - デフォルトで,異なるタイプの要素について次の距離関数が使われる.
-
EuclideanDistance 数値データ GeoDistance 地理空間データ - Method{"InitialPoint"{x0,y0,…}}と設定すると.SpatialMedianの計算にカスタムの初期点を使うことができる.
例題
すべて開く すべて閉じる例 (3)
SpatialMedian[{{1., 3., 5.}, {7., 1., 2.}, {9., 3., 1.}, {4., 5., 6.}}]SpatialMedian[WeightedData[{{1., 3., 5.}, {-4., 1., 2.}, {3., 3., 1.}, {4., 5., 6.}}, {1., 3., 4., 5.}]]cities = {Entity["City", {"Cambridge", "Cambridgeshire", "UnitedKingdom"}], Entity["City", {"Oxford", "Oxfordshire", "UnitedKingdom"}], Entity["City", {"London", "GreaterLondon", "UnitedKingdom"}]};sm = SpatialMedian[GeoPosition[cities]]GeoGraphics[{GeoMarker[cities, Blue], GeoMarker[sm, Red]}]スコープ (5)
data = {{1, 2, 3, 4}, {8, 7, 6, 5}, {9, 4, 1, 3}};SpatialMedian[N[data]]SpatialMedian[N[data, 30]]空間中央値はWeightedDataに使うことができる:
wd = WeightedData[{{1., 3.}, {-4., 2.}, {3., 1.}, {5., 6.}}, {1., 3., 4., 5.}];SpatialMedian[wd]data = RandomReal[1, {10 ^ 6, 3}];SpatialMedian[data]weights = RandomReal[1, 10 ^ 6];SpatialMedian[WeightedData[data, weights]]data = Quantity[RandomReal[1, {6, 2}], "Meters"]SpatialMedian[data]cities = {Entity["City", {"Paris", "IleDeFrance", "France"}], Entity["City", {"Sydney", "NewSouthWales", "Australia"}], Entity["City", {"Boston", "Massachusetts", "UnitedStates"}], Entity["City", {"SanFrancisco", "California", "UnitedStates"}], Entity["City", {"Tokyo", "Tokyo", "Japan"}]};median = SpatialMedian[GeoPosition[cities]]GeoGraphics[{GeoMarker[cities, Blue], GeoMarker[median, Red]}, GeoProjection -> {"AzimuthalEquidistant", "Centering" -> median}]オプション (4)
DistanceFunction (2)
デフォルトで,EuclideanDistanceは数値データに使われる:
data = {{1.5, 3.}, {2.6, 4.}, {9.2, 5.}, {7.3, -5.}};SpatialMedian[data]ChessboardDistanceは,距離が最も大きい次元しか考慮しない:
SpatialMedian[data, DistanceFunction -> ChessboardDistance]DistanceFunctionはシンボルとして与えることができる:
dist[{u_, v_}, {x_, y_}] := Sqrt[3(u - x) ^ 2 + 2(v - y) ^ 2]data = {{1.5, .6}, {2, 0}, {1.25, 1.25}, {3., 0.3}};SpatialMedian[data, DistanceFunction -> dist]dist1 = Sqrt[{3, 2}.(#1 - #2) ^ 2]&;SpatialMedian[data, DistanceFunction -> dist1]Method (2)
data = {{-0.5835, -0.6525}, {-0.487, 0.4963}, {-0.4353, -0.319}, {-0.01874, 0.07936}, {0.466, -0.7498}};SpatialMedian[data, Method -> {"InitialPoint" -> {0., 0.}}]"NMinimize"とFindMinimumのメソッドオプションを使うことができる:
data = {{1.5, 3.}, {2.6, 4.}, {9.2, 5.}, {7.3, -5.}};SpatialMedian[data, Method -> "NMinimize"]指定のDistanceFunctionと一緒に使う:
SpatialMedian[data, DistanceFunction -> BrayCurtisDistance, Method -> "NMinimize"]SpatialMedian[data, DistanceFunction -> BrayCurtisDistance, Method -> {"NMinimize", Method -> "RandomSearch"}]SpatialMedian[data, DistanceFunction -> BrayCurtisDistance, Method -> "PrincipalAxis"]アプリケーション (8)
data = {{3., -5.}, {2., -5.}, {0., 2.}, {-4., -3.}, {10 ^ 8, -1.}, {8., -20000.}};SpatialMedian[data]極値はMeanに大きく影響する:
Mean[data]dist = MixtureDistribution[{0.98, 0.02}, {BinormalDistribution[0], BinormalDistribution[{0, 0}, {1000, 1000}, 0.5]}];BlockRandom[SeedRandom[1];
data = RandomVariate[dist, 10 ^ 3];]Histogram3D[data, PlotTheme -> "Detailed"]Meanで中心を推定する:
Mean[data]サンプル平均推定器は非ガウスデータについては大きく広がる.推定器の標準偏差は次のようになる:
StandardDeviation[dist] / Sqrt[Length[data]]SpatialMedianで中心を推定する:
SpatialMedian[data]ブート処理で広がりを見積もる.空間中央値は平均よりも広がりが小さい:
StandardDeviation[Table[SpatialMedian[RandomChoice[data, 10 ^ 3]], {10 ^ 3}]]GOOG,MSFT,FB,AAPL,INTCの5社の2015年における株価を五次元データとして考察する:
prices = TemporalData[TimeSeries, {{{{524.812404, 44.604322, 78.449997, 105.158716, 34.170616},
{513.872306, 44.194149, 77.190002, 102.196226, 33.785304}, {501.962262, 43.545497, 76.150002,
102.205846, 33.155645}, {501.102268, 44.098757, 76.15000 ...
3659385600, 3659644800, 3659731200, 3659817600, 3659904000, 3660249600, 3660336000,
3660422400, 3660508800}}}, 1, {"Continuous", 1}, {"Discrete", 1}, 5,
{ResamplingMethod -> {"Interpolation", InterpolationOrder -> 1}}}, True, 11.1];prices["ValueDimensions"]DateListPlot[prices, PlotLegends -> {"GOOG", "MSFT", "FB", "AAPL", "INTC"}]MeanとSpatialMedianを使って対数利益率を計算し,中心を推定する:
logreturns = Differences[Log[prices["Values"]]];mean = Mean[logreturns]smed = SpatialMedian[logreturns]MultivariateTDistributionでデータをフィットし,位置母数を抽出する:
edist = EstimatedDistribution[logreturns, MultivariateTDistribution[Array[x, 5], Array[s, {5, 5}], nu]];locs = First[edist]与えられた株価について,空間中央値推定器は経験的平均値よりも,多変量 t 分布の位置母数に近い推定を与える:
EuclideanDistance[locs, mean] > EuclideanDistance[locs, smed]data = {{5, -1}, {1, 3}, {-3, -2}};
fermatpoint = SpatialMedian[data]pts = data + (Differences[Append[data, First[data]]].RotationMatrix[Pi / 3]);
triangles = Triangle /@ MapThread[Append, {Delete[data, #]& /@ {3, 1, 2}, pts}];フェルマ点を幾何学的に作り,SpatialMedianの結果(赤)と比較する:
Graphics[{Yellow, Triangle[data], GrayLevel[.75], triangles, Black, Line /@ Transpose[{pts, data[[{3, 1, 2}]]}], Black, PointSize[Large], Point[Join[data, pts]], PointSize[0.03], Red, Point[fermatpoint]}]poly = Polygon[{{2., -5.}, {0., 2.}, {-4., -3.}, {-5, -7}}];
pts = RandomPoint[poly, 10 ^ 3];Graphics[{Lighter[Blue, .9], poly, Black, PointSize[Small], Point[pts]}]ランダムな点の空間中央値を計算することで,多角形の中心を推定する:
smed = SpatialMedian[pts]Graphics[{Lighter[Blue, .9], poly, Black, PointSize[Small], Point[pts], PointSize[0.06], Red, Point[smed]}]cities = CityData[{All, "California"}];
locations = GeoPosition[CityData[#, "Coordinates"]& /@ cities];unweighted = SpatialMedian[locations]人口で重みを付けた都市の位置に基づいてカリフォルニアの空間中央値を求める:
populations = CityData[#, "Population"]& /@ cities;weighted = SpatialMedian[WeightedData[locations, populations]]都市の位置(灰色),重みなしの空間中央値(赤),重みありの空間中央値(黒)を描画する:
legend = PointLegend[{Red, Black}, {"unweighted spatial median", "spatial median weighted by population"}, LegendMarkerSize -> Large];Legended[GeoGraphics[{EdgeForm[Black], FaceForm[Orange], Polygon[Entity["AdministrativeDivision", {"California", "UnitedStates"}]], GrayLevel[.4], PointSize[0.0075], Point[locations], Red, PointSize[0.04], Point[unweighted], Black, Point[weighted]}, GeoRange -> {{32, 43}, {-125, -114}}, ImageSize -> 350], Placed[legend, "Bottom"]]地球表面上で十分離れている地理位置については,空間中央値は選択された距離関数に大きく依存する:
cities = {Entity["City", {"Champaign", "Illinois", "UnitedStates"}], Entity["City", {"Boston", "Massachusetts", "UnitedStates"}], Entity["City", {"Oxford", "Oxfordshire", "UnitedKingdom"}], Entity["City", {"Tokyo", "Tokyo", "Japan"}], Entity["City", {"Linkoping", "Ostergotland", "Sweden"}], Entity["City", {"Lima", "Lima", "Peru"}], Entity["City", {"Bengaluru", "Karnataka", "India"}]};geopos = GeoPosition[cities]GeoPositionによる空間中央値:
geoMedian = SpatialMedian[geopos]EuclideanDistanceによる投影座標点の空間中央値:
euclidMedian = SpatialMedian[QuantityMagnitude@LatitudeLongitude[geopos]]legend = SwatchLegend[{Gray, Red, Blue}, {"Cities", "SpatialMedian", "EuclideanMedian"}];Legended[GeoGraphics[MapThread[GeoMarker[#1, #2]&, {{geopos, geoMedian, euclidMedian}, {Gray, Red, Blue}}]], legend]地理実体の重心は一様にサンプルされた地理位置の空間中央値を使って近似することができる.スペインの国多角形を得る:
region = Entity["Country", "Spain"];points = RandomGeoPosition[region, 10000];med = SpatialMedian[points]centralcity = GeoNearest["City", med]//FirstGeoGraphics[{Polygon[Entity["Country", "Spain"]], GeoMarker[med, Green], GeoMarker[centralcity, Red]}, GeoProjection -> "Mercator"]特性と関係 (5)
SpatialMedianは多変量位置測度である:
pts = {{3, -5}, {2, -5}, {0, 2}, {-4, -3}, {-3, 2}, {-5, -5}, {-1, -5}, {-1, -5}, {5, -1}, {-3, 3}, {10, -1}, {8, -2}};Graphics[{PointSize[0.03], StandardGray, Point[pts]}]spmed = SpatialMedian[pts]Meanもまた位置測度である:
mean = Mean[N@pts]Graphics[{PointSize[0.03], StandardGray, Point[pts], Red, PointSize[0.04], Point[spmed], Blue, Point[mean], Black, Text["Spatial Median", spmed - {0, .8}], Text["Mean", mean + {0, .8}]}, ImageSize -> 250]SpatialMedianは空間点の L1位置推定器である:
data = {{1., 3.}, {4., 6.}, {9., 2.}, {5., 5.}, {7., -2.}};spmed = SpatialMedian[data]FindMinimumによる定義からSpatialMedianを計算する:
sumofdists[x_, y_] := Total[Sqrt[Total[(Transpose[data] - {x, y}) ^ 2]]]Quiet@FindMinimum[sumofdists[x, y], {{x, 5}, {y, 5}}]ContourPlot[sumofdists[x, y], {x, 0, 10}, {y, -3, 7}, PlotLegends -> Automatic, Contours -> 10, Epilog -> {PointSize[Large], Black, Point[data], Red, PointSize[Large], Point[spmed], White, Text["Spatial Median", spmed + {0, -.7}]}]Mean(あるいは空間平均)は空間点の L2位置推定器である:
mean = Mean[data]FindMinimumによる定義からMeanを計算する:
sumofsquare[x_, y_] := Total[Total[(Transpose[data] - {x, y}) ^ 2]]Quiet@FindMinimum[sumofsquare[x, y], {{x, 5}, {y, 5}}]ContourPlot[sumofsquare[x, y], {x, 0, 10}, {y, -3, 7}, PlotLegends -> Automatic, Contours -> 10, Epilog -> {PointSize[Large], Black, Point[data], Red, PointSize[Large], Point[mean], White, Text["Mean", mean + {0, -.7}]}]SpatialMedianは,一変量データについてはMedianに等しい:
data = {1, 10, 3, 5, 6, -4};
SpatialMedian[data] == Median[data]data = WeightedData[{1, 10, 3, 5, 6, -4}, {1, 2, 3, 4, 5, 6}];
SpatialMedian[data] == Median[data]多変量データについてのManhattanDistanceにおけるSpatialMedianはMedianに等しい:
data = {{1.5, 3.}, {2.6, 4.}, {9.2, 5.}, {7.3, -5.}};SpatialMedian[data, DistanceFunction -> ManhattanDistance]Median[data]SpatialMedianは,距離の和を最小にする領域内の点を求める:
data = RandomVariate[NormalDistribution[], {10, 3}];MemberQ[data, SpatialMedian[data]]CentralFeatureは,距離の和を最小にするデータに属する点を求める:
MemberQ[data, CentralFeature[data]]CentralFeatureについての距離の和はSpatialMedianについてのそれ以上である:
sumofdists = Total[Sqrt[Total[(Transpose[data] - #) ^ 2]]]&;sumofdists[CentralFeature[data]] ≥ sumofdists[SpatialMedian[data]]テキスト
Wolfram Research (2017), SpatialMedian, Wolfram言語関数, https://reference.wolfram.com/language/ref/SpatialMedian.html.
CMS
Wolfram Language. 2017. "SpatialMedian." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/SpatialMedian.html.
APA
Wolfram Language. (2017). SpatialMedian. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/SpatialMedian.html
BibTeX
@misc{reference.wolfram_2026_spatialmedian, author="Wolfram Research", title="{SpatialMedian}", year="2017", howpublished="\url{https://reference.wolfram.com/language/ref/SpatialMedian.html}", note=[Accessed: 07-November-2026]}
BibLaTeX
@online{reference.wolfram_2026_spatialmedian, organization={Wolfram Research}, title={SpatialMedian}, year={2017}, url={https://reference.wolfram.com/language/ref/SpatialMedian.html}, note=[Accessed: 07-November-2026]}