Python
 Computer >> コンピューター >  >> プログラミング >> Python

Rデータフレームの包括的な統計要約を取得する方法(fBasicsパッケージ活用)

Rの標準的な summary() 関数では、最小値、第1四分位数、中央値、平均値、第3四分位数、最大値といった基本的な統計量しか得られません。しかし、実務的なデータ分析では、分散、標準偏差、歪度、尖度といった記述統計も頻繁に必要となります。

fBasicsパッケージの basicStats() 関数を使う

fBasics パッケージの basicStats() 関数を使用すると、これらすべての統計量を一度に取得できます。

パッケージの読み込み

library(fBasics)

実践例1: mtcars データセット

R標準搭載の mtcars データを用いて確認してみましょう。

データの確認

data(mtcars)
head(mtcars, 20)

包括的な統計要約の取得

basicStats(mtcars)

出力結果の見方

実行すると、各変数(mpg, cyl, disp, hp, drat, wt, qsec, vs, am, gear, carb)ごとに以下の統計量が出力されます。

  • nobs: 有効観測数
  • NAs: 欠損値の数
  • Minimum / Maximum: 最小値 / 最大値
  • 1. Quartile / 3. Quartile: 第1四分位数 / 第3四分位数
  • Mean / Median: 平均値 / 中央値
  • Sum: 総和
  • SE Mean: 平均の標準誤差
  • LCL Mean / UCL Mean: 平均の下側/上側信頼限界(デフォルト95%)
  • Variance / Stdev: 分散 / 標準偏差
  • Skewness: 歪度(分布の非対称性)
  • Kurtosis: 尖度(分布の尖り具合)

実践例2: trees データセット

樹木の幹周り、高さ、材積を記録した trees データでも同様に利用できます。

data(trees)
head(trees, 20)
basicStats(trees)

出力には Girth(幹周り)、Height(高さ)、Volume(材積)それぞれについて、上記と同じ統計量が表示されます。

実践例3: pressure データセット

水の蒸気圧データ pressure でも試せます。

data(pressure)
head(pressure, 20)
basicStats(pressure)

temperature(温度)と pressure(圧力)の両変数について、歪度・尖度を含む詳細な統計が得られます。圧力の分布は正の歪度(右裾が長い)と高い尖度を示しており、指数的な増加傾向が統計的にも確認できます。

まとめ

  • summary() では不足する統計量(分散、標準偏差、歪度、尖度、信頼区間など)を一括取得可能
  • fBasics::basicStats() は数値型データフレーム/行列に直接適用できる
  • 探索的データ分析(EDA)の初期段階でデータの分布特性を素早く把握するのに最適

より高度な記述統計や可視化と組み合わせたい場合は、psych::describe()skimr::skim()summarytools::dfSummary() なども併せて検討するとよいでしょう。

  1. 【Matplotlib】折れ線グラフの線の色をデータインデックスに応じて変化させる方法

    Matplotlibで折れ線グラフを描く際、データのインデックス(位置)に応じて線の色を変えたいケースはよくあります。例えば、sin波の傾き(微分値)によって色を変化させれば、グラフの変化の様子をひと目で把握できます。このような「多色折れ線」を実現するには、LineCollectionを使用します。以下に具体的な手順とサンプルコードを紹介します。実装手順図のサイズを設定し、サブプロット間・周囲の余白(パディング)を調整します。NumPyを使ってx座標とy座標のデータポイントを作成します。隣接点の中間値からdydx(傾きに相当する値)を計算します。NumPyを使ってpoints(各点の座標)とs

  2. Pythonでディレクトリ内の拡張子「.txt」のファイルをすべて見つける方法

    Pythonでは、os.listdirメソッドを使うことで、指定したディレクトリ内のすべてのファイルやフォルダを一覧として取得できます。取得したリストをフィルタリングしてファイルのみを抽出し、さらに拡張子を確認することで、目的の「.txt」ファイルだけを取り出すことができます。os.listdirとendswithを使う方法>>> import os>>> file_list = [f for f in os.listdir(.) if os.path.isfile(os.path.join(., f)) and f.endswith(.txt)]>&