R言語クラスター分析と主成分分析最終報告書

1. 今学期学習した知識のまとめ

今学期の多変量統計解析の授業では、クラスター分析と主成分分析(または因子分析)という2つの重要なデータ分析手法を学びました。これらの研究を通じて、私は以下の点について理解を深めることができました。

  1. クラスター分析: クラスター分析は、データセット内の個人を異なるグループまたはクラスターに分割するために使用される教師なし学習方法であり、同じグループ内の個人には類似性があり、異なるグループ間の個人には類似性があります。距離測定、クラスタリング アルゴリズム (K 平均法、階層的クラスタリングなど)、クラスタリング結果を評価するための指標 (シルエット係数、デイビス ボールディン指数など) を含むクラスタリング アルゴリズムの基本原理について学びました。 。実践的な運用と事例分析を通じて、市場セグメンテーションやソーシャルネットワーク分析などのクラスター分析の応用シナリオをさらに理解しました。

  2. 主成分分析 (または因子分析): 主成分分析は、データをよりよく理解して解釈するために、高次元データから最も関連性の高い特徴を抽出するために使用される次元削減手法です。固有値分解、主成分の選択と解釈、主成分スコアなど、主成分分析の基本原理と手順を学びました。同時に、根底にある潜在的な因子構造を探索するための主成分分析の拡張として因子分析についても学びました。実際のケースとデータセットの分析を通じて、データの次元削減と変数の解釈における主成分分析と因子分析の応用についてさらに理解しました。

学習の過程で、データの類似性と相違、固有値と固有ベクトル、主成分と因子など、クラスター分析と主成分分析 (または因子分析) の間に混同されやすい概念がいくつかあることがわかりました。これらの概念の違いやつながりを理解するために、関連する教科書や論文を読み、事例や事例分析を参照し、クラスメートと議論し、コミュニケーションを図りました。これらの取り組みを通じて、これらの概念の意味と応用が徐々に明確になってきました。

2. 問題調査

研究の背景

電気通信業界では、チャーンとも呼ばれる顧客離れが重要な課題です。チャーンとは、企業のサービスを離れたり、利用をやめたりした顧客を指します。新規顧客を獲得するよりも既存顧客を失う方がコストがかかるため、顧客の離脱は通信会社にとって重要な問題です。したがって、顧客離れの原因を理解し、顧客離れのパターンを予測することは、通信会社にとって非常に重要です。

研究目的

この調査の目的は、クラスター分析、主成分分析、因子分析などの手法を適用して通信会社の顧客離れデータセットを分析し、顧客グループ間の類似性、主な影響要因、考えられるパターンを明らかにすることです。具体的な目標には次のようなものがあります。

  • さまざまな顧客グループを特定する: クラスター分析を通じて、顧客をさまざまなグループに分類し、潜在的な顧客セグメントを発見します。これは、通信会社がさまざまなグループの行動やニーズの違いを理解するのに役立ちます。

-主な影響要因を特定する: 主成分分析または要因分析を通じて、顧客離れに最も影響を与える変数を特定します。これは、主要な要因を特定し、それに応じて顧客離れを減らすための戦略を策定するのに役立ちます。

  • 意思決定サポートの提供: 顧客離脱データセットを分析することにより、顧客離脱に関する洞察と意思決定サポートを通信会社に提供します。これは、さまざまな顧客セグメントに合わせてカスタマイズされたマーケティング戦略や顧客維持計画を開発するのに役立ちます。

意義

この調査は、企業が顧客の行動、ニーズ、好みをより深く理解するのに役立つため、電気通信業界にとって非常に重要です。クラスター分析を通じて、企業はさまざまな顧客グループの特性に基づいてパーソナライズされた製品やサービスを提供できるため、顧客満足度やロイヤルティが向上します。主成分分析 (因子分析) は、企業がどの因子が最も重要であるかを判断し、より具体的に顧客維持対策を目標にできるようにするのに役立ちます。さらに、顧客離れを正確に予測することで、企業はタイムリーに行動を起こし、既存の顧客を維持し、ビジネス リスクを軽減するための措置を講じることができます。

3. データセット

Telco Churn Dataset は、顧客の解約問題を調査するために使用される電気通信業界のデータセットです。このデータ セットには、電気通信会社に関する顧客情報が含まれており、研究者やアナリストが顧客離れのパターンと影響要因を理解できるように設計されています。

