R语言倾向性评分:加权

2023-11-07

之前已经介绍过倾向性评分匹配(propensity score matching)倾向性评分回归和分层

今天继续介绍倾向性评分最后一个重要的部分:倾向性评分加权

主要介绍两种加权方法:逆概率加权(inverse probability weighting, IPW)和重叠加权(overlap weighting)。

倾向性评分加权的方法有很多,常见的一些加权方法比较如下:

常见加权方法

其中ATE就是大家比较常见的IPW方法,还有一种常见的inverse probability of treatment weighting, IPTW,是这里的ATT。前者是针对所有研究对象,后者是针对病例组。

演示数据

data(lindner, package = "twang")

lindner[,c(3,4,6,7,8,10)] <- lapply(lindner[,c(3,4,6,7,8,10)],factor)

str(lindner)
## 'data.frame': 996 obs. of  11 variables:
##  $ lifepres       : num  0 11.6 11.6 11.6 11.6 11.6 11.6 11.6 11.6 11.6 ...
##  $ cardbill       : int  14301 3563 4694 7366 8247 8319 8410 8517 8763 8823 ...
##  $ abcix          : Factor w/ 2 levels "0","1": 2 2 2 2 2 2 2 2 2 2 ...
##  $ stent          : Factor w/ 2 levels "0","1": 1 1 1 1 1 1 1 1 1 1 ...
##  $ height         : int  163 168 188 175 168 178 185 173 152 180 ...
##  $ female         : Factor w/ 2 levels "0","1": 2 1 1 1 2 1 1 2 2 1 ...
##  $ diabetic       : Factor w/ 2 levels "0","1": 2 1 1 2 1 1 1 1 1 1 ...
##  $ acutemi        : Factor w/ 2 levels "0","1": 1 1 1 1 1 1 1 1 1 1 ...
##  $ ejecfrac       : int  56 56 50 50 55 50 58 30 60 60 ...
##  $ ves1proc       : Factor w/ 6 levels "0","1","2","3",..: 2 2 2 2 2 2 2 2 2 2 ...
##  $ sixMonthSurvive: logi  FALSE TRUE TRUE TRUE TRUE TRUE ...

演示数据

其中abcix是处理因素变量,sixMonthSurvive是二分类的结局变量,cardbill是连续型的结局变量,其余变量是协变量。

首先可以通过tableone包看一下加权前的数据情况:

library(tableone)

covs <- colnames(lindner)[c(1,4:10)]

tab <- CreateTableOne(vars = covs,
                      strata = "abcix",
                      data = lindner
                      )
print(tab,showAllLevels = T,smd = T)
##                       Stratified by abcix
##                        level 0              1              p      test SMD   
##   n                             298            698                           
##   lifepres (mean (SD))        11.02 (2.54)   11.42 (1.45)   0.002       0.194
##   stent (%)            0        124 (41.6)     206 (29.5)  <0.001       0.255
##                        1        174 (58.4)     492 (70.5)                    
##   height (mean (SD))         171.45 (10.59) 171.44 (10.69)  0.996      <0.001
##   female (%)           0        183 (61.4)     467 (66.9)   0.111       0.115
##                        1        115 (38.6)     231 (33.1)                    
##   diabetic (%)         0        218 (73.2)     555 (79.5)   0.034       0.150
##                        1         80 (26.8)     143 (20.5)                    
##   acutemi (%)          0        280 (94.0)     573 (82.1)  <0.001       0.372
##                        1         18 ( 6.0)     125 (17.9)                    
##   ejecfrac (mean (SD))        52.29 (10.30)  50.40 (10.42)  0.009       0.182
##   ves1proc (%)         0          1 ( 0.3)       3 ( 0.4)  <0.001       0.446
##                        1        243 (81.5)     437 (62.6)                    
##                        2         47 (15.8)     205 (29.4)                    
##                        3          6 ( 2.0)      39 ( 5.6)                    
##                        4          1 ( 0.3)      13 ( 1.9)                    
##                        5          0 ( 0.0)       1 ( 0.1)

如果只是看一下协变量是否在不同组间均衡,可以通过之前介绍过的cobalt实现:

library(cobalt)
##  cobalt (Version 4.4.0, Build Date: 2022-08-13)

# 选择只有协变量的数据框
covariates <- subset(lindner, select = c(1,4:10))

