ホームページ >バックエンド開発 >Python チュートリアル >Pythonによる説明因子分析アルゴリズムを詳しく解説

Pythonによる説明因子分析アルゴリズムを詳しく解説

WBOY
WBOYオリジナル
2023-06-10 18:18:09917ブラウズ

説明 因子分析は、データセット内の潜在的な因子を探索するためによく使用される古典的な多変量統計分析手法です。たとえば、説明因子分析を使用して、ブランド認知度に影響を与える因子を特定したり、特定の市場における消費者の行動に影響を与える因子を発見したりできます。 Python ではさまざまなライブラリを利用して説明因子分析を実装することができますが、この記事では Python を使用してこのアルゴリズムを実装する方法を詳しく紹介します。

  1. 必要なライブラリをインストールする

Python で説明因子分析を実装するには、まず必要なライブラリをいくつかインストールする必要があります。その中で、データの処理と計算には NumPy ライブラリを使用し、データの読み込みと処理には Pandas ライブラリを使用し、説明因子分析の実行には statsmodels ライブラリを使用する必要があります。

Python のパッケージ マネージャー (pip など) を使用して、これらのライブラリをインストールできます。ターミナルで次のコマンドを実行します:

!pip install numpy pandas statsmodels
  1. Load data

因子分析をデモンストレーションするために、この記事では UCI 機械学習ライブラリのクレジット カード データ セットを使用します。 。このデータセットには、各顧客のクレジット カードと、口座残高、信用限度額などのその他の財務データが含まれています。データセットは次の URL からダウンロードできます: https://archive.ics.uci.edu/ml/datasets/default of Credit Card client

ダウンロード後、Pandas ライブラリを使用してデータセットをロードする必要があります。データセットを Python に組み込みます。この記事では、次のコードを使用してデータを読み込みます。

import pandas as pd

# 加载数据
data = pd.read_excel('default of credit card clients.xls', skiprows=1)

# 删除第一列(ID)
data = data.drop(columns=['ID'])

ファイルの最初の行は に属していないため、skiprows=1 を使用してスキップすることに注意してください。実際のデータ。次に、drop 関数を使用してデータセットの最初の列を削除しました。この列には ID のみが含まれており、データ分析には役に立ちません。

  1. データ処理

説明因子分析を実行する前に、まずデータに対して何らかの処理を実行する必要があります。この例によれば、顧客の信用履歴に対して例示的な要因分析を実行する必要があります。したがって、データセットを信用履歴とその他の財務データに分割する必要があります。この記事では、調査対象の変数として信用履歴を考慮します。

# 获取信用记录数据
credit_data = data.iloc[:, 5:11]

# 对数据进行标准化(均值0,标准差1)
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
credit_data = pd.DataFrame(scaler.fit_transform(credit_data), columns=credit_data.columns)

iloc 関数を使用して、データセットから信用記録列を選択します。次に、StandardScaler 関数を使用して信用記録データを標準化します (平均は 0、標準偏差は 1)。標準化は因子分析を説明するために必要なステップです。

  1. 説明因子分析の実行

データ処理が完了したら、statsmodels ライブラリを使用して説明因子分析を実行できます。この記事では、最尤推定アルゴリズムを使用して因子の数を決定します。

# 运行说明因子分析
from factor_analyzer import FactorAnalyzer

# 定义模型
fa = FactorAnalyzer()
# 拟合模型
fa.fit(credit_data)
# 获取因子载荷
loadings = pd.DataFrame(fa.loadings_, index=credit_data.columns,
                        columns=['Factor {}'.format(i) for i in range(1, len(credit_data.columns)+1)])
# 获取方差贡献率
variance = pd.DataFrame({'Variance': fa.get_factor_variance()}, 
                         index=['Factor {}'.format(i) for i in range(1, len(credit_data.columns)+1)])

上記のコードでは、最初に FactorAnalyzer オブジェクトをインスタンス化し、次に fit 関数を使用してデータを近似しました。また、loadings_ を使用して、各変数と各因子間の相関の強さの尺度である因子負荷量を取得します。 get_factor_variance を使用して分散寄与率を取得します。これは、各要因が全体の分散を説明する程度を測定するために使用されます。最終的なコードでは、pd.DataFrame を使用して結果を Pandas データフレームに変換します。

  1. 結果分析

アルゴリズムに従って、因子負荷量と分散寄与率の 2 つの指標を取得できます。これらの指標を使用して、根本的な要因を特定できます。

以下は、因子負荷と分散寄与率の出力結果です:

           Factor 1   Factor 2   Factor 3   Factor 4   Factor 5   Factor 6
LIMIT_BAL  0.847680   -0.161836  -0.013786   0.010617   -0.037635  0.032740
SEX       -0.040857  0.215850   0.160855   0.162515   -0.175099  0.075676
EDUCATION  0.208120   -0.674727  0.274869   -0.293581  -0.086391  -0.161201
MARRIAGE  -0.050921  -0.028212  0.637997   0.270484   -0.032020  0.040089
AGE       -0.026009  0.028125   -0.273592  0.871728   0.030701   0.020664
PAY_0     0.710712   0.003285   -0.030082  -0.036452  -0.037875  0.040604
           Variance
Factor 1  1.835932
Factor 2  1.738685
Factor 3  1.045175
Factor 4  0.965759
Factor 5  0.935610
Factor 6  0.104597

負荷行列では、因子 1 で信用記録の負荷値がより高いことがわかります。ファクターは信用履歴と強い相関関係があるということです。分散寄与率に関しては、最初の要因が分散に最も大きく寄与していることがわかります。これは、信用記録が要因 1 についてより強い説明力を持っていることを意味します。

したがって、要因 1 が顧客の信用記録に影響を与える主な要因であると考えることができます。

  1. 概要

この記事では、Python で例示的な因子分析アルゴリズムを実装する方法を紹介しました。まずデータを準備し、次に statsmodels ライブラリを使用して説明因子分析を実行し、最後に因子負荷量や分散寄与率などの指標を分析しました。このアルゴリズムは、市場調査や人事管理など、多くのデータ分析アプリケーションで使用できます。このようなデータを扱う場合は、因子分析アルゴリズムを試してみる価値があります。

以上がPythonによる説明因子分析アルゴリズムを詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。