データ セットには 7,043 の観測値 (行) と 21 の変数 (列) が含まれており、個人情報、サービスの購読、アカウント情報、支払いステータスなど、各顧客に関する情報の複数の側面を提供します。

以下は、通信事業者のチャーン データ セットの変数と説明の表です。

変数名 説明する
顧客ID 顧客の一意の識別子
性別 お客様の性別
高齢者 高齢の顧客かどうかを示します。1 ははい、0 はいいえを意味します
相棒 顧客にはパートナーがいますか?
扶養家族 クライアントには家族がいますか?
在職期間 お客様と当社との契約期間(月単位)
電話サービス 電話サービスに加入しているかどうか
複数行 顧客が複数回線サービスに加入しているかどうか
インターネットサービス 顧客が加入しているインターネット サービスの種類
オンラインセキュリティ オンラインセキュリティサービスに加入しているかどうか
オンラインバックアップ 顧客がオンライン バックアップ サービスに加入しているかどうか
デバイスの保護 顧客が端末保護サービスに加入しているかどうか
技術サポート 顧客がテクニカル サポート サービスに加入しているかどうか
ストリーミングテレビ 顧客がストリーミング TV サービスに加入しているかどうか
ストリーミング映画 顧客がストリーミング映画サービスに加入しているかどうか
契約 お客様の契約形態
ペーパーレス請求 顧客がペーパーレス請求書を選択するかどうか
支払方法 お客様のお支払い方法
月額料金 お客様の月額費用
総料金 お客様の総コスト累積値
チャーン 顧客がいなくなったかどうか。「はい」は顧客がいなくなったことを意味し、「いいえ」は顧客がいなくなったことを意味します。

このデータセットは、顧客離れの問題を研究するための広範な情報を提供し、クラスター分析、主成分分析、因子分析、顧客離れ予測モデルの構築など、さまざまな分析およびモデリング タスクを実行するために使用できます。このデータセットの分析は、通信会社が潜在的な顧客セグメントを特定し、顧客のニーズと行動を理解し、顧客離れを減らし、顧客満足度を向上させ、ビジネスを持続的に発展させるための対応する戦略を開発するのに役立ちます。

4. 主成分分析

主成分分析の考え方は、線形変換を通じて元の高次元データを新しい低次元空間にマッピングし、新しい空間内のデータの分散を最大化することです。具体的には、主成分分析では、データセットの共分散行列または相関行列を計算することで、元の変数の線形結合であり、互いに独立した新しい変数セット (主成分と呼ばれる) が見つかります。これらの主成分は分散の大きさに従って順序付けされているため、最初のいくつかの主成分でデータの分散のほとんどを説明できますが、後続の主成分に含まれる分散は徐々に減少します。

主成分分析の手順は次のとおりです。

  • 標準化されたデータ: 元のデータの各変数のスケールが異なる場合、各変数が同じスケールになるようにデータを標準化する必要があります。
  • 共分散行列の計算: 標準化されたデータに基づいて、変数間の共分散行列または相関行列を計算します。
  • 固有値と固有ベクトルを計算する: 共分散行列に対して固有値分解または特異値分解を実行して、固有値と対応する固有ベクトルを取得します。
  • 主成分の選択: 固有値のサイズに従って、上位 k 個の最大固有値に対応する固有ベクトルを主成分として選択します。
  • データ変換: 元のデータを選択した主成分に投影して、新しい低次元データ表現を取得します。
library(tidyverse)
theme_set(theme(plot.title = element_text(hjust = 0.5)))
data <- read.csv("WA_Fn-UseC_-Telco-Customer-Churn.csv",stringsAsFactors = TRUE)
data <- data %>% select(-customerID) %>% drop_na() 
# 将因子变量转换为数字变量
df <- data %>% mutate_if(is.factor, as.numeric)
# 计算相关系数矩阵
cor_matrix <- cor(df)
# 绘制相关系数图
library(corrplot)
corrplot(cor_matrix, method = "circle",  tl.cex = 0.7)

