当前位置: 首页 > news >正文

MATLAB完整问卷调查数据分析(附完整代码)

MATLAB完整问卷调查数据分析(附完整代码)

1.MATLAB完整问卷调查数据分析

完整的MATLAB问卷调查分析系统,包括数据生成、统计分析和可视化

2.MATLAB代码

%% MATLAB问卷调查分析系统
% 清除环境
clear; clc; close all;%% 1. 定义问卷结构和问题
fprintf('=== MATLAB问卷调查分析系统 ===\n\n');% 定义问卷问题
questions = {'1. 您的性别是?''2. 您的年龄属于哪个范围?''3. 您对产品的满意度如何?''4. 您会向朋友推荐我们的产品吗?''5. 您使用产品的频率是?''6. 您认为产品的价格如何?''7. 您主要通过什么渠道了解我们的产品?''8. 您对客户服务的评价是?''9. 您使用产品的时长是?''10. 您认为产品最需要改进的方面是?'};% 定义每个问题的选项
options = {{'男性', '女性'},...{'18岁以下', '18-25岁', '26-35岁', '36-45岁', '46岁以上'},...{'非常不满意', '不满意', '一般', '满意', '非常满意'},...{'绝对不会', '可能不会', '不确定', '可能会', '一定会'},...{'每天', '每周几次', '每周一次', '每月几次', '很少使用'},...{'非常昂贵', '比较贵', '合理', '比较便宜', '非常便宜'},...{'社交媒体', '朋友推荐', '广告', '搜索引擎', '其他'},...{'非常差', '较差', '一般', '较好', '非常好'},...{'少于1个月', '1-6个月', '6-12个月', '1-2年', '2年以上'},...{'功能', '价格', '设计', '性能', '客户服务'}};%% 2. 生成随机调查数据
rng(42); % 设置随机种子以保证结果可重现
n_respondents = 200; % 受访者数量% 初始化数据矩阵
survey_data = zeros(n_respondents, length(questions));fprintf('正在生成%d份随机调查数据...\n', n_respondents);for i = 1:length(questions)n_options = length(options{i});% 为每个问题生成随机选择,使用不同的分布使数据更真实switch icase 1 % 性别 - 接近均匀分布survey_data(:, i) = randi([1, n_options], n_respondents, 1);case 2 % 年龄 - 正态分布偏向年轻群体age_dist = [0.05, 0.25, 0.35, 0.25, 0.1]; % 概率分布survey_data(:, i) = randsample(1:n_options, n_respondents, true, age_dist);case {3, 4, 8} % 满意度/推荐意愿/服务评价 - 偏向正面pos_dist = [0.05, 0.1, 0.2, 0.4, 0.25];survey_data(:, i) = randsample(1:n_options, n_respondents, true, pos_dist);case 6 % 价格感知 - 偏向认为合理或稍贵price_dist = [0.1, 0.3, 0.4, 0.15, 0.05];survey_data(:, i) = randsample(1:n_options, n_respondents, true, price_dist);otherwise % 其他问题使用均匀分布survey_data(:, i) = randi([1, n_options], n_respondents, 1);end
endfprintf('数据生成完成!\n\n');%% 3. 基本统计分析
fprintf('=== 基本统计分析 ===\n\n');% 计算每个问题的统计结果
for i = 1:length(questions)fprintf('问题%d: %s\n', i, questions{i});counts = histcounts(survey_data(:, i), 1:(length(options{i})+1));for j = 1:length(options{i})percentage = (counts(j) / n_respondents) * 100;fprintf('  %s: %.1f%% (%d人)\n', options{i}{j}, percentage, counts(j));endfprintf('\n');
end%% 4. 数据可视化%% 图1: 整体满意度分布
figure('Position', [100, 100, 1200, 800]);subplot(2, 3, 1);
sat_data = survey_data(:, 3);
sat_counts = histcounts(sat_data, 1:6);
pie(sat_counts, {'非常不满意', '不满意', '一般', '满意', '非常满意'});
title('整体满意度分布', 'FontSize', 12, 'FontWeight', 'bold');
colormap(jet(5));%% 图2: 推荐意愿分布
subplot(2, 3, 2);
rec_data = survey_data(:, 4);
rec_counts = histcounts(rec_data, 1:6);
bar(rec_counts, 'FaceColor', [0.2, 0.6, 0.8]);
set(gca, 'XTickLabel', {'绝对不会', '可能不会', '不确定', '可能会', '一定会'});
xtickangle(45);
ylabel('人数');
title('推荐意愿分布', 'FontSize', 12, 'FontWeight', 'bold');
grid on;%% 图3: 年龄与满意度的关系
subplot(2, 3, 3);
age_groups = {'18岁以下', '18-25岁', '26-35岁', '36-45岁', '46岁以上'};
avg_satisfaction_by_age = zeros(1, 5);for i = 1:5age_mask = survey_data(:, 2) == i;avg_satisfaction_by_age(i) = mean(survey_data(age_mask, 3));
endplot(1:5, avg_satisfaction_by_age, 'o-', 'LineWidth', 2, 'MarkerSize', 8, ...'MarkerFaceColor', 'red');
set(gca, 'XTick', 1:5, 'XTickLabel', age_groups);
xtickangle(45);
ylabel('平均满意度 (1-5分)');
title('不同年龄段的平均满意度', 'FontSize', 12, 'FontWeight', 'bold');
grid on;
ylim([1, 5]);%% 图4: 性别与产品使用频率
subplot(2, 3, 4);
gender_labels = {'男性', '女性'};
frequency_labels = {'每天', '每周几次', '每周一次', '每月几次', '很少使用'};% 创建交叉表
gender_freq = zeros(2, 5);
for g = 1:2for f = 1:5gender_freq(g, f) = sum(survey_data(:, 1) == g & survey_data(:, 5) == f);end
endbar(gender_freq', 'grouped');
set(gca, 'XTickLabel', frequency_labels);
xtickangle(45);
ylabel('人数');
legend(gender_labels, 'Location', 'northeast');
title('性别与使用频率关系', 'FontSize', 12, 'FontWeight', 'bold');
grid on;%% 图5: 客户服务评价分布
subplot(2, 3, 5);
service_data = survey_data(:, 8);
service_counts = histcounts(service_data, 1:6);% 创建水平条形图
barh(service_counts, 'FaceColor', [0.85, 0.33, 0.1]);
set(gca, 'YTickLabel', {'非常差', '较差', '一般', '较好', '非常好'});
xlabel('人数');
title('客户服务评价分布', 'FontSize', 12, 'FontWeight', 'bold');
grid on;%% 图6: 需要改进的方面
subplot(2, 3, 6);
improvement_data = survey_data(:, 10);
improvement_counts = histcounts(improvement_data, 1:6);% 创建饼图
improvement_labels = {'功能', '价格', '设计', '性能', '客户服务'};
explode = [0, 0, 0.1, 0, 0]; % 突出显示设计
pie(improvement_counts, explode, improvement_labels);
title('需要改进的方面', 'FontSize', 12, 'FontWeight', 'bold');sgtitle('问卷调查分析结果', 'FontSize', 16, 'FontWeight', 'bold');%% 5. 相关性分析
fprintf('=== 相关性分析 ===\n\n');% 计算满意度与其他变量的相关性
correlation_vars = {'性别', '年龄', '推荐意愿', '使用频率', '价格感知', '服务评价', '使用时长'};
correlation_matrix = zeros(1, 7);correlation_matrix(1) = corr(survey_data(:, 3), survey_data(:, 1)); % 性别
correlation_matrix(2) = corr(survey_data(:, 3), survey_data(:, 2)); % 年龄
correlation_matrix(3) = corr(survey_data(:, 3), survey_data(:, 4)); % 推荐意愿
correlation_matrix(4) = corr(survey_data(:, 3), survey_data(:, 5)); % 使用频率
correlation_matrix(5) = corr(survey_data(:, 3), survey_data(:, 6)); % 价格感知
correlation_matrix(6) = corr(survey_data(:, 3), survey_data(:, 8)); % 服务评价
correlation_matrix(7) = corr(survey_data(:, 3), survey_data(:, 9)); % 使用时长fprintf('满意度与其他变量的相关系数:\n');
for i = 1:length(correlation_vars)fprintf('  %s: %.3f\n', correlation_vars{i}, correlation_matrix(i));
end%% 6. 创建相关性热图
figure;% 选择要分析的相关变量
corr_vars = survey_data(:, [3,4,5,6,8,9]); % 满意度,推荐,频率,价格,服务,时长
corr_labels = {'满意度', '推荐意愿', '使用频率', '价格感知', '服务评价', '使用时长'};corr_matrix = corr(corr_vars);imagesc(corr_matrix);
colorbar;
caxis([-1, 1]);% 添加数值标签
for i = 1:size(corr_matrix, 1)for j = 1:size(corr_matrix, 2)text(j, i, sprintf('%.2f', corr_matrix(i, j)), ...'HorizontalAlignment', 'center', 'FontSize', 10, ...'Color', ifelse(abs(corr_matrix(i, j)) > 0.5, 'white', 'black'));end
endset(gca, 'XTick', 1:length(corr_labels), 'XTickLabel', corr_labels);
set(gca, 'YTick', 1:length(corr_labels), 'YTickLabel', corr_labels);
xtickangle(45);
title('变量间相关性热图', 'FontSize', 14, 'FontWeight', 'bold');%% 7. 生成调查报告
fprintf('\n=== 调查报告摘要 ===\n\n');% 计算关键指标
avg_satisfaction = mean(survey_data(:, 3));
net_promoter_score = (sum(survey_data(:, 4) >= 4) - sum(survey_data(:, 4) <= 2)) / n_respondents * 100;
high_satisfaction_rate = sum(survey_data(:, 3) >= 4) / n_respondents * 100;fprintf('关键指标:\n');
fprintf('  • 平均满意度: %.2f/5.00\n', avg_satisfaction);
fprintf('  • 高满意度比例(4-5分): %.1f%%\n', high_satisfaction_rate);
fprintf('  • 净推荐值(NPS): %.1f\n', net_promoter_score);
fprintf('  • 客户服务好评率: %.1f%%\n', sum(survey_data(:, 8) >= 4) / n_respondents * 100);% 识别需要改进的方面
improvement_areas = options{10};
[max_improvement, max_idx] = max(improvement_counts);
fprintf('\n主要发现:\n');
fprintf('  • 最需要改进的方面: %s (%.1f%%的受访者选择)\n', ...improvement_areas{max_idx}, max_improvement/n_respondents*100);
fprintf('  • 满意度与推荐意愿高度相关: r = %.3f\n', correlation_matrix(3));
fprintf('  • 客户服务评价与满意度相关性: r = %.3f\n', correlation_matrix(6));fprintf('\n分析完成!共分析了%d份问卷数据。\n', n_respondents);%% 辅助函数
function result = ifelse(condition, true_val, false_val)
if conditionresult = true_val;
elseresult = false_val;
end
end

3.程序结果

=== MATLAB问卷调查分析系统 ===

正在生成200份随机调查数据...
数据生成完成!

=== 基本统计分析 ===

问题1: 1. 您的性别是?
男性: 51.0% (102人)
女性: 49.0% (98人)

问题2: 2. 您的年龄属于哪个范围?
18岁以下: 7.5% (15人)
18-25岁: 22.0% (44人)
26-35岁: 35.0% (70人)
36-45岁: 26.0% (52人)
46岁以上: 9.5% (19人)

问题3: 3. 您对产品的满意度如何?
非常不满意: 5.0% (10人)
不满意: 14.0% (28人)
一般: 12.5% (25人)
满意: 38.0% (76人)
非常满意: 30.5% (61人)

问题4: 4. 您会向朋友推荐我们的产品吗?
绝对不会: 2.5% (5人)
可能不会: 11.5% (23人)
不确定: 24.5% (49人)
可能会: 40.0% (80人)
一定会: 21.5% (43人)

问题5: 5. 您使用产品的频率是?
每天: 23.0% (46人)
每周几次: 21.0% (42人)
每周一次: 23.0% (46人)
每月几次: 16.5% (33人)
很少使用: 16.5% (33人)

问题6: 6. 您认为产品的价格如何?
非常昂贵: 10.0% (20人)
比较贵: 26.0% (52人)
合理: 37.0% (74人)
比较便宜: 20.5% (41人)
非常便宜: 6.5% (13人)

问题7: 7. 您主要通过什么渠道了解我们的产品?
社交媒体: 21.0% (42人)
朋友推荐: 19.0% (38人)
广告: 19.5% (39人)
搜索引擎: 22.5% (45人)
其他: 18.0% (36人)

问题8: 8. 您对客户服务的评价是?
非常差: 6.5% (13人)
较差: 10.0% (20人)
一般: 16.0% (32人)
较好: 45.0% (90人)
非常好: 22.5% (45人)

问题9: 9. 您使用产品的时长是?
少于1个月: 23.0% (46人)
1-6个月: 17.5% (35人)
6-12个月: 20.0% (40人)
1-2年: 20.0% (40人)
2年以上: 19.5% (39人)

问题10: 10. 您认为产品最需要改进的方面是?
功能: 19.5% (39人)
价格: 18.5% (37人)
设计: 19.0% (38人)
性能: 25.5% (51人)
客户服务: 17.5% (35人)

=== 相关性分析 ===

满意度与其他变量的相关系数:
性别: -0.132
年龄: -0.087
推荐意愿: 0.030
使用频率: -0.051
价格感知: 0.088
服务评价: 0.036
使用时长: 0.029

=== 调查报告摘要 ===

关键指标:
• 平均满意度: 3.75/5.00
• 高满意度比例(4-5分): 68.5%
• 净推荐值(NPS): 47.5
• 客户服务好评率: 67.5%

主要发现:
• 最需要改进的方面: 性能 (25.5%的受访者选择)
• 满意度与推荐意愿高度相关: r = 0.030
• 客户服务评价与满意度相关性: r = 0.036

分析完成!共分析了200份问卷数据。
>> 

http://www.dtcms.com/a/473778.html

相关文章:

  • Claude Code学习笔记(四)-助你快速搭建首个Python项目
  • 济南 制作网站 公司哪家好文登seo排名
  • Chrome 插件开发入门
  • 天津专业网站制作wordpress 多域名登陆
  • Docker简介及部署
  • 字符数组和字符串
  • 【TIDE DIARY 3】dify: chatflow; docker: exec
  • Docker Compose学习
  • 从iBizPMS到iBizPLM:一场研发管理平台的四年级架构革命
  • KingbaseES SQL Server模式扩展属性管理:三大存储过程实战指南
  • 5118网站怎么做的登录贵州省住房和城乡建设厅网站
  • 开源 C++ QT QML 开发(十六)进程--共享内存
  • 密码学系列 - 零知识证明(ZKP) - MSM运算
  • 厦门网站制作推广友链是什么
  • 大的网站建设公司好赣州章贡区最新招聘信息
  • 总结Vue.js等成功项目的生态建设经验
  • 西安北郊网站开发wordpress上传附件
  • mysql读写分离中间件——Atlas详解
  • jndi使用druid,在tomcat中配置druid监控
  • tomcat 默认编码的设置
  • 【mybatisPlus详解】
  • 回归与分类算法全解析:从理论到实践
  • 什么是 Qt 的元对象系统?
  • 【LeetCode】68. 文本左右对齐
  • 第十九周周报
  • Springboot 常见面试题汇总
  • 驻马店市做网站百度收录软件
  • 在实际项目中,Java 应用的性能瓶颈通常出现在哪些方面,又该如何有效地进行优化?
  • 08_Freqtrade配置与开发环境
  • C++实例