bal.tab(covariates,treat = lindner$abcix, s.d.denom = "pooled",
        m.threshold = 0.1, un = TRUE,
        v.threshold = 2
        )
## Balance Measures
##               Type Diff.Un     M.Threshold.Un V.Ratio.Un   V.Threshold.Un
## lifepres   Contin.  0.1941 Not Balanced, >0.1     0.3239 Not Balanced, >2
## stent       Binary  0.1210 Not Balanced, >0.1          .                 
## height     Contin. -0.0003     Balanced, <0.1     1.0201     Balanced, <2
## female      Binary -0.0550     Balanced, <0.1          .                 
## diabetic    Binary -0.0636     Balanced, <0.1          .                 
## acutemi     Binary  0.1187 Not Balanced, >0.1          .                 
## ejecfrac   Contin. -0.1821 Not Balanced, >0.1     1.0238     Balanced, <2
## ves1proc_0  Binary  0.0009     Balanced, <0.1          .                 
## ves1proc_1  Binary -0.1894 Not Balanced, >0.1          .                 
## ves1proc_2  Binary  0.1360 Not Balanced, >0.1          .                 
## ves1proc_3  Binary  0.0357     Balanced, <0.1          .                 
## ves1proc_4  Binary  0.0153     Balanced, <0.1          .                 
## ves1proc_5  Binary  0.0014     Balanced, <0.1          .                 
## 
## Balance tally for mean differences
##                    count
## Balanced, <0.1         7
## Not Balanced, >0.1     6
## 
## Variable with the greatest mean difference
##  Variable Diff.Un     M.Threshold.Un
##  lifepres  0.1941 Not Balanced, >0.1
## 
## Balance tally for variance ratios
##                  count
## Balanced, <2         2
## Not Balanced, >2     1
## 
## Variable with the greatest variance ratio
##  Variable V.Ratio.Un   V.Threshold.Un
##  lifepres     0.3239 Not Balanced, >2
## 
## Sample sizes
##     Control Treated
## All     298     698

Diff.Adj就是SMD

IPTW

倾向性评分只是一个概率(倾向干预组的概率),计算概率的算法是在是太多了,选择自己喜欢的就好,我这里就用最简单的逻辑回归,之前的推文中也演示过随机森林等其他估计PS的方法。

psfit <- glm(abcix ~ stent + height + female + diabetic + acutemi + ejecfrac + ves1proc,
             data = lindner, family = binomial())
ps <- psfit$fitted.values

逆概率加权以全部研究对象(ATE)为目标人群,通过加权使每一组研究对象的协变量分布与全部研究对象相似。

该种加权方法下,研究对象的权重为该对象所在组的概率的倒数。

  • 干预组:1/ps

  • 对照组:1/(1-ps)

下面根据计算出的PS计算每一个样本的权重:

iptw <- ifelse(lindner$abcix == 1, 1/ps, 1/(1-ps))

lindner$iptw <- iptw

加权后可以再次看看数据是否已经均衡:

bal.tab(covariates,treat = lindner$abcix, s.d.denom = "pooled",
        weights = lindner$iptw,
        m.threshold = 0.1, un = TRUE,
        v.threshold = 2
        )
