Как предсказать значение в R? - PullRequest
1 голос
/ 28 февраля 2020

У меня небольшая проблема с моими данными. Я получаю этот фрейм данных:

            id power     hr    fr    VE     VO2    VCO2  PETCO2 percent_VO2 percent_power group
1  AC12-PRD-C1    25  88.75 22.75 22.75 0.73900 0.66700 39.2925    49.34068      21.73913   CHD
2  AC12-PRD-C1    40  93.25 23.00 23.75 0.81975 0.71500 39.6200    54.73210      34.78261   CHD
3  AC12-PRD-C1    55  99.75 22.75 26.75 0.95125 0.85400 41.4100    63.51193      47.82609   CHD
4  AC12-PRD-C1    70 109.75 23.00 32.50 1.07525 1.04700 42.0150    71.79102      60.86957   CHD
5  AC12-PRD-C1    85 118.75 22.75 39.50 1.19900 1.25125 41.8425    80.05341      73.91304   CHD
6  AC12-PRD-C1   100 127.00 26.00 48.25 1.34575 1.51850 41.0950    89.85144      86.95652   CHD
7  AC12-PRD-C1   115 135.75 28.00 55.75 1.49775 1.76025 40.7275   100.00000     100.00000   CHD
8  AL13-PRD-C1    25  69.50 16.50 24.00 0.66125 0.58050 31.2275    41.36691      19.23077   CHD
9  AL13-PRD-C1    40  73.00 17.50 26.50 0.74850 0.66425 32.1025    46.82515      30.76923   CHD
10 AL13-PRD-C1    55  83.25 15.50 29.00 0.85500 0.79425 33.6650    53.48764      42.30769   CHD
11 AL13-PRD-C1    70  93.75 16.00 36.50 0.98450 0.99925 34.5325    61.58899      53.84615   CHD
12 AL13-PRD-C1    85 104.50 16.00 44.75 1.14950 1.23475 34.4225    71.91117      65.38462   CHD
13 AL13-PRD-C1   100 114.25 19.25 55.25 1.34650 1.48375 33.1800    84.23522      76.92308   CHD
14 AL13-PRD-C1   115 125.25 20.75 63.75 1.45100 1.65775 32.6450    90.77260      88.46154   CHD
15 AL13-PRD-C1   130 136.25 24.75 78.00 1.59850 1.89075 30.9000   100.00000     100.00000   CHD
16 BM06-PRD-S1    25 119.25 18.25 19.00 0.61675 0.58225 37.6425    48.87084      25.00000 Sains
17 BM06-PRD-S1    40 126.00 18.00 20.75 0.71700 0.65950 39.2175    56.81458      40.00000 Sains
18 BM06-PRD-S1    55 133.50 20.75 25.00 0.86275 0.82750 41.2150    68.36371      55.00000 Sains
19 BM06-PRD-S1    70 147.25 18.25 29.00 0.98575 1.04550 41.7050    78.11014      70.00000 Sains
20 BM06-PRD-S1    85 158.50 22.25 39.25 1.13000 1.30525 41.1425    89.54041      85.00000 Sains
21 BM06-PRD-S1   100 168.75 27.75 51.00 1.26200 1.61150 38.8925   100.00000     100.00000 Sains
22 CB19-PRD-S1    25  98.75 18.50 25.00 0.88350 0.80475 40.7550    36.15715      13.15789 Sains
23 CB19-PRD-S1    40  98.25 20.00 25.50 0.94575 0.82900 41.4675    38.70473      21.05263 Sains
24 CB19-PRD-S1    55 102.00 19.75 28.50 1.08125 0.95800 42.2775    44.25005      28.94737 Sains
25 CB19-PRD-S1    70 107.50 20.50 34.25 1.24400 1.14275 42.6450    50.91058      36.84211 Sains
26 CB19-PRD-S1    85 111.00 21.25 35.50 1.30475 1.19925 43.3600    53.39677      44.73684 Sains
27 CB19-PRD-S1   100 117.25 21.50 40.25 1.47350 1.42225 44.2650    60.30284      52.63158 Sains
28 CB19-PRD-S1   115 123.00 22.75 47.00 1.67900 1.68475 44.6400    68.71291      60.52632 Sains
29 CB19-PRD-S1   130 129.50 24.50 52.50 1.79075 1.87950 44.3425    73.28627      68.42105 Sains
30 CB19-PRD-S1   145 135.50 25.25 59.50 1.96000 2.13525 44.7300    80.21281      76.31579 Sains
31 CB19-PRD-S1   160 145.25 26.75 64.50 2.04050 2.28350 43.8825    83.50726      84.21053 Sains
32 CB19-PRD-S1   175 151.25 30.50 83.00 2.34425 2.76050 41.6025    95.93820      92.10526 Sains
33 CB19-PRD-S1   190 161.75 33.75 92.25 2.44350 2.96850 40.0400   100.00000     100.00000 Sains
34 CC14-PRD-S1    20 102.50 19.00 18.25 0.59250 0.54825 37.7175    49.26211      22.22222 Sains
35 CC14-PRD-S1    30 110.25 18.75 19.75 0.66100 0.60325 38.5800    54.95739      33.33333 Sains
36 CC14-PRD-S1    40 113.25 18.50 20.75 0.74350 0.66025 39.2950    61.81667      44.44444 Sains
37 CC14-PRD-S1    50 122.50 20.00 23.50 0.87875 0.77325 40.5650    73.06173      55.55556 Sains
38 CC14-PRD-S1    60 126.25 17.50 26.25 0.94350 0.89375 41.3525    78.44523      66.66667 Sains
39 CC14-PRD-S1    70 132.00 16.50 28.00 0.99675 0.98525 42.7575    82.87258      77.77778 Sains
40 CC14-PRD-S1    80 145.00 18.50 32.75 1.11425 1.16275 42.5025    92.64186      88.88889 Sains
41 CC14-PRD-S1    90 153.50 19.50 37.25 1.20275 1.32700 42.0975   100.00000     100.00000 Sains
42 DA03-PRD-C1    20  75.50 20.00 24.25 0.92550 0.78100 41.8375    45.37877      15.38462   CHD
43 DA03-PRD-C1    30  77.00 21.50 26.75 1.02925 0.87750 41.8625    50.46580      23.07692   CHD
44 DA03-PRD-C1    40  79.50 22.00 29.50 1.11675 0.97200 42.1025    54.75607      30.76923   CHD
45 DA03-PRD-C1    50  81.25 22.75 31.00 1.19725 1.05425 42.9525    58.70311      38.46154   CHD
46 DA03-PRD-C1    60  86.25 21.75 32.00 1.24775 1.11750 44.0800    61.17921      46.15385   CHD
47 DA03-PRD-C1    70  89.50 26.50 39.00 1.42625 1.35300 43.6350    69.93136      53.84615   CHD
48 DA03-PRD-C1    80  91.75 27.00 43.25 1.54225 1.50750 43.5800    75.61902      61.53846   CHD
49 DA03-PRD-C1    90  95.25 28.00 46.25 1.59425 1.61425 43.5800    78.16867      69.23077   CHD
50 DA03-PRD-C1   100  96.75 29.50 51.75 1.69675 1.76925 43.2775    83.19441      76.92308   CHD
51 DA03-PRD-C1   110  99.50 29.75 52.75 1.77600 1.86750 44.5050    87.08017      84.61538   CHD
52 DA03-PRD-C1   120 104.75 34.75 64.50 1.94525 2.17975 42.3325    95.37877      92.30769   CHD
53 DA03-PRD-C1   130 109.00 37.75 72.75 2.03950 2.35750 40.0550   100.00000     100.00000   CHD
54 DA24-PRD-S1    25  88.00 18.50 15.75 0.53500 0.45075 37.2200    40.33170      21.73913 Sains
55 DA24-PRD-S1    40  93.25 18.50 16.25 0.58450 0.47775 38.3375    44.06332      34.78261 Sains
56 DA24-PRD-S1    55 103.75 19.00 20.25 0.76875 0.65450 40.1875    57.95326      47.82609 Sains
57 DA24-PRD-S1    70 119.00 20.75 28.00 0.98200 0.95525 41.5175    74.02940      60.86957 Sains
58 DA24-PRD-S1    85 133.25 22.75 34.75 1.09975 1.18325 41.4125    82.90614      73.91304 Sains
59 DA24-PRD-S1   100 145.00 27.50 45.75 1.25900 1.49700 39.1475    94.91142      86.95652 Sains
60 DA24-PRD-S1   115 155.25 36.50 64.75 1.32650 1.72500 33.0275   100.00000     100.00000 Sains
61 DB22-PRD-S1    25  93.00 17.50 18.25 0.72050 0.58275 40.1275    61.43679      29.41176 Sains
62 DB22-PRD-S1    40  94.75 17.25 21.25 0.86825 0.74600 42.4000    74.03539      47.05882 Sains
63 DB22-PRD-S1    55 111.50 18.00 22.25 0.92350 0.79550 43.7575    78.74654      64.70588 Sains
64 DB22-PRD-S1    70 117.50 19.50 24.75 1.01075 0.91000 45.1775    86.18631      82.35294 Sains
65 DB22-PRD-S1    85 142.50 24.00 29.50 1.17275 1.13175 47.3850   100.00000     100.00000 Sains
66 DB42-PRD-C1    25  81.75 20.75 21.25 0.74350 0.62050 38.7075    34.75111      14.28571   CHD
67 DB42-PRD-C1    40  88.25 22.25 20.75 0.76575 0.60475 39.6275    35.79107      22.85714   CHD
68 DB42-PRD-C1    55  93.00 22.50 26.00 0.96075 0.79100 40.7000    44.90535      31.42857   CHD
69 DB42-PRD-C1    70  98.75 23.50 30.75 1.09750 0.96300 41.6050    51.29703      40.00000   CHD
70 DB42-PRD-C1    85 104.75 23.50 34.00 1.21975 1.10725 42.6325    57.01098      48.57143   CHD
71 DB42-PRD-C1   100 112.75 23.25 38.50 1.34525 1.30025 43.8750    62.87684      57.14286   CHD
72 DB42-PRD-C1   115 119.00 23.75 46.75 1.50625 1.56775 43.4775    70.40196      65.71429   CHD
73 DB42-PRD-C1   130 127.00 25.50 53.75 1.67550 1.80400 42.3750    78.31269      74.28571   CHD
74 DB42-PRD-C1   145 133.25 30.75 70.50 1.86325 2.16450 39.3975    87.08810      82.85714   CHD
75 DB42-PRD-C1   160 139.50 34.75 82.75 2.04650 2.43400 37.6425    95.65319      91.42857   CHD
76 DB42-PRD-C1   175 147.50 39.25 98.25 2.13950 2.67125 34.8550   100.00000     100.00000   CHD
77 DL18-PRD-S1    25 109.25 23.75 17.25 0.61300 0.54200 43.3100    24.77769      12.19512 Sains
78 DL18-PRD-S1    40 115.75 23.25 22.00 0.85525 0.76325 43.7425    34.56952      19.51220 Sains
79 DL18-PRD-S1    55 124.75 26.50 25.75 0.98000 0.89000 44.8275    39.61196      26.82927 Sains
80 DL18-PRD-S1    70 129.25 19.50 29.75 1.07600 1.08100 45.2350    43.49232      34.14634 Sains
81 DL18-PRD-S1    85 136.25 24.00 33.75 1.28700 1.25450 46.6250    52.02102      41.46341 Sains
82 DL18-PRD-S1   100 143.50 24.00 38.75 1.46150 1.47350 47.3825    59.07437      48.78049 Sains
83 DL18-PRD-S1   115 149.25 22.25 44.50 1.59325 1.68575 46.8925    64.39976      56.09756 Sains
84 DL18-PRD-S1   130 156.75 27.25 50.75 1.69650 1.83225 46.1575    68.57316      63.41463 Sains
85 DL18-PRD-S1   145 162.50 26.00 56.25 1.88400 2.10250 46.5550    76.15198      70.73171 Sains
86 DL18-PRD-S1   160 169.50 29.50 65.00 1.99800 2.31325 45.0225    80.75990      78.04878 Sains
87 DL18-PRD-S1   175 173.25 28.50 71.75 2.14250 2.52175 44.5875    86.60065      85.36585 Sains
88 DL18-PRD-S1   190 178.00 32.50 81.00 2.31275 2.75500 43.0400    93.48222      92.68293 Sains
89 DL18-PRD-S1   205 184.75 37.00 99.00 2.47400 3.11700 39.5725   100.00000     100.00000 Sains

