Atualmente, estou usando o R 4.4.3 no Windows 11. Estou plotando o seguinte conjunto de dados ggplot2
e realizando uma regressão linear com geom_smooth
:
df <- data.frame(A= c(1.313, 1.3118, 1.3132, 1.3122, 1.3128, 1.3061, 1.3051, 1.3052, 1.3069, 1.3053, 1.3072, 1.3006, 1.3246,
1.3229, 1.3254, 1.3239, 1.3222, 1.3155, 1.313, 1.3147, 1.3174, 1.3174, 1.3188, 1.3134),
B=c(1.3165, 1.316, 1.3176, 1.316, 1.3169, 1.3104, 1.3094, 1.3095, 1.3107, 1.3101, 1.3112, 1.3047,
1.3285, 1.3271, 1.3297, 1.3274, 1.3261, 1.3192, 1.318, 1.319, 1.322, 1.3215, 1.3232, 1.3172))
Estou usando stat_regline_equation
o ggpubr
pacote para imprimir a regressão e também estou imprimindo uma reta de referência de y=x usando geom_abline
. O código do meu gráfico é mostrado abaixo:
ggplot(df, aes(x=A, y=B)) +
geom_point() +
geom_abline(slope=1, intercept=0) +
geom_smooth(color='red', method = lm, se = FALSE, formula = y~x) +
stat_regline_equation(label.x=1.31, label.y=1.325) +
coord_equal()
O coord_equal
comando força a escala dos dois eixos a serem iguais.
Tudo isso é muito bom, mas o que preciso fazer é encontrar a equação de regressão a partir desse conjunto de dados se a inclinação da reta for fixada em 1, ou seja, espero uma equação que se pareça com y=b + 1x
onde b é a interceptação se a regressão for forçada a ter uma inclinação m=1.
Este é um pequeno exemplo; meu conjunto de dados completo provavelmente terá vários gráficos semelhantes gerados com facet_wrap
ou facet_grid
, então espero que haja uma maneira de fazer isso de forma que essa regressão de declive forçado possa ser repetida em vários painéis.
Do ponto de vista prático, os dados representam medições de vários itens medidos na Ferramenta A e na Ferramenta B. Portanto, este é um gráfico de correlação entre as duas ferramentas. Idealmente, elas mediriam de forma idêntica, mas está claro que a Ferramenta B mede um pouco mais que a Ferramenta A. A equação de regressão me fornece essa correlação, mas prefiro assumir um deslocamento linear (o que é razoável em um pequeno intervalo). Daí meu desejo de fixar a regressão em m = 1 e calcular o intercepto, que será efetivamente o deslocamento médio.
Não estou preso a geom_smooth
ou stat_regline_equation
, então se houver melhores ferramentas de regressão disponíveis que sejam compatíveis com ggplot2
isso e possam ajudar, estou todo ouvidos.
Obrigado!
Se você estivesse fazendo isso sem facetar: