0
$\begingroup$

I'm trying to perform some circular statistics in Python and, having never done circular statistics before and being mostly self taught in python, thought I'd turn to this place for some help because I've hit a brick wall. Never posted here before, so if you need more info or if my question doesn't make sense, let me know. I have some dataframe on number of planula (offspring) produced by a group of corals over 3 lunar cycles. A lunar cycle lasts 29 days. I'm trying to find out what the mean lunar day of planula release is for each of the three lunar cycles. I've found the documentation for scipy.stats.circmean, but its relatively unhelpful with determining exactly what input should go where. I've included an image of what part of the dataframe I'm working with looks like for reference. The column lunar is the lunar day, C1:C10 are the 10 corals in my sample, and the Total is the total number of planula produced daily, which is what I'm interested in finding the mean lunar day of. Any and all help would be greatly appreciated.enter image description here

$\endgroup$
0
$\begingroup$

It looks to me like you want to take the (circular) mean of the Lunar column, weighted by the Total column. But first you need to convert Lunar to radians by multiplying by 2*np.pi/29.

Multiply the radian Lunar by Total (elementwise). Pass that array into circmean then divide by the total Total to get the mean radial Lunar day. Get back to the linear day by reversing the radian conversion.

| cite | improve this answer | |
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.