Я хотел бы получить конкретное значение c Y. Можно ли предсказать значение y для определенного значения c x (здесь 70%) для каждого участника? У меня есть больше значений, но я просто выбрал некоторые из них, чтобы упростить их. Я также присоединяюсь к картине сюжета, который я получил. enter image description here

с помощью этого кода:

df_sum %>% 
  filter(percent_power>= 0 & percent_power < 75) %>% 
  ggscatter(x = "percent_power", y = "PETCO2", color = "group") +
  stat_cor(aes(color = group), label.x = 15, label.y = c(20,25)) +
  stat_regline_equation(label.x = 15, label.y = c(18,23), 
                        formula = y ~ x,
                        aes(color = group, label =  paste(..eq.label.., ..adj.rr.label.., sep = "~~~~")),) +
  geom_smooth(aes(colour=group), method = "lm", formula = y ~ x) +
  xlab("Percentage of power (%)") + 
  ylab(expression(paste("PETC", O[2]," (mmHg)")))

Спасибо за помощь!

1 Ответ

0 голосов
/ 28 февраля 2020

Возможно, я неправильно понял Ваш вопрос, но, как отметили @camille и @MrFlick, это можно сделать с помощью функции predict(). Подробнее.

# Fit some model, for example:
m1 <- lm(PETCO2 ~ percent_power + factor(group), data = df_sum)

