简体   繁体   中英

How to predict a value in R?

I have a small issue regarding my data. I get this dataframe:

            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

I would like to get a specific Y value. Is it possible to predict ay value for a specific x value (here 70 %) for each participant ? I have more values but I just selected some of them to make it simpler. I am also joining a picture of the plot I got. 在此处输入图片说明

by using this code:

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)")))

Thank you for your help!

Maybe I misunderstand Your question, but as @camille and @MrFlick pointed out this could be done using the predict() function. In detail.

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

Now, you can get the predicted values ($\\hat{y}_i$) for your intial observations using the predict() function:

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

On the other hand, if you just want to get the predicted values for some new points, hand the new values over to the predict() function in a similar manner:

predict(m1, newdata = tibble(percent_power = 70.0, group = "CHD"))

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM