R语言数据探索和分析23-公共物品问卷分析

第一次实验使用最基本的公共物品游戏,不外加其他的treatment。班里的学生4人一组,一共44/4=11组。一共玩20个回合的公共物品游戏。每回合给15秒做决定的时间。第十回合后,给大家放一个几分钟的“爱心”视频(链接如下),然后继续完成剩下的10回合。

修改列名

把“来源”,“来源详情”,“来自IP” 这几个无关变量删除。重新命名前面几个变量,新变量对应名称为:'序号','提交答卷时间','所用时间','性别'。把代表组号的那一个变量的名字重新命名为“team_num”。把后面所有回合的变量名重新命名为“round1”, round2,....round20。以及最后两个测算风险偏好和模糊偏好的变量分别重新命名为risk_atti 和 ambiguity_atti。

数据和完整代码

# 读取数据
data <- read.csv("datar.csv", header = TRUE, stringsAsFactors = FALSE, fileEncoding = "GBK")
data

head(data,5)

# 删除无关变量
data <- data[, !names(data) %in% c("来源", "来源详情", "来自IP")]

# 重新命名变量
colnames(data) <- c("序号", "提交答卷时间", "所用时间", "性别", "team_num", 
                    paste0("round", 1:20), "risk_atti", "ambiguity_atti")

names(data)
head(data,5)

变量赋值

data$gender <- ifelse(data$性别 == "男", 1, 0)
head(data,5)

看“爱心”视频前,大家前10回合的平均贡献值是多少?看“爱心”视频后,大家后10回合的平均贡献值是多少?

# 提取前10回合和后10回合的数据
before_video <- data[, 7:16]
after_video <- data[, 17:26]

# 计算平均贡献值
avg_contribution_before <- rowMeans(before_video, na.rm = TRUE)
avg_contribution_after <- rowMeans(after_video, na.rm = TRUE)

# 输出结果
avg_contribution_before <- mean(avg_contribution_before, na.rm = TRUE)
avg_contribution_after <- mean(avg_contribution_after, na.rm = TRUE)

cat("看“爱心”视频前,大家前10回合的平均贡献值是:", avg_contribution_before, "\n")
cat("看“爱心”视频后,大家后10回合的平均贡献值是:", avg_contribution_after, "\n")
# 导入绘图库
library(ggplot2)

# 创建数据框
contribution <- data.frame(
  Time_Period = c("Before Video", "After Video"),
  Average_Contribution = c(avg_contribution_before, avg_contribution_after)
)

# 绘制柱状图,并标上数据值
ggplot(contribution, aes(x = Time_Period, y = Average_Contribution, fill = Time_Period)) +
  geom_bar(stat = "identity") +
  geom_text(aes(label = round(Average_Contribution, 2)), vjust = -0.5) +  # 标上数据值
  labs(title = "Average Contribution Before and After Watching 'Love' Video",
       x = "Time Period",
       y = "Average Contribution") +
  theme_minimal() +
  theme(legend.position = "none")

从结果和可视化都可以看出,看“爱心”视频前,大家前10回合的平均贡献值是7.138889,看“爱心”视频后,大家后10回合的平均贡献值是7.2

异常值检测

# 找出所用时间超过800秒的同学
outliers_800 <- data[data$'所用时间' == '808秒', ]
outliers_800
# 找出所用时间为314秒的同学
outliers_314 <- data[data$'所用时间' == '314秒', ]
# 找出所用时间为74秒的同学
outliers_74 <- data[data$'所用时间' == '74秒', ]
# 将outliers合并
outliers <- rbind(outliers_800, outliers_314, outliers_74)
outliers 
# 从数据中删除outliers
data <- data[!(rownames(data) %in% rownames(outliers)), ]

# 重新计算Part 1
before_video <- data[, 7:16]
after_video <- data[, 17:26]

avg_contribution_before <- rowMeans(before_video, na.rm = TRUE)
avg_contribution_after <- rowMeans(after_video, na.rm = TRUE)

avg_contribution_before <- mean(avg_contribution_before, na.rm = TRUE)
avg_contribution_after <- mean(avg_contribution_after, na.rm = TRUE)

