在go语言中实现查找相关系数示例代码
Go  /  管理员 发布于 1年前   283
在go语言中实现查找两个给定变量之间的关系强度或相关系数,比如:在财务分析中,它有助于找出变量之间是负相关还是正相关。
摘自 investopedia.com:
https://www.investopedia.com/terms/c/correlationcoefficient.asp
相关系数为-1.0 表示完全负相关,而相关系数为 1.0 表示完全正相关。
相关性为 0.0 表示两个变量的变动之间没有关系。
示例代码:
package main
import (
"fmt"
"math"
)
func main() {
X := []int{15, 18, 21, 24, 27}
Y := []int{25, 25, 27, 31, 32}
// X 数组的大小
n := len(X)
// 获取 X 和 Y 这两个变量之间的关系强度
fmt.Println(correlationCoefficient(X, Y, n))
}
func correlationCoefficient(X []int, Y []int, n int) float64 {
sum_X := 0
sum_Y := 0
sum_XY := 0
squareSum_X := 0
squareSum_Y := 0
for i := 0; i < n; i++ {
// 数组 X 的元素之和
sum_X = sum_X + X[i]
// 数组 Y 的元素之和
sum_Y = sum_Y + Y[i]
// X[i] * Y[i] 之和
sum_XY = sum_XY + X[i]*Y[i]
// 数组元素的平方和
squareSum_X = squareSum_X + X[i]*X[i]
squareSum_Y = squareSum_Y + Y[i]*Y[i]
}
// 使用公式计算相关
// 系数
corr := float64((n*sum_XY - sum_X*sum_Y)) /
(math.Sqrt(float64((n*squareSum_X - sum_X*sum_X) * (n*squareSum_Y - sum_Y*sum_Y))))
return corr
}
输出:
0.9534625892455922
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号