## Balance Measures
##               Type Diff.Un V.Ratio.Un Diff.Adj        M.Threshold V.Ratio.Adj
## lifepres   Contin.  0.1941     0.3239   0.3310 Not Balanced, >0.1      0.2185
## stent       Binary  0.1210          .   0.0036     Balanced, <0.1           .
## height     Contin. -0.0003     1.0201  -0.0175     Balanced, <0.1      0.8647
## female      Binary -0.0550          .   0.0101     Balanced, <0.1           .
## diabetic    Binary -0.0636          .  -0.0175     Balanced, <0.1           .
## acutemi     Binary  0.1187          .  -0.0028     Balanced, <0.1           .
## ejecfrac   Contin. -0.1821     1.0238  -0.0119     Balanced, <0.1      0.9784
## ves1proc_0  Binary  0.0009          .   0.0009     Balanced, <0.1           .
## ves1proc_1  Binary -0.1894          .   0.0211     Balanced, <0.1           .
## ves1proc_2  Binary  0.1360          .  -0.0073     Balanced, <0.1           .
## ves1proc_3  Binary  0.0357          .  -0.0155     Balanced, <0.1           .
## ves1proc_4  Binary  0.0153          .  -0.0002     Balanced, <0.1           .
## ves1proc_5  Binary  0.0014          .   0.0010     Balanced, <0.1           .
##                 V.Threshold
## lifepres   Not Balanced, >2
## stent                      
## height         Balanced, <2
## female                     
## diabetic                   
## acutemi                    
## ejecfrac       Balanced, <2
## ves1proc_0                 
## ves1proc_1                 
## ves1proc_2                 
## ves1proc_3                 
## ves1proc_4                 
## ves1proc_5                 
## 
## Balance tally for mean differences
##                    count
## Balanced, <0.1        12
## Not Balanced, >0.1     1
## 
## Variable with the greatest mean difference
##  Variable Diff.Adj        M.Threshold
##  lifepres    0.331 Not Balanced, >0.1
## 
## Balance tally for variance ratios
##                  count
## Balanced, <2         2
## Not Balanced, >2     1
## 
## Variable with the greatest variance ratio
##  Variable V.Ratio.Adj      V.Threshold
##  lifepres      0.2185 Not Balanced, >2
## 
## Effective sample sizes
##            Control Treated
## Unadjusted  298.    698.  
## Adjusted    202.27  671.09

可以看到除了lifepres之外,其他全都均衡了,效果还是挺不错的。加权后,干预组和对照组的样本量已经变了哦!

如果想要画出加权后数据的基线资料表,可以借助survey包。

library(survey)
## Loading required package: grid
## Loading required package: Matrix
## Loading required package: survival
## 
## Attaching package: 'survey'
## The following object is masked from 'package:graphics':
## 
##     dotchart

# 获取加权后的数据
df <- svydesign(ids = ~1, data = lindner, weights = ~ iptw)

# 使用tableone中的函数创建加权后的三线表
tab_IPTW=svyCreateTableOne(vars=covs, strata="abcix",data=df ,test=T) 
print(tab_IPTW,showAllLevels=TRUE,smd=TRUE)
##                       Stratified by abcix
##                        level 0               1              p      test SMD   
##   n                          1004.38         994.47                           
##   lifepres (mean (SD))         10.74 (3.05)   11.42 (1.43)   0.024       0.288
##   stent (%)            0       333.7 (33.2)   326.8 (32.9)   0.921       0.008
##                        1       670.7 (66.8)   667.7 (67.1)                    
##   height (mean (SD))          171.60 (11.39) 171.41 (10.60)  0.849       0.017
##   female (%)           0       668.5 (66.6)   651.8 (65.5)   0.782       0.021
##                        1       335.9 (33.4)   342.7 (34.5)                    
##   diabetic (%)         0       762.7 (75.9)   772.6 (77.7)   0.610       0.042
##                        1       241.7 (24.1)   221.8 (22.3)                    
##   acutemi (%)          0       857.6 (85.4)   851.8 (85.7)   0.942       0.008
##                        1       146.8 (14.6)   142.6 (14.3)                    
##   ejecfrac (mean (SD))         51.07 (10.23)  50.95 (10.12)  0.879       0.012
##   ves1proc (%)         0         3.0 ( 0.3)     3.9 ( 0.4)   0.937       0.088
##                        1       664.1 (66.1)   678.6 (68.2)                    
##                        2       261.6 (26.0)   251.7 (25.3)                    
##                        3        61.3 ( 6.1)    45.3 ( 4.6)                    
##                        4        14.4 ( 1.4)    14.0 ( 1.4)                    
##                        5         0.0 ( 0.0)     1.0 ( 0.1)

加权之后,就可以做各种分析了,比如回归分析等,分析时把权重因素也考虑进去即可。

这里演示逻辑回归,根据因变量的类型,可选择不同的回归方法。

f <- glm(sixMonthSurvive~abcix+stent+height+female+diabetic+acutemi+ejecfrac+ves1proc,
             data = lindner, family = binomial(),
         weights = iptw # 把权重加进去
         )

