Python数据分析-手游氪金程度调查问卷分析

Python数据分析-手游氪金程度调查问卷分析

一、研究背景

随着移动互联网的快速发展,手机游戏(手游)逐渐成为人们日常生活中的重要娱乐方式之一。尤其在全球疫情期间,居家隔离措施使得人们有了更多的时间接触和参与手游,这进一步推动了手游市场的蓬勃发展。然而,随着手游用户规模的不断扩大,玩家在游戏内消费(氪金)行为也日益频繁,引发了社会各界对手游氪金现象的广泛关注。本研究通过对手游氪金程度的调查与分析,旨在了解不同用户群体的氪金动机和行为,为游戏开发商优化产品设计和市场策略提供数据支持,同时也为相关部门制定合理的监管措施提供参考依据。

二、研究意义

理论意义:本研究通过对手游用户氪金行为的调查,分析了不同群体在氪金动机、氪金频率及氪金后悔情况等方面的差异,为手游消费行为理论研究提供了新的数据和视角,丰富了游戏经济学和行为经济学的研究内容。实际意义:本研究结果可以为手游开发商提供宝贵的用户行为数据,帮助他们更好地理解玩家的需求和偏好,从而优化游戏设计和运营策略,提升用户体验和满意度。此外,本研究还可以为政府和相关监管机构提供决策参考,促进手游市场的健康发展。

三、实证分析

数据和完整代码

首先读取数据

import pandas as pd

import matplotlib.pyplot as plt

import seaborn as sns

import matplotlib.pyplot as plt

%matplotlib inline

plt.rcParams['font.sans-serif'] = ['KaiTi'] #中文

plt.rcParams['axes.unicode_minus'] = False #负号

# 读取数据

file_path = '手游氪金程度调查_119_97.xlsx'

df = pd.read_excel(file_path)

接下来进行数据清洗

# 数据清洗

columns_to_drop = ['序号', '提交答卷时间', '所用时间', '来源', '来源详情', '来自IP','19、感谢您填写此次问卷,祝您生活愉快!']

df_cleaned = df.drop(columns=columns_to_drop)

df_cleaned.replace('(跳过)', pd.NA, inplace=True)

df_cleaned.dropna(thresh=15, inplace=True)

统计不同阶段的参与者分布

stage_distribution = df_cleaned['1、您目前的所处阶段是?'].value_counts()

stage_distribution

统计性别分布

gender_distribution = df_cleaned['2、你的性别是'].value_counts()

gender_distribution

接下来可视化

plt.figure(figsize=(6, 6))

gender_distribution.plot.pie(autopct='%1.1f%%', colors=['skyblue', 'lightcoral'])

plt.title('性别分布')

plt.ylabel('')

plt.show()

统计游戏偏好分布

game_preference_distribution = df_cleaned['4、对于手游和端游,您的偏好是?'].value_counts()

game_preference_distribution

绘制游戏偏好分布柱状图

plt.figure(figsize=(10, 6))

sns.countplot(y='4、对于手游和端游,您的偏好是?', data=df_cleaned, palette='muted')

plt.title('游戏偏好分布')

plt.xlabel('人数')

plt.ylabel('偏好')

plt.show()

统计氪金行为及原因

绘制氪金原因分布柱状图

plt.figure(figsize=(10, 6))

sns.countplot(y='10、您氪金的原因是', data=df_cleaned, palette='coolwarm')

plt.title('氪金原因分布')

plt.xlabel('人数')

plt.ylabel('原因')

plt.show()

绘制氪金动机分布柱状图

探索性数据分析(EDA):

了解数据的基本统计信息。 探索各个特征之间的关系。 聚类分析:

对用户进行聚类,找出不同类型的玩家。 使用K-means聚类等算法。

PCA的选择

目的:PCA用于降维,主要是将高维数据转换为低维数据,同时保留尽可能多的原始数据的变异信息。 选择主成分的数量:n_components=2 是常见的选择,因为二维数据可以很容易地可视化。如果数据集有更多的显著主成分,可以增加 n_components 的数量。

K-means聚类 K-means的选择

目的:K-means是一种无监督学习算法,目的是将数据点划分到K个聚类中,使得每个聚类内的数据点尽可能相似,而不同聚类之间的数据点尽可能不同。 选择K的数量:K=3 是一个初始选择,可以通过“肘部法则”(Elbow Method)或“轮廓系数”(Silhouette Score)来科学地确定最优的K值。

from sklearn.cluster import KMeans

from sklearn.decomposition import PCA

# 对分类变量进行标准化处理

X = df_cleaned[categorical_columns]

# 计算累计解释方差比

pca = PCA()

pca.fit(X)

explained_variance = pca.explained_variance_ratio_

# 绘制累计解释方差比图

plt.figure(figsize=(10, 6))

plt.plot(range(1, len(explained_variance) + 1), explained_variance.cumsum(), marker='o', linestyle='--')

plt.title('累计解释方差比')

plt.xlabel('主成分数量')

plt.ylabel('累计解释方差比')

plt.show()

使用肘部法则确定最佳K值

inertia = []

silhouette_scores = []

K_range = range(2, 10)

for k in K_range:

kmeans = KMeans(n_clusters=k, random_state=42)

kmeans.fit(X)

inertia.append(kmeans.inertia_)

silhouette_scores.append(silhouette_score(X, kmeans.labels_))

# 绘制肘部法则图

plt.figure(figsize=(10, 6))

plt.plot(K_range, inertia, marker='o', linestyle='--')

plt.title('肘部法则确定最佳K值')

plt.xlabel('聚类数量K')

plt.ylabel('聚类内平方和')

plt.show()

绘制轮廓系数图

绘制聚类结果

# 确定K值

optimal_k = 4 # 根据肘部法则或轮廓系数确定

# 使用K-means聚类

kmeans = KMeans(n_clusters=optimal_k, random_state=42)

clusters = kmeans.fit_predict(X_pca)

# 将聚类结果添加到原数据中

df_cleaned['Cluster'] = clusters

# 绘制聚类结果

plt.figure(figsize=(10, 6))

sns.scatterplot(x=X_pca[:, 0], y=X_pca[:, 1], hue=clusters, palette='viridis')

plt.title('K-means 聚类结果')

plt.xlabel('主成分1')

plt.ylabel('主成分2')

plt.show()

四、结论

通过对数据的分析,我们发现以下主要结论:

用户阶段和氪金行为:大学生和其他年轻用户群体是手游氪金的主要人群,他们的氪金动机主要集中在提升游戏体验、获取更强装备和喜欢的角色等方面。性别差异:女性玩家在氪金动机上更倾向于购买好看的皮肤和增加社交机会,而男性玩家则更多地关注游戏的竞技性和装备升级。氪金后悔情况:大多数玩家在氪金后不会感到后悔,认为一时满足的消费是值得的,但也有部分玩家会有不太值得的感觉。疫情影响:疫情期间,玩家的游戏时间普遍增加,部分玩家在游戏上的花费也有所上升,这说明在特殊时期,手游成为了重要的娱乐和消遣方式。

相关文章

康塔多的摇车和弗鲁姆的坐踩,爬坡哪个更有效?
365体育怎么打不开了

康塔多的摇车和弗鲁姆的坐踩,爬坡哪个更有效?

📅 08-26 👁️ 9533
《率土之滨》退出同盟方法
365bet亚洲城

《率土之滨》退出同盟方法

📅 09-15 👁️ 4337
专著CIP号解析:国内出版物的法定标识
365体育怎么打不开了

专著CIP号解析:国内出版物的法定标识

📅 08-17 👁️ 746