相関係数行列の各変数と「Churn」(顧客離れ)の間の相関係数に基づいて、次の結論を導き出すことができます。

  • 性別と顧客離れの間の相関係数はゼロに近く、性別が顧客離れに与える影響は小さい、つまり、性別と顧客離れの間には明らかな線形関係がないことを示しています。

  • SeniorCitizen と顧客の解約率との相関係数は正であり、年配の顧客ほど解約する可能性が高いことを示しています。

  • パートナーおよび扶養家族と顧客の解約との間の相関係数はどちらも負であり、パートナーや扶養家族のいない顧客は解約する可能性が高いことを示しています。

  • さまざまなサービスの中で、顧客離れとの相関が高いのは、OnlineSecurity、OnlineBackup、DeviceProtection、TechSupport です。相関係数の負の値は、これらのサービスを利用しない顧客は離脱する可能性が高いことを示します。

  • 契約タイプ (契約) と顧客の解約の相関係数は負であり、月払い契約 (月々) を選択した顧客は解約する可能性が高いことを示しています。 2 年間) の顧客はより安定しています。

  • 電子請求 (ペーパーレス請求) を選択するかどうかと顧客の離脱との相関係数は正であり、電子請求を選択した顧客は離脱する可能性が高いことを示しています。

  • 支払方法 (PaymentMethod)、月額料金 (MonthlyCharges)、および合計料金 (TotalCharges) と顧客離れの間の相関係数は約 0.1 であり、顧客離れに対する影響が小さいことを示しています。

library(psych)

# 执行主成分分析
pca_result <- principal(df)

# 提取主成分分析结果的特征值
eigenvalues <- pca_result$values

# 计算方差解释比例
variance_explained <- eigenvalues / sum(eigenvalues)

# 绘制碎石图
plot(1:length(variance_explained), variance_explained, type = "b", pch = 19, xlab = "主成分个数", ylab = "方差解释比例", main = "主成分分析的碎石图")

ここに画像の説明を挿入します

スクリー プロットの変曲点と主成分によって説明される全体の分散の割合 (約 80%) に基づいて、主成分の数は 3 に選択されました。

# 执行主成分分析并设置3个主成分
pca_result <- principal(df, nfactors = 3)
pca_result$loadings

主成分分析を実行した後、主成分の結果を抽出して解釈できます。以下は、抽出された主成分の結果とその解釈です。

  • 主成分 1 (RC1) の負荷は 3.958、説明された分散の割合は 0.198、累積分散の割合は 0.198 です。
  • 主成分 2 (RC2) の負荷は 2.828、説明された分散の割合は 0.141、累積分散の割合は 0.339 です。
  • 主成分 3 (RC3) の負荷は 1.569、説明された分散の割合は 0.078、累積分散の割合は 0.418 です。

これらのデータは、各主成分によってどの程度の分散が説明されるのか、また累積分散のどのような割合が占めるのかを示します。この例では、主成分 1 (RC1) は分散の約 19.8% を説明し、主成分 2 (RC2) は分散の約 14.1% を説明し、主成分 3 (RC3) は分散の約 7.8% を説明します。累積分散比率は、最初の n 個の主成分によって説明される分散比率の合計を表し、3 つの主成分の場合、累積分散比率は 41.8% になります。

# 获取主成分权重
weights <- pca_result$weights


# 计算每个样本的主成分得分
scores <- as.matrix(df) %*% weights

# 计算每个样本的总主成分得分
total_scores <- rowSums(scores)

# 将总的主成分得分添加到数据框中
data$score <- total_scores

5. クラスター分析

まず、クラスター化する必要がある変数を選択し、データを前処理します。次に、K 平均法クラスタリング アルゴリズムを使用して標準化されたデータをクラスタ化し、クラスタの数を 3 に選択します。

df1 <- data %>% filter(Churn == "Yes")  %>%  select(-Churn,-score)
df2 <- df1 %>% mutate_if(is.factor, as.numeric)  


scaled_data <- scale(df2)

# 执行聚类分析
k <- 3  # 设置聚类数目
set.seed(123)
kmeans_result <- kmeans(scaled_data, centers = k)

# 提取聚类结果
cluster_labels <- kmeans_result$cluster

# 将聚类结果添加到原始数据集
clustered_data <- bind_cols(df1, cluster = cluster_labels)
cluster1_data <- clustered_data %>% filter(cluster == 1)
summary(cluster1_data)

ここに画像の説明を挿入します

クラスターカテゴリ1の分析結果は以下のとおりです。

  • 性別: クラスターカテゴリー 1 の顧客は女性 113 名、男性 142 名です。
  • SeniorCitizen: クラスター カテゴリ 1 では、顧客の約 21.6% が高齢者です。
  • パートナー: クラスター カテゴリ 1 には配偶者のいない顧客が 82 名、配偶者のいる顧客が 173 名います。
  • 依存関係: クラスター カテゴリ 1 には、依存関係のないクライアントが 178 台、依存関係のあるクライアントが 77 台あります。
  • 保有期間: クラスター カテゴリ 1 の顧客の平均更新期間は約 53.6 か月で、最小値は 14 か月、最大値は 72 か月です。

