Math'ca - Can't get a function to read in data

  • Thread starter Thread starter TopCat
  • Start date Start date
  • Tags Tags
    Data Function
AI Thread Summary
The user encountered an issue with a function in Mathematica not accepting multi-dimensional data for maximum likelihood estimation. Initially, the function returned the data in an incorrect format, preventing proper evaluation. The solution involved using the Apply function to remap the Poisson function, allowing it to accept both individual data points and entire tables. By utilizing MapAll, the user was able to ensure that all elements of the data were correctly passed as arguments to the function. The problem was ultimately resolved, enhancing the user's Mathematica skills in the process.
TopCat
Messages
55
Reaction score
0
SOLVED - Math'ca - Can't get a function to read in data

I'm trying to do a maximum likelihood estimation in Mathematica. My data was in a text file and I read it into a table. Each entry in the table is two values, like {{1,2},{3,4},...}. I have a 2D function, P[x,y] and when I try and evaluate at a data point, P[data[[1]]], for instance, it doesn't input the values. It just returns P[{1,2}] (with the data in this example).

Now, it works fine when the data and function are one-dimensional. So this tells me the data is not stored in a manner that the function can immediately use. The problem here is that for me to use the Max Likelihood function, I need the data to be in the proper format. The arguments for the ML function are ML[data,f,param], so it needs to enter the data into the function. So, is there a way I can make a table or list of {x,y} data that could possibly work in this scenario?

As an aside, there must be because an example of this ML uses multi valued data. I can't get it work with mine though. Argh!

Thanks thank thanks to anyone who can help!
 
Last edited:
Physics news on Phys.org
Okay, I managed to figure this one out, and get a bit of Mathematica skill in the process.

If P is my Poisson function, I had to remap it into another function like so:

i = MapAll[Function[w, Apply[P, w]], #] &;

where w is a place holder variable, Apply is a math'ca function that turns list elements into function arguments, and MapAll applies every subpart of the list element to the function. Now my function can crawl over all of the data in a table, or accept a single element as input.
 

Similar threads

Replies
8
Views
2K
Replies
1
Views
2K
Replies
6
Views
4K
Replies
12
Views
3K
Replies
1
Views
2K
Replies
12
Views
4K
Replies
8
Views
1K
Replies
6
Views
5K
Back
Top