# Corrected observation from pcVPC

**URL:** <https://discourse.pumas.ai/t/corrected-observation-from-pcvpc/1026>\
**Category:** vpc\
**Created:** [May 6, 2024, 7:23pm UTC](https://discourse.pumas.ai/t/corrected-observation-from-pcvpc/1026 "2024-05-06T19:23:14Z")\
**Posts on this page:** 12\
**Page:** 1

<div class="post-metadata">

**Author:** ![Dawoon](https://yyz2.discourse-cdn.com/flex030/user_avatar/discourse.pumas.ai/dawoon/32/179_2.png) [@Dawoon](https://discourse.pumas.ai/u/Dawoon)\
**Post date:** [May 6, 2024, 7:23pm UTC](https://discourse.pumas.ai/t/corrected-observation-from-pcvpc/1026/1 "2024-05-06T19:23:14Z")

</div>

Hello,  
I was wondering if it’s possible to export corrected observations obtained from pcVPC. I found codes for simulated and observed percentiles but not observations. Is there any function for it?  
Thank you!

---

<div class="post-metadata">

**Author:** ![patrick](https://yyz2.discourse-cdn.com/flex030/user_avatar/discourse.pumas.ai/patrick/32/206_2.png) [@patrick](https://discourse.pumas.ai/u/patrick)\
**Post date:** [May 6, 2024, 7:52pm UTC](https://discourse.pumas.ai/t/corrected-observation-from-pcvpc/1026/2 "2024-05-06T19:52:34Z")

</div>

Dear Dawoon,

I can help you figure this out. Can I ask you what the intended use case is? To make your own plot from the data in the vpc-output?

Best,  
Patrick

---

<div class="post-metadata">

**Author:** ![Dawoon](https://yyz2.discourse-cdn.com/flex030/user_avatar/discourse.pumas.ai/dawoon/32/179_2.png) [@Dawoon](https://discourse.pumas.ai/u/Dawoon)\
**Post date:** [May 6, 2024, 9:43pm UTC](https://discourse.pumas.ai/t/corrected-observation-from-pcvpc/1026/3 "2024-05-06T21:43:20Z")

</div>

Hello, Patrick

Yes, I am making my own plot with the observations overlaid in the pcVPC.

---

<div class="post-metadata">

**Author:** ![patrick](https://yyz2.discourse-cdn.com/flex030/user_avatar/discourse.pumas.ai/patrick/32/206_2.png) [@patrick](https://discourse.pumas.ai/u/patrick)\
**Post date:** [May 10, 2024, 8:48am UTC](https://discourse.pumas.ai/t/corrected-observation-from-pcvpc/1026/4 "2024-05-10T08:48:17Z")

</div>

Sorry for not getting back to you. It was late when I saw your message, and it had escaped my head again the next morning.

We don’t have an official interface for this, but I can tell you where to find it. Since it’s not an official interface, I cannot promise that we do not change this is in the future, but since you asked we may consider to supply some functions to grab this information that _will_ be an official interface at that point.

If you vpc is called `myvpc` you can get the internal field `popvpc` that has a field called `data`. This is a `Population` with prediction corrected observations. You can construct a DataFrame from that object.

```auto
DataFrame(myvpc.popvpc.data)

```

You can try to compare with a VPC object that is not prediction corrected, and see that the observations do indeed differ.

As I said, this is not a feature we officially support, so it may break in future version of Pumas, but I have opened an issue to track this in our development team.

---

<div class="post-metadata">

**Author:** ![Dawoon](https://yyz2.discourse-cdn.com/flex030/user_avatar/discourse.pumas.ai/dawoon/32/179_2.png) [@Dawoon](https://discourse.pumas.ai/u/Dawoon)\
**Post date:** [May 10, 2024, 1:45pm UTC](https://discourse.pumas.ai/t/corrected-observation-from-pcvpc/1026/5 "2024-05-10T13:45:27Z")

</div>

Hello, Patrick

Thank you so much for your response. When I pass the code, it gives the output as shown in the snippet. Could you please advise me how to convert the population to the dataframe with id, time, observations, etc? Thank you!  
 ![image](https://canada1.discourse-cdn.com/flex030/uploads/pumas/original/1X/574c88acb3e8e3f279ef37cd77a2029d17852d2a.png)

---

<div class="post-metadata">

**Author:** ![Dawoon](https://yyz2.discourse-cdn.com/flex030/user_avatar/discourse.pumas.ai/dawoon/32/179_2.png) [@Dawoon](https://discourse.pumas.ai/u/Dawoon)\
**Post date:** [May 10, 2024, 2:53pm UTC](https://discourse.pumas.ai/t/corrected-observation-from-pcvpc/1026/6 "2024-05-10T14:53:59Z")

</div>

@donaldlee3 advised me to try `DataFrame.()` instead of `DataFrame()` and it worked!

---

<div class="post-metadata">

**Author:** ![patrick](https://yyz2.discourse-cdn.com/flex030/user_avatar/discourse.pumas.ai/patrick/32/206_2.png) [@patrick](https://discourse.pumas.ai/u/patrick)\
**Post date:** [May 10, 2024, 7:21pm UTC](https://discourse.pumas.ai/t/corrected-observation-from-pcvpc/1026/7 "2024-05-10T19:21:28Z")

</div>

That gave you a vector of DataFrames right? Your population must have had some kind of heterogeneity. Could you tell me if `DataFrame(identity.(vpc_fpm.popvpc.data))` works as well?

---

<div class="post-metadata">

**Author:** ![Dawoon](https://yyz2.discourse-cdn.com/flex030/user_avatar/discourse.pumas.ai/dawoon/32/179_2.png) [@Dawoon](https://discourse.pumas.ai/u/Dawoon)\
**Post date:** [May 10, 2024, 7:35pm UTC](https://discourse.pumas.ai/t/corrected-observation-from-pcvpc/1026/8 "2024-05-10T19:35:31Z")

</div>

Yes, it was a vector of DF.  
`DataFrame.(identity.(vpc_fpm.popvpc.data))` works too!

---

<div class="post-metadata">

**Author:** ![patrick](https://yyz2.discourse-cdn.com/flex030/user_avatar/discourse.pumas.ai/patrick/32/206_2.png) [@patrick](https://discourse.pumas.ai/u/patrick)\
**Post date:** [May 10, 2024, 7:42pm UTC](https://discourse.pumas.ai/t/corrected-observation-from-pcvpc/1026/9 "2024-05-10T19:42:09Z")

</div>

Wait, now I see it. Try this

```auto
DataFrame.(identity.(vpc_fpm.popvpc.data[1]))

```

---

<div class="post-metadata">

**Author:** ![patrick](https://yyz2.discourse-cdn.com/flex030/user_avatar/discourse.pumas.ai/patrick/32/206_2.png) [@patrick](https://discourse.pumas.ai/u/patrick)\
**Post date:** [May 10, 2024, 7:44pm UTC](https://discourse.pumas.ai/t/corrected-observation-from-pcvpc/1026/10 "2024-05-10T19:44:19Z")

</div>

To explain what is going on, `vpc_fpm.popvpc` is a type that holds information about the constructed vpc curves. `vpc_fpm.popvpc.data` is the data used to construct the vpc curves, but for the actual data (not simulations) there is only one realization. So you need to take the first element of `data` - a `Population`. This can then be data framed. We’ll see if we can’t get a getter function for this data into the next release although we are very close to feature freeze on v2.6.

---

<div class="post-metadata">

**Author:** ![Dawoon](https://yyz2.discourse-cdn.com/flex030/user_avatar/discourse.pumas.ai/dawoon/32/179_2.png) [@Dawoon](https://discourse.pumas.ai/u/Dawoon)\
**Post date:** [May 10, 2024, 7:45pm UTC](https://discourse.pumas.ai/t/corrected-observation-from-pcvpc/1026/11 "2024-05-10T19:45:24Z")

</div>

It gives me an individual DF for each id.

---

<div class="post-metadata">

**Author:** ![Dawoon](https://yyz2.discourse-cdn.com/flex030/user_avatar/discourse.pumas.ai/dawoon/32/179_2.png) [@Dawoon](https://discourse.pumas.ai/u/Dawoon)\
**Post date:** [May 10, 2024, 7:46pm UTC](https://discourse.pumas.ai/t/corrected-observation-from-pcvpc/1026/12 "2024-05-10T19:46:33Z")

</div>

Thank you so much for supporting!