删除了异常值之后,看“爱心”视频前,大家前10回合的平均贡献值是6.751515,看“爱心”视频后,大家后10回合的平均贡献值是7.490909

女同学的前十和后十回合的平均贡献值是多少?男生呢?

# 按性别分组
female_data <- subset(data, 性别 == "女")
male_data <- subset(data, 性别 == "男")

# 提取前十回合和后十回合的数据
before_video_female <- female_data[, 7:16]
before_video_female
after_video_female <- female_data[, 17:26]
before_video_male <- male_data[, 7:16]
after_video_male <- male_data[, 17:26]

# 计算平均贡献值
avg_contribution_before_female <- rowMeans(before_video_female, na.rm = TRUE)
avg_contribution_after_female <- rowMeans(after_video_female, na.rm = TRUE)
avg_contribution_before_male <- rowMeans(before_video_male, na.rm = TRUE)
avg_contribution_after_male <- rowMeans(after_video_male, na.rm = TRUE)

# 计算平均贡献值的平均值
avg_contribution_before_female <- mean(avg_contribution_before_female, na.rm = TRUE)
avg_contribution_after_female <- mean(avg_contribution_after_female, na.rm = TRUE)
avg_contribution_before_male <- mean(avg_contribution_before_male, na.rm = TRUE)
avg_contribution_after_male <- mean(avg_contribution_after_male, na.rm = TRUE)

女同学的前十回合的平均贡献值是5.266667,女同学的后十回合的平均贡献值是6.3,男同学的前十回合的平均贡献值是7.308333,男同学的后十回合的平均贡献值是7.9375

为了探索不同风险偏好的同学在观看“爱心”视频前后的平均贡献值,我们可以按照之前的步骤进行数据处理和分析。首先,我们需要将风险偏好转换为风险偏好等级,然后按照这些等级将数据分组,分别计算他们在观看视频前后的平均贡献值。        

# 根据映射关系将风险偏好转换为相应的风险偏好等级
risk_attitude_levels <- c("highly risk loving", "very risk loving", "risk loving", 
                          "risk neutral", "slightly risk averse", "risk averse", 
                          "very risk averse", "highly risk averse", "stay in bed", "stay in bed")

data$risk_attitude_level <- risk_attitude_levels[data$risk_atti]

# 按风险偏好等级分组
risk_attitude_groups <- split(data, data$risk_attitude_level)

# 计算每个组在观看视频前后的平均贡献值
avg_contribution_before <- sapply(risk_attitude_groups, function(group) {
  avg_before <- mean(rowMeans(group[, 7:16], na.rm = TRUE), na.rm = TRUE)
  return(avg_before)
})

avg_contribution_after <- sapply(risk_attitude_groups, function(group) {
  avg_after <- mean(rowMeans(group[, 17:26], na.rm = TRUE), na.rm = TRUE)
  return(avg_after)
})

# 合并结果为数据框
avg_contribution <- data.frame(Risk_Attitude = names(avg_contribution_before),
                               Avg_Contribution_Before = avg_contribution_before,
                               Avg_Contribution_After = avg_contribution_after)

# 输出结果
print(avg_contribution)

高风险偏好者(highly risk loving)在观看视频前的平均贡献值较高,但在观看视频后降低到较低水平,这可能表明他们更倾向于冒险和自我利益,并且对于公共物品的贡献程度受到外部因素影响较大。风险厌恶者(risk averse)在观看视频前后的平均贡献值有所增加,这可能表明他们更加稳健和谨慎,但在观看视频后表现出更多的愿意参与公共物品的贡献。风险中性者(risk neutral)在观看视频前后的平均贡献值保持相对稳定,这可能表明他们的决策相对稳定,不受外部因素的影响较大。风险略微厌恶者(slightly risk averse)和非常风险厌恶者(very risk averse)在观看视频前后的平均贡献值变化较小,这可能表明他们的行为相对稳定,不受外部因素的影响较大。保持在床上者(stay in bed)在观看视频前后的平均贡献值有所增加,这可能表明他们对于外部因素的反应较弱,但在观看视频后表现出更多的愿意参与公共物品的贡献。

综上所述,不同风险偏好等级的同学在观看视频前后的行为表现有所不同,这可能受到个体风险态度和外部环境的影响。针对这些不同特点,我们可以制定更具针对性的鼓励措施,以促进更多人为公共物品做出贡献。

创作不易,希望大家多点赞关注评论!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/704491.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

第一个Vue3.0应用程序

Vue 是一款用于构建用户界面的 JavaScript 框架。它基于标准 HTML、CSS 和 JavaScript 构建&#xff0c;并提供了一套声明式的、组件化的编程模型&#xff0c;帮助你高效地开发用户界面。无论是简单还是复杂的界面&#xff0c;Vue 都可以胜任。 1、准备工作 工欲善其事&#…

简单2招,学会文件粉碎!告别文件安全顾虑

在数字化时代&#xff0c;电脑文件中可能存储着大量的敏感信息&#xff0c;涉及个人隐私、财务数据等。为了更有效地保护这些信息不被滥用或泄露&#xff0c;我们需要更加安全的删除文件的方法。电脑文件粉碎是一种高级的文件删除技术&#xff0c;可以确保被删除的文件无法被恢…

多个协程操纵同一个数据2个锁【互斥锁】【读写锁】

golang中sync包实现了两种锁Mutex&#xff08;互斥锁&#xff09;和RWMutex(读写锁) 【1】互斥锁&#xff08;和上厕所一样&#xff0c;用的时候把门锁上&#xff0c;不用的时候把门给关上&#xff09; 其中Mutex为互斥锁&#xff0c;Lock()加锁&#xff0c;Unlock()解锁&#…

申请郑州水污染防治乙级资质,这些材料你需要提前准备

申请郑州水污染防治乙级资质时&#xff0c;你需要提前准备以下材料&#xff0c;以确保申请流程的顺利进行&#xff1a; 一、企业基本材料 企业法人营业执照副本复印件&#xff1a;需加盖企业公章&#xff0c;确保复印件清晰、完整。企业章程文本&#xff1a;提供企业章程的完整…

Map - LinkedHashSetMap源码解析

本文主要对Map - LinkedHashSet&Map 源码解析。立刀旁 Map - LinkedHashSet&Map源码解析 Java 7 - LinkedHashSet&Map 总体介绍方法剖析 get()put()remove()LinkedHashSetLinkedHashMap经典用法 # Java 7 - LinkedHashSet&Map # 总体介绍 如果你已看过前面关…

【git使用二】gitee远程仓库创建与本地git命令用法

目录 gitee介绍 管理者注册gitee账号 管理者在gitee网站上创建远程仓库 每个开发者安装git与基本配置 1.git的下载和安装 2.配置SSH公钥 3.开发者信息配置 git命令用法 gitee介绍 Gitee&#xff08;又称码云&#xff09;是一个基于Git的代码托管服务&#xff0c;由开源…

高考后的抉择:计算机相关专业的未来发展与前景探讨

人不走空 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌赋&#xff1a;斯是陋室&#xff0c;惟吾德馨 目录 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌…

首个对LLMs应用于机器人任务中的量化研究

论文标题&#xff1a; Neural Scaling Laws for Embodied AI 论文作者&#xff1a; Sebastian Sartor, Neil Thompson 导读&#xff1a; 大模型研究愈发火热&#xff0c;大语言模型的Neural Scaling Laws&#xff08;神经标度律/神经缩放定律&#xff09;&#xff0c;即深度…

最快安装zabbix

部署zabbix 6.x 建议使用红帽系统。 https://download.rockylinux.org/pub/rocky/8/isos/x86_64/Rocky-8.9-x86_64-minimal.iso1> 配置安装yum源 [rootzabbix ~]# yum install https://mirrors.huaweicloud.com/zabbix/zabbix/6.2/rhel/8/x86_64/zabbix-release-6.2-3.el8…

【CT】LeetCode手撕—21. 合并两个有序链表

目录 题目1-思路2- 实现⭐21. 合并两个有序链表——题解思路 3- ACM实现 题目 原题连接&#xff1a;21. 合并两个有序链表 1-思路 双指针&#xff1a;题目提供的 list1 和 list2 就是两个双指针 通过每次移动 list1 和 list2 并判断二者的值&#xff0c;判断完成后将其 插入…

Word表格中文字后面批量添加下划线的技巧

在日常办公中&#xff0c;Microsoft Word是我们经常使用的文档编辑工具。有时&#xff0c;为了突出某些文字或者满足特定的格式要求&#xff0c;我们可能需要在Word表格中的文字后面批量添加下划线。本文将详细介绍如何实现这一操作&#xff0c;帮助您更高效地完成文档编辑工作…

果园预售系统的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;管理员管理&#xff0c;用户管理&#xff0c;果树管理&#xff0c;果园管理&#xff0c;果园预约管理 前台账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;论坛&#xff0c;公告&a…

盲盒小程序 跨平台兼容性测试策略:打造无缝体验

在盲盒小程序的开发过程中&#xff0c;跨平台兼容性测试是确保应用在不同设备和操作系统上都能提供无缝体验的重要步骤。本文将探讨一些关键的跨平台兼容性测试策略&#xff0c;以助力开发者打造稳定、流畅的小程序。 一、明确测试目标 在进行跨平台兼容性测试之前&#xff0…

Mybatis认识与学习

前言 在客户端工具中&#xff0c;编写增删改查的SQL语句&#xff0c;发给MySQL数据库管理系统&#xff0c;由数据库管理系统执行SQL语句并返回执行结果。 增删改操作&#xff1a;返回受影响行数 查询操作&#xff1a;返回结果集(查询的结果) 我们做为后端程序开发人员&#xff…

云手机游戏托管的实现机制

云手机游戏托管的实现首先依赖于强大的云计算基础设施。 数据中心承载着海量的计算资源&#xff0c;通过虚拟化技术构建出一个个独立的云手机环境&#xff0c;为二游的运行提供了坚实的支撑。这些云手机具备与实体手机相当的性能&#xff0c;能够流畅地运行各类二次元游戏。 在…

跨界合作机会:通过淘宝数据挖掘潜在的合作伙伴与市场拓展方向

淘宝平台汇聚了众多商家和消费者&#xff0c;生成了大量的交易数据&#xff0c;这些数据为商家提供了挖掘跨界合作机会和市场拓展方向的丰富线索。以下是如何利用淘宝数据来寻找潜在的合作伙伴和探索新的市场机会的一些策略&#xff1a; 消费者行为分析&#xff1a;通过跟踪消费…

【学习笔记】Kali

纯个人总结&#xff0c;有什么不对的地方欢迎指正。 笔记根据个人学习进度持续更新… 一、 认识Kali 基础了解 Kali是一套基于Debian发行版的一款操作系统。&#xff08;这里讲一个误区&#xff0c;我以前一直以为kali就属于deepin下的操作系统&#xff0c;但是我知道deepin是…

linux 安装 Nginx 并部署 vue 项目

1、安装 yum install nginx2、使用 nginx 命令 查看nginx状态启动服务 systemctl start nginx停止服务 systemctl stop nginx重启服务 systemctl restart nginx修改配置后重载 systemctl reload nginx3、nginx 常用目录 路径说明/etc/nginx/保存Nginx设置文件的目录/etc…

用于驱动和保护电源开关的解决方案

由于半导体行业的发展&#xff0c;对具有金属源极和漏极触点的肖特基势垒 (SB) MOSFET 的研究正在不断扩大。肖特基势垒 MOSFET 的源极和漏极由硅化物制成&#xff0c;而不是通常的掺杂硅。SB MOSFET 的一个显着特征是独特的二极管&#xff0c;如 I d -V ds特性的三极管工作期间…

Python对象序列化库之dill使用详解

概要 在 Python 编程中,序列化(Serialization)和反序列化(Deserialization)是处理对象持久化和数据传输的常见任务。Python 提供了内置的 pickle 模块用于对象序列化,但它在处理复杂对象(如带有 lambda 函数、生成器和闭包的对象)时存在一定局限性。dill 库是 pickle …