【超簡単】pythonでデータから線形近似式の切片、傾きを算出する方法(numpy演習)

f:id:yshgs_elec:20210212200201j:plain

この記事ではpythonを用いて、データから線形近似式を導く方法をご紹介したいと思います。

 

エクセルを使った処理内容からご紹介していきますので、pythonに詳しくない方でも、中身をイメージできるものになっているはずです。

 

早速やっていきましょう!

 

スポンサーリンク

エクセルで処理した場合の線形近似式の確認

まずはエクセル上で今回やりたい処理をしてみます。

 

今回は以下のように3×2のデータを準備しました。

このデータをもとに、A列をx軸、B列をy軸にした散布図を作成し、その散布図から線形近似線を追加します。そして最後に、グラフに数式を記載しました。

今回のデータから算出した線形近似式では、以下の画像のように

傾き=1.3077

切片=0.1282

という数値が算出されています。

pythonで計算した値を事前にエクセルで計算した結果

ここまでは皆さんが普段行っているような簡単なエクセル作業ですね。

 

ここからは、python上でこれらの数値を算出していく方法をご紹介します。

 

スポンサーリンク

python用にデータを準備する

python上で実際にこれをやってみる前に、まずは下準備として、pythonで読み込むために、データファイルを準備しておきましょう。

 

先ほど作ったエクセルファイルのA1からB3の領域をコピーし、テキストファイルに張り付けて保存すればOKです。

(私はdata.txtという名前で保存しています。)

 

出来上がったファイルは以下のようなものです。

これでpythonで処理をする前の下準備は完了です。

使用するデータを記述したテキストファイル

スポンサーリンク

pythonで実際に線形近似式の切片、傾きを算出する

前置きが長くなりましたが、本題であるpythonでの処理をやってみましょう。

 

pythonを起動するためのプロンプトを立ち上げ、先ほど作成したデータファイルが保存してあるディレクトリに移動しましょう。

 

移動できたら、pythonを起動します。

そして、以下を実行するだけです。

import numpy as np
data=np.loadtxt('data.txt')
x=data[:,0]
y=data[:,1]
a,b=np.polyfit(x,y,1)

これだけでaに傾き、bに切片が入っています。

 

ここで 今回の最重要ポイントをまとめておきます。

■np.polyfitという処理を実行することで、エクセルで言う線形近似式の傾きと切片を同時に算出することができる。

 

またその他にも、以下はしっかりと覚えておきたいですね。

〇np.loadtxtでテキストデータを数値の配列として読み込むことができる。

〇宣言した配列名+[:,*]で読み込んだ配列を列ごとに取り出すことができる。(*の部分は一番左を0としたときの列の順番)

 

最終的な実行結果は以下のようになりました。

実際に読み込んだ配列や、そこから取り出した列を表示させていますので、これを見ればどのような処理がなされているかよくわかると思います

pythonでnp.polyfitを実行した結果

そして、本題である切片と傾きですが、

python処理では以下のようになっていますね。

傾き(a)=1.30769…..

切片(b)=0.12820…..

 

これは最初にエクセルで算出した以下の数値と一致しています。

傾き=1.3077

切片=0.1282

というわけで、python上でもエクセルと全く同じ処理が簡単にできることが確認できましたね。

 

今回は3×2という非常に小さいデータでの演習でしたが、全く同じ処理内容で、大きなデータを扱うことも可能ですので、是非皆さんも習得しておきましょう。

 

スポンサーリンク

おわりに

というわけで今回はpythonを使って、データの切片傾きを算出する方法をご紹介しました。

いろいろな状況で活用できると思いますので、ぜひご活用ください。

 

このように、私のブログでは様々なスキルを紹介しています。

過去記事一覧

 

今は仕事中で時間がないかもしれませんが、ぜひ通勤時間中などに他の記事も読んでいただけると嬉しいです。
⇒興味をもった方は【ヒガサラ】で検索してみてください。

確実にスキルアップできるはずです。

 

最後に、この記事が役に立ったという方は、ぜひ応援よろしくお願いします。
↓ 応援ボタン
にほんブログ村 IT技術ブログへ
にほんブログ村

それではまた!

コメント

タイトルとURLをコピーしました