r - 利用帽子值计数与自己计数
问题描述
我有以下问题:假设我正在处理这个简单的模型:
x=rnorm(10)
z=runif(10)
y=c()
y=x-z
model=lm(y~x)
我想通过我自己和帽子值来计算杠杆率:
X=model.matrix(model)
H = X %*% solve(t(X) %*% X) %*% t(X)
diag(H) #leverages counted by myself
hatvalues(model) #leverages counted by implemented function
diag(H)==hatvalues(model)
最后一行我有一个问题,因为向量 diag(H) 和 hatvalues(model) 的值几乎相等......但不相等。
我定义了向量,它将计算它们之间的差异以获得:
> p=c()
> for (i in 1:10){
+ p[i]=abs(diag(H)[i]-hatvalues(model)[i])
+ }
> p
[1] 2.775558e-17 1.387779e-17 5.551115e-17 0.000000e+00 1.665335e-16
[6] 0.000000e+00 2.775558e-17 2.775558e-17 1.387779e-17 2.775558e-17
所以差异很小,但它们存在的原因是什么?
解决方案
推荐阅读
- python - 为什么不能将活动列表附加到 Brightway2 中的另一个活动列表?
- python - 我可以在 Tensorflow 联邦学习 (TFF) 的 keras 模型中使用 class_weight
- maxima - 千里马的日志和千里马的 plog 和自己不一致?
- android - 从 Firebase 检索聊天消息时出现问题
- mysql - mysql不接受“?” 作为绑定运算符
- node.js - 运行 npm unpublish 时出错 - npm unpublish 错误
- flutter - 下拉菜单不显示数据抖动
- leaflet - 如何通过选择(传单)仅选择一层
- r - 将R中向量的某些元素相乘
- python - 使用正则表达式在字典中插入值,其中包括模式中的键