Теперь вы можете получить прогнозируемые значения ($ \ hat {y} _i $) для начальных наблюдений, используя функцию predict():

df_sum %>%
   mutate(petco2_hat = predict(m1, newdata = dta)) %>%
   select(id, PETCO2, petco2_hat, percent_power, group)
# A tibble: 89 x 5
   id          PETCO2 petco2_hat percent_power group
   <fct>        <dbl>      <dbl>         <dbl> <fct>
 1 AC12-PRD-C1   39.3       39.6          21.7 CHD  
 2 AC12-PRD-C1   39.6       39.6          34.8 CHD  
 3 AC12-PRD-C1   41.4       39.7          47.8 CHD  
 4 AC12-PRD-C1   42.0       39.7          60.9 CHD  
 5 AC12-PRD-C1   41.8       39.7          73.9 CHD  
 6 AC12-PRD-C1   41.1       39.7          87.0 CHD  
 7 AC12-PRD-C1   40.7       39.7         100   CHD  
 8 AL13-PRD-C1   31.2       39.6          19.2 CHD  
 9 AL13-PRD-C1   32.1       39.6          30.8 CHD  
10 AL13-PRD-C1   33.7       39.7          42.3 CHD  
# … with 79 more rows

С другой стороны, если вы просто хотите получить прогнозируемые значения для некоторых новых точек, передайте новые значения в функцию predict() аналогичным образом:

predict(m1, newdata = tibble(percent_power = 70.0, group = "CHD"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...