summary(f)
## 
## Call:
## glm(formula = sixMonthSurvive ~ abcix + stent + height + female + 
##     diabetic + acutemi + ejecfrac + ves1proc, family = binomial(), 
##     data = lindner, weights = iptw)
## 
## Deviance Residuals: 
##     Min       1Q   Median       3Q      Max  
## -4.9894   0.0958   0.1640   0.3071   2.8009  
## 
## Coefficients:
##               Estimate Std. Error z value Pr(>|z|)    
## (Intercept)  8.598e+00  1.585e+03   0.005  0.99567    
## abcix1       1.785e+00  3.215e-01   5.551 2.84e-08 ***
## stent1      -6.401e-01  3.024e-01  -2.117  0.03426 *  
## height       3.491e-02  1.154e-02   3.025  0.00248 ** 
## female1      8.123e-03  3.143e-01   0.026  0.97938    
## diabetic1   -7.314e-01  2.813e-01  -2.599  0.00934 ** 
## acutemi1    -1.540e+00  3.011e-01  -5.116 3.11e-07 ***
## ejecfrac     5.923e-02  1.057e-02   5.604 2.10e-08 ***
## ves1proc1   -1.378e+01  1.585e+03  -0.009  0.99306    
## ves1proc2   -1.184e+01  1.585e+03  -0.007  0.99404    
## ves1proc3   -1.569e+01  1.585e+03  -0.010  0.99210    
## ves1proc4   -7.180e-02  1.787e+03   0.000  0.99997    
## ves1proc5   -1.817e+00  4.262e+03   0.000  0.99966    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 732.98  on 995  degrees of freedom
## Residual deviance: 469.49  on 983  degrees of freedom
## AIC: 485.36
## 
## Number of Fisher Scoring iterations: 16

但是这种方法存在问题,我在stackoverflow[1]中的帖子中看到有人指出,R自带的lmglm中的weights参数并不是样本的权重,这点可以查看帮助文档确定,所以如果想要使用加权后的数据进行线性回归和逻辑回归,需要使用其他的R包,比如survey包。

除了上面介绍的手动计算权重的方法,也可以通过多个R包实现,比如PSW/PSweight/twang等,大家感兴趣的可以自己查看相关说明。

重叠加权

重叠加权的目标人群是两组协变量相似的人,即PS值分布重叠的人,其估计的效应为重叠人群平均处理效应(ATO)。

  • 干预组:1-ps

  • 对照组:ps

重叠加权的优缺点可以看这篇文章:https://mp.weixin.qq.com/s/OgsRAuMFD9kuiT1Dsze62g

使用PSweight包演示重叠加权,这个包不仅可以用于二分类,还可以用于多分类。

还是使用lindner这个数据集。

## 数据准备
rm(list = ls())
data(lindner, package = "twang") 

# 构建估计PS的formula
formula.ps <- abcix ~ stent + height + female + diabetic + acutemi + ejecfrac + ves1proc

进行重叠加权:

library(PSweight)

PSweight <- PSweight(ps.formula = formula.ps, data = lindner, 
                     weight = "overlap", # 重叠加权
                     yname = "cardbill", # 因变量
                     family = "gaussian", 
                     ps.method = "glm", 
                     out.method = "glm"
                     )

#返回结果,效应估计及其标准误、置信区间、P值
summary(PSweight)
## 
## Closed-form inference: 
## 
## Original group value:  0, 1 
## 
## Contrast: 
##             0 1
## Contrast 1 -1 1
## 
##            Estimate Std.Error     lwr    upr Pr(>|z|)
## Contrast 1  1134.91    879.51 -588.90 2858.7   0.1969

计算数据均衡性:

SumStat<-SumStat(ps.formula = formula.ps, data = lindner, weight = "overlap")
SumStat[["ess"]] #有效样本量
##   unweighted  overlap
## 0        298 287.4367
## 1        698 569.5826
plot(SumStat) #均衡性检验图形

summary(SumStat) #均衡性检验
## unweighted result
##           Mean 0  Mean 1   SMD
## stent      0.584   0.705 0.254
## height   171.446 171.443 0.000
## female     0.386   0.331 0.115
## diabetic   0.268   0.205 0.150
## acutemi    0.060   0.179 0.371
## ejecfrac  52.289  50.403 0.182
## ves1proc   1.205   1.463 0.427
## 
## overlap result
##           Mean 0  Mean 1 SMD
## stent      0.633   0.633   0
## height   171.464 171.464   0
## female     0.359   0.359   0
## diabetic   0.242   0.242   0
## acutemi    0.078   0.078   0
## ejecfrac  51.830  51.830   0
## ves1proc   1.257   1.257   0