クラスター カテゴリ 1 の他の変数の統計は次のとおりです。

  • 電話サービス: 12 人の顧客は電話サービスを利用しておらず、243 人の顧客は電話サービスを利用しています。
  • 複数回線: 58 人の顧客は複数回線サービスを利用しておらず、185 人の顧客は複数回線を利用しています。
  • インターネット サービス: 53 人の顧客が DSL を利用しており、195 人の顧客がファイバーを利用しており、7 人の顧客はインターネット サービスを利用していません。
  • 他の変数の配布と説明 (OnlineSecurity、OnlineBackup、DeviceProtection、TechSupport、StreamingTV、StreamingMovies、Contract、PaperlessBilling、PaymentMethod、MonthlyCharges、TotalCharges)。
cluster2_data <- clustered_data %>% filter(cluster == 2)
summary(cluster2_data)

ここに画像の説明を挿入します

ここに画像の説明を挿入します

ご提供いただいた情報に基づいて、クラスター カテゴリ 2 の分析結果は次のとおりです。

  • 性別: クラスターカテゴリー 2 の顧客は女性 454 名、男性 447 名です。
  • SeniorCitizen: クラスター カテゴリ 2 では、顧客の約 15.4% が高齢者です。
  • パートナー: クラスター カテゴリ 2 には配偶者のいない顧客が 687 名、配偶者のいる顧客が 214 名います。
  • 依存関係: クラスター カテゴリ 2 には、依存関係のないクライアントが 740 台、依存関係のあるクライアントが 161 台あります。
  • 保有期間: クラスター カテゴリ 2 の顧客の平均更新期間は約 7.092 か月で、最小値は 1 か月、最大値は 61 か月です。

クラスター カテゴリ 2 の他の変数の統計は次のとおりです。

  • 電話サービス: 145 の顧客は電話サービスを利用しておらず、756 の顧客は電話サービスを利用しています。
  • 複数回線: 605 人の顧客は複数回線サービスを利用しておらず、151 人の顧客は複数回線を利用しています。
  • インターネット サービス: 378 人の顧客が DSL を利用しており、419 人の顧客がファイバーを利用しており、104 人の顧客はインターネット サービスを利用していません。
  • 他の変数の配布と説明 (OnlineSecurity、OnlineBackup、DeviceProtection、TechSupport、StreamingTV、StreamingMovies、Contract、PaperlessBilling、PaymentMethod、MonthlyCharges、TotalCharges)。
cluster3_data <- clustered_data %>% filter(cluster == 3)
summary(cluster3_data)

ここに画像の説明を挿入します
ここに画像の説明を挿入します

クラスターカテゴリ3の分析結果は以下のとおりです。

  • 性別: クラスターカテゴリー 3 の顧客は女性 372 名、男性 341 名です。
  • SeniorCitizen: クラスター カテゴリ 3 では、顧客の約 39.55% が高齢者です。
  • パートナー: クラスター カテゴリ 3 には配偶者のいない顧客が 431 名、配偶者のいる顧客が 282 名います。
  • 依存関係: クラスター カテゴリ 3 には、依存関係のないクライアントが 625 台、依存関係のあるクライアントが 88 台あります。
  • 保有期間: クラスター カテゴリ 3 の顧客の平均更新期間は約 19 か月で、最小値は 1 か月、最大値は 66 か月です。

クラスター カテゴリ 3 の他の変数の統計は次のとおりです。

  • 電話サービス: 13 の顧客には電話サービスがありませんが、700 の顧客には電話サービスがあります。
  • 複数回線: 186 人の顧客は複数回線サービスを利用しておらず、514 人の顧客は複数回線を利用しています。
  • インターネット サービス: 28 人の顧客が DSL を利用しており、683 人の顧客がファイバーを利用しており、2 人の顧客はインターネット サービスを利用していません。
  • 他の変数の配布と説明 (OnlineSecurity、OnlineBackup、DeviceProtection、TechSupport、StreamingTV、StreamingMovies、Contract、PaperlessBilling、PaymentMethod、MonthlyCharges、TotalCharges)。

おすすめ

転載: blog.csdn.net/weixin_54707168/article/details/132661078