ライブ エディターを使用した探索的プログラミングの高速化
ライブ エディターを使用して探索的プログラミングを高速化する方法の例を以下に示します。この例では、ライブ エディターを使用して以下を行う方法を示します。
出力を、その生成元コードとともに表示する。
プログラムを複数のセクションに分割してコードのブロックを個別に評価する。
可視化を含める。
コントロールを使用してパラメーター値を試す。
結果を要約して共有する。
ハイウェイでの死亡率データの読み込み
ライブ エディターには、出力がその生成元コードとともに表示されます。セクションを実行するには、[ライブ エディター] タブに移動して、[セクションの実行] ボタンを選択します。また、セクションの左端へマウスを動かすと表示される青いバーをクリックして実行することもできます。
この例では、ハイウェイでの死亡率データについて調べます。データの読み込みから始めます。変数は、table の列ヘッダーとして表示されます。
load fatalities
fatalities(1:10,:)
ans=10×8 table
longitude latitude deaths drivers vehicles vehicleMiles alcoholRelated urbanPopulation
_________ ________ ______ _______ ________ ____________ ______________ _______________
Wyoming -107.56 43.033 164 380.18 671.53 9261 54 65.226
District_of_Columbia -77.027 38.892 43 349.12 240.4 3742 12 100
Vermont -72.556 44.043 98 550.46 551.52 7855 20 38.196
North_Dakota -99.5 47.469 100 461.78 721.84 7594 35 55.807
South_Dakota -99.679 44.272 197 563.3 882.77 8784 76 51.923
Delaware -75.494 39.107 134 533.94 728.52 9301 48 80.021
Montana -110.58 46.867 229 712.88 1056.7 11207 100 54.031
Rhode_Island -71.434 41.589 83 741.84 834.5 8473 41 90.936
New_Hampshire -71.559 43.908 171 985.77 1244.6 13216 51 59.181
Maine -69.081 44.886 194 984.83 1106.8 14948 58 40.206
死亡率の計算
ライブ エディターではプログラムを、テキスト、コード、および出力を含むセクションに分割できます。新しいセクションを作成するには、[ライブ エディター] タブに移動して、[セクション区切り] ボタンをクリックします。セクションのコードは個別に実行できるため、プログラムを記述しながら、考えた内容を簡単に試してみることができます。
走行距離 100 万マイルあたりの死亡率を計算します。これらの値から、最低の死亡率を示す州と最大の死亡率を示す州を見つけることができます。
states = fatalities.Properties.RowNames; rate = fatalities.deaths./fatalities.vehicleMiles; [~, minIdx] = min(rate); % Minimum accident rate [~, maxIdx] = max(rate); % Maximum accident rate disp([states{minIdx} ' has the lowest fatality rate at ' num2str(rate(minIdx))])
Massachusetts has the lowest fatality rate at 0.0086907
disp([states{maxIdx} ' has the highest fatality rate at ' num2str(rate(maxIdx))])
Mississippi has the highest fatality rate at 0.022825
死亡率の分布
プログラムに可視化を含めることができます。出力と同様に、プロットと Figure がそれらの生成元コードとともに表示されます。
棒グラフを使用して、州の死亡率の分布を確認することができます。死亡率が走行距離 100 万マイルあたり 0.02 を超えている州は 11 州あります。
histogram(rate,10) xlabel('Fatalities per Million Vehicle Miles') ylabel('Number of States')
データの相関の検出
ライブ エディターで複数のパラメーター値を試して結果がどう変化するかを確認することで、データをすばやく調べることができます。コントロールを追加してパラメーター値を対話形式で変更します。コントロールを追加するには、[ライブ エディター] タブに移動し、[コントロール] ボタンをクリックして使用可能なオプションから選択します。
データを使って試行し、table 内の変数がハイウェイの死亡率と相関関係にあるかどうかを確認できます。たとえば、ハイウェイの死亡率は、都市の人口割合が高い州ほど低くなっているようです。
dataToPlot = "urbanPopulation"; close % Close any open figures scatter(fatalities.(dataToPlot),rate) % Plot fatalities vs. selected variable xlabel(dataToPlot) ylabel('Percent Fatalities per Million Vehicle Miles') hold on xmin = min(fatalities.(dataToPlot)); xmax = max(fatalities.(dataToPlot)); p = polyfit(fatalities.(dataToPlot),rate,1); % Calculate & plot least squares line plot([xmin xmax], polyval(p,[xmin xmax]))
米国地図への死亡率と都市化のプロット
結果をまとめて、ライブ スクリプトを同僚と共有します。ライブ スクリプトを使用して、解析を再作成したり、拡張することができます。また、解析を HTML、Microsoft® Word、または PDF のドキュメントとして保存し、公開することもできます。
この解析に基づき、米国大陸地図の死亡率と都市人口のプロットを使用して所見をまとめることができます。
load usastates.mat figure geoplot([usastates.Lat], [usastates.Lon], 'black') geobasemap darkwater hold on geoscatter(fatalities.latitude,fatalities.longitude,2000*rate,fatalities.urbanPopulation,'filled') c = colorbar; title(c,'Percent Urban')