加权后,可以进行后续的各种分析,这里就不演示了。

参考资料

涂博祥, 秦婴逸, 吴骋, 等. 倾向性评分加权方法介绍及R软件实现[J]. 中国循证医学杂志, 2022, 22(3): 365--372.

参考资料

[1]

stackoverflow: https://stackoverflow.com/questions/7026549/weight-data-with-r-part-ii

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

R语言倾向性评分:加权 的相关文章

  • 软件测试|Python中如何提取列表中索引为奇数的元素

    简介 在Python中 我们经常需要从列表中提取特定位置的元素 如果我们想要提取列表中索引为奇数的元素 可以使用一些简单的方法来实现这一目标 本文将介绍如何在Python中提取列表中索引为奇数的元素 并提供示例代码来帮助大家更好地理解这个过
  • 什么是充放电振子理论?

    CHAT回复 充放电振子模型 Charging Reversal Oscillator Model 是一种解释ENSO现象的理论模型 这个模型把ENSO现象比喻成一个 热力学振荡系统 在这个模型中 ENSO现象由三个组成部分 充电 Char
  • 用CHAT分析高校体育智慧教学体系构建与探索研究现状

    CHAT回复 现阶段 高校体育智慧教学体系的构建与探索研究还处于初级阶段 但全球数字化转型大潮的推动下 一些较为前沿的研究和实践已经开始出现 1 教学平台的建设 很多高校已经开始尝试使用在线教育平台进行体育教学 把传统的面对面授课模式转变为
  • 电商数据api接口商品评论接口接入代码演示案例

    电商数据API接口商品评论 接口接入入口 提高用户体验 通过获取用户对商品的评论 商家可以了解用户对商品的满意度和需求 从而优化商品和服务 提高用户体验 提升销售业绩 用户在购买商品前通常会查看其他用户的评论 以了解商品的实际效果和质量 商
  • 软件测试|教你使用Python下载图片

    前言 我一直觉得Windows系统默认的桌面背景不好看 但是自己又没有好的资源可以进行替换 突然我一个朋友提醒了我 网络上的图片这么多 你甚至可以每天换很多个好看的背景 但是如果让我手动去设置的话 我觉得太麻烦了 我不如使用技术手段将图片下
  • 华为OD机试 Java 【计算文件大小】

    题目 一个电脑文件夹系统 每个文件夹里都有一些文件和可能还有其他子文件夹 给定所有文件夹的大小和子文件夹列表 你的任务是找出某一个文件夹及其所有子文件夹里的文件总大小 输入格式 首行有两个数字 文件夹的总数M和你要查询的文件夹ID N 之后
  • 华为OD机试真题-分披萨-2023年OD统一考试(C卷)

    题目描述 吃货 和 馋嘴 两人到披萨店点了一份铁盘 圆形 披萨 并嘱咐店员将披萨按放射状切成大小相同的偶数扇形小块 但是粗心服务员将披萨切成了每块大小都完全不同奇数块 且肉眼能分辨出大小 由于两人都想吃到最多的披萨 他们商量了一个他们认为公
  • 华为OD统一考试 Python【数字转化】

    描述 我们想要一种特殊的整数编码方式 让数字小的时候 编码占的空间也小 编码的方法如下 我们每7位组成一部分来编码 在每个字节里 用前7位来存数字 如果后面还有数据 最高的那一位就是1 否则就是0 数据要按小端序保存 也就是说 小的数据部分
  • 【硕士论文复现】可再生能源发电与电动汽车的协同调度策略研究(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 1 1 上层问题 1 2 下层问题 2 运行结果
  • Hutool改变我们的coding方式(二)

    Hutool改变我们的coding方式 Hutool 简介 Hutool如何改变我们的coding方式 文档 安装 Maven
  • 计算机Java项目|尤文图斯足球俱乐部网上商城系统

    作者简介 Java领域优质创作者 CSDN博客专家 CSDN内容合伙人 掘金特邀作者 阿里云博客专家 51CTO特邀作者 多年架构师设计经验 腾讯课堂常驻讲师 主要内容 Java项目 Python项目 前端项目 人工智能与大数据 简历模板
  • 计算机Java项目|电影购票系统

    作者简介 Java领域优质创作者 CSDN博客专家 CSDN内容合伙人 掘金特邀作者 阿里云博客专家 51CTO特邀作者 多年架构师设计经验 腾讯课堂常驻讲师 主要内容 Java项目 Python项目 前端项目 人工智能与大数据 简历模板
  • 【固定翼飞行器】用于计算固定翼飞机空气动力学的紧凑涡旋格方法研究(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码实现
  • 15天学会Python深度学习,我是如何办到的?

    陆陆续续有同学向我们咨询 Python编程如何上手 深度学习怎么学习 如果有人能手把手 一对一帮帮我就好了 我们非常理解初学者的茫然和困惑 大量视频 书籍 广告干扰了大家的判断 学习Python和人工智能 成为内行人不难 为此 我们推出了
  • 【路径规划】基于改进遗传算法求解机器人栅格地图路径规划(Matlab实现实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码实现
  • 【心电图基线估计和去噪方法的群稀疏正则化】带有群稀疏正则化的心电图基线估计和去噪(Matlab实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码及文章
  • 学Python,一个月从小白到大神?看你怎么学!

    Python是一门超强大而且超受欢迎的编程语言 它被用在各种领域 比如网站开发 数据分析 人工智能和机器学习 学会Python会给你创造很多职业机会 所以绝对是值得一试的 但你有没有过这样的梦想 一个月时间 从Python小白变成Pytho
  • 计算机Java项目|有机蔬菜商城

    作者简介 Java领域优质创作者 CSDN博客专家 CSDN内容合伙人 掘金特邀作者 阿里云博客专家 51CTO特邀作者 多年架构师设计经验 腾讯课堂常驻讲师 主要内容 Java项目 Python项目 前端项目 人工智能与大数据 简历模板
  • 软件测试/测试开发|给你剖析闭包与装饰器的魔力

    测试管理班是专门面向测试与质量管理人员的一门课程 通过提升从业人员的团队管理 项目管理 绩效管理 沟通管理等方面的能力 使测试管理人员可以更好的带领团队 项目以及公司获得更快的成长 提供 1v1 私教指导 BAT 级别的测试管理大咖量身打造
  • Java进阶之旅第七天

    Java进阶之旅第七天 文章目录 Java进阶之旅第七天 方法引用 介绍 代码展示 结果 方法引用的分类

随机推荐

  • MySQL中的读锁和写锁

    MySql锁 数据库都是悲观锁 java redis zookeeper会有乐观锁 锁的概念 MySQL中的锁 MyISAM锁 MyISAM共享读锁 MyISAM独占写锁 MyISAM锁调度 InnoDb InnoDb行锁 InnoDb表锁
  • 21天打卡挑战学习MySQL——《Docker容器安装》第三周 第七篇

    活动地址 CSDN21天学习挑战赛 前言 Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级 可移植的容器中 然后发布到任何流行的 Linux 机器上 也可以实现虚拟化 Docker支持在主流的操作系统平台上使用 包括 Wind
  • RecyclerView曝光埋点

    RecyclerView曝光埋点 在做客户端埋点的时候 一般分为三类事件 页面浏览事件 元素点击事件 列表item元素曝光事件 页面浏览事件和元素点击事件在做代码埋点时可以很简单的进行埋点 对列表item元素曝光事件的埋点相对来说就麻烦许多
  • 2. 初识Python脚本

    Python的系列课程是写给零基础的小白看的 如果基础比较好的小伙伴可以暂时先不关注 等待后续课程 Hi 大家好 我是茶桁 之前的课程已经给大家讲解了Python相关特性和基本语法 那么这节课呢 我们尝试着从最简单的脚本来开始认识Pytho
  • IDEA 项目结构出现 0%classes,0% lines covered解决方法

    Ctrl Alt F6 然后取消勾选 中间的那个No Coverage
  • 苹果邮件怎么添加qq邮箱_iPhone自带邮件无法登陆QQ邮箱?

    要说现在什么邮箱用的最频繁 个人认为是QQ邮箱 但如今我们都喜欢在手机上处理一些事情 接收和回复邮件也不例外 不过许多iPhone用户可能都遇到过 在苹果手机自带邮件内添加QQ邮箱时 总是显示用户名或密码不正确 今天就来帮大家解决这个问题
  • C++参数传递与返回值

    1 const member function 常量成员函数 在类内 如果不改变数据 就写为常量成员函数 FUNCTION1 const 为什么要使用常量成员函数呢 for example template
  • 单目标应用:基于成长优化算法(Growth Optimizer,GO)的微电网优化调度MATLAB

    一 微网系统运行优化模型 微电网是由分布式电源 储能装置和能量转换装置等组成的小型发配电系统 具有成本低 电压低 污染小等特点 由于环保和能源压力 清洁可再生能源和分布式能源工业发展潜力巨大 微电网控制器可实现对电网的集中控制 采用分布式电
  • 使用 FasterTransformer 和 Triton 推理服务器部署 GPT-J 和 T5

    使用 FasterTransformer 和 Triton 推理服务器部署 GPT J 和 T5 文章目录 使用 FasterTransformer 和 Triton 推理服务器部署 GPT J 和 T5 简介 主要步骤概述 第 1 步 从
  • 点云从入门到精通技术详解100篇-定子装配过程中基于深度学习的易变形材料的点云分割

    目录 前言 易变形导线装配过程及问题 国内外相关研究现状 三维视觉的研究现状
  • Windows中Lua环境配置记录

    之前在Mac环境下配置了Lua的环境 因为装的是双系统 Mac有点不稳定 所以更多的时候我是在用Windows系统 所以就想在windows上也将环境配置好 一开始感觉windows应该很好配置 网上的教程应该有很多 可是当自己查起来的时候
  • 2022第十一届中国创新创业大赛全国总决赛在深圳举办

    为深入贯彻党的二十大精神和创新驱动发展战略 强化企业科技创新主体地位 支持企业融合创新 推进科技型创新型企业遴选和培育 加大金融对硬科技企业的支持力度 营造有利于科技型中小微企业成长的环境 推动创新链产业链资金链人才链深度融合 第十一届中国
  • 如何给信号加噪声,matlab

    Matlab信号上叠加噪声和信噪比的计算 http www ilovematlab cn thread 54155 1 1 html 出处 MATLAB中文论坛 在信号处理中经常需要把噪声叠加到信号上去 在叠加噪声时往往需要满足一定的信噪比
  • 深度学习模型学习笔记

    我作为新手的一些学习笔记 backbone 主干网络 主干网络大多时候指的是提取特征的网络 其作用就是提取图片中的信息 供后面的网络使用 这些网络经常使用的是Resnet VGG等 而不是我们自己设计的网络 因为这些网络已经证明了在分类等问
  • Centos LVS DR模式详细搭建过程

    目录 前言 1 1 LVS环境组网 2 2 ipvsadm安装前准备 2 3 httpd与ipvsadm下载 3 4 LVS负载均衡配置 4 5 真实WEB服务器配置及arp抑制 5 6 LVS负载均衡测试 6 7 附 arp抑制参数 7
  • Unity 鼠标拖拽控制旋转物体

    Unity 鼠标拖拽控制旋转物体 需求 鼠标左键拖拽 控制物体旋转 摄像机固定不动 可以使用下面的代码 但是当摄像机移动到物体背后时 出现拖拽旋转方向与摄像机在正面时相反的问题 gameObj transform Rotate transf
  • FISCO BCOS 区块链(一)

    目录 一 搭建 FISCO BCOS 链 1 安装 openssl curl 依赖 2 安装 build chain 脚本 二 配置控制台 1 下载java jdk 2 安装控制台 3 拷贝配置文件以及证书 4 启动控制台 三 Java S
  • linux crontab 文件位置和日志位置

    一 文件位置 位置一般在 var spool cron 下 如果你是root用户 那下面有个root文件 建议日常备份 避免误删除导致crontab 文件丢失 二 日志文件位置 默认情况下 crontab中执行的日志写在 var log下
  • python 使用 with open() as 读写文件的操作方法

    读文件 要以读文件的模式打开一个文件对象 使用Python内置的open 函数 传入文件名和标示符 1 gt gt gt f open E python python test txt r 标示符 r 表示读 这样 我们就成功地打开了一个文
  • R语言倾向性评分:加权

    之前已经介绍过倾向性评分匹配 propensity score matching 倾向性评分回归和分层 R语言倾向性评分 回归和分层 R语言倾向性评分 匹配 今天继续介绍倾向性评分最后一个重要的部分 倾向性评分加权 主要介绍两